diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-bentoutils.spec | 301 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 303 insertions, 0 deletions
@@ -0,0 +1 @@ +/bentoutils-1.1.2.tar.gz diff --git a/python-bentoutils.spec b/python-bentoutils.spec new file mode 100644 index 0000000..ffff28d --- /dev/null +++ b/python-bentoutils.spec @@ -0,0 +1,301 @@ +%global _empty_manifest_terminate_build 0 +Name: python-bentoutils +Version: 1.1.2 +Release: 1 +Summary: Utilities for working with BentoML V1.x +License: MIT License +URL: https://github.com/markmo/bentoutils +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c3/18/8230cb18ad7c2d3a929999e92ea987f91272e5387eac6bf41d551ed49c9c/bentoutils-1.1.2.tar.gz +BuildArch: noarch + +Requires: python3-BentoML +Requires: python3-boto3 +Requires: python3-click +Requires: python3-kubernetes +Requires: python3-PyYAML +Requires: python3-stringcase +Requires: python3-text-unidecode + +%description +# bentoutils + +## Contents + +Console scripts for: + +1. bentopack - package an existing pretrained model and save to the Model Registry + +``` +Usage: bentopack [OPTIONS] + +Options: + --module TEXT fully qualified module name containing service to package + --clz TEXT class name of service to package + --name TEXT model name + --path TEXT directory path of pretrained model + --help Show this message and exit. +``` + +Example: +``` +bentopack \ + --module TopicBentoService \ # python module containing service class + --clz TopicBentoService \ # service class + --name tm_train3_roberta_l_weigh \ # pretrained model name + --path /srv/models/multilabel-topic # local path to pretrained model (excluding name) +``` + +2. deploy_to_knative - WIP + + +Uses Kaniko + +kaniko is a tool to build container images from a Dockerfile, inside a container or Kubernetes cluster. + +kaniko solves two problems with using the Docker-in-Docker build method: + +* Docker-in-Docker requires privileged mode to function, which is a significant security concern. +* Docker-in-Docker generally incurs a performance penalty and can be quite slow. + +The setting `--isdockerconfig` is required when using a private registry such as Harbor. + +We can build a Docker image with kaniko and push it to Docker Hub or any other standard Docker registry. + +To push to DockerHub or any other username and password Docker registries we need to mount the Docker config.json file that contains the credentials. Caching will not work for DockerHub as it does not support repositories with more than 2 path sections (acme/myimage/cache), but it will work in Artifactory and maybe other registry implementations. + + DOCKER_USERNAME=[...] + DOCKER_PASSWORD=[...] + AUTH=$(echo -n "${DOCKER_USERNAME}:${DOCKER_PASSWORD}" | base64) + cat << EOF > config.json + { + "auths": { + "https://index.docker.io/v1/": { + "auth": "${AUTH}" + } + } + } + EOF + +Alternatively, to create a secret to authenticate to Google Cloud Registry, follow these steps: + +1. Create a service account in the Google Cloud Console project you want to push the final image to with Storage Admin permissions. +2. Download a JSON key for this service account +3. Rename the key to kaniko-secret.json +4. To create the secret, run: + + kubectl create secret generic kaniko-secret --from-file=<path to kaniko-secret.json> + +Note: If using a GCS bucket in the same GCP project as a build context, this service account should now also have permissions to read from that bucket. + +See https://github.com/GoogleContainerTools/kaniko + + + + + +%package -n python3-bentoutils +Summary: Utilities for working with BentoML V1.x +Provides: python-bentoutils +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-bentoutils +# bentoutils + +## Contents + +Console scripts for: + +1. bentopack - package an existing pretrained model and save to the Model Registry + +``` +Usage: bentopack [OPTIONS] + +Options: + --module TEXT fully qualified module name containing service to package + --clz TEXT class name of service to package + --name TEXT model name + --path TEXT directory path of pretrained model + --help Show this message and exit. +``` + +Example: +``` +bentopack \ + --module TopicBentoService \ # python module containing service class + --clz TopicBentoService \ # service class + --name tm_train3_roberta_l_weigh \ # pretrained model name + --path /srv/models/multilabel-topic # local path to pretrained model (excluding name) +``` + +2. deploy_to_knative - WIP + + +Uses Kaniko + +kaniko is a tool to build container images from a Dockerfile, inside a container or Kubernetes cluster. + +kaniko solves two problems with using the Docker-in-Docker build method: + +* Docker-in-Docker requires privileged mode to function, which is a significant security concern. +* Docker-in-Docker generally incurs a performance penalty and can be quite slow. + +The setting `--isdockerconfig` is required when using a private registry such as Harbor. + +We can build a Docker image with kaniko and push it to Docker Hub or any other standard Docker registry. + +To push to DockerHub or any other username and password Docker registries we need to mount the Docker config.json file that contains the credentials. Caching will not work for DockerHub as it does not support repositories with more than 2 path sections (acme/myimage/cache), but it will work in Artifactory and maybe other registry implementations. + + DOCKER_USERNAME=[...] + DOCKER_PASSWORD=[...] + AUTH=$(echo -n "${DOCKER_USERNAME}:${DOCKER_PASSWORD}" | base64) + cat << EOF > config.json + { + "auths": { + "https://index.docker.io/v1/": { + "auth": "${AUTH}" + } + } + } + EOF + +Alternatively, to create a secret to authenticate to Google Cloud Registry, follow these steps: + +1. Create a service account in the Google Cloud Console project you want to push the final image to with Storage Admin permissions. +2. Download a JSON key for this service account +3. Rename the key to kaniko-secret.json +4. To create the secret, run: + + kubectl create secret generic kaniko-secret --from-file=<path to kaniko-secret.json> + +Note: If using a GCS bucket in the same GCP project as a build context, this service account should now also have permissions to read from that bucket. + +See https://github.com/GoogleContainerTools/kaniko + + + + + +%package help +Summary: Development documents and examples for bentoutils +Provides: python3-bentoutils-doc +%description help +# bentoutils + +## Contents + +Console scripts for: + +1. bentopack - package an existing pretrained model and save to the Model Registry + +``` +Usage: bentopack [OPTIONS] + +Options: + --module TEXT fully qualified module name containing service to package + --clz TEXT class name of service to package + --name TEXT model name + --path TEXT directory path of pretrained model + --help Show this message and exit. +``` + +Example: +``` +bentopack \ + --module TopicBentoService \ # python module containing service class + --clz TopicBentoService \ # service class + --name tm_train3_roberta_l_weigh \ # pretrained model name + --path /srv/models/multilabel-topic # local path to pretrained model (excluding name) +``` + +2. deploy_to_knative - WIP + + +Uses Kaniko + +kaniko is a tool to build container images from a Dockerfile, inside a container or Kubernetes cluster. + +kaniko solves two problems with using the Docker-in-Docker build method: + +* Docker-in-Docker requires privileged mode to function, which is a significant security concern. +* Docker-in-Docker generally incurs a performance penalty and can be quite slow. + +The setting `--isdockerconfig` is required when using a private registry such as Harbor. + +We can build a Docker image with kaniko and push it to Docker Hub or any other standard Docker registry. + +To push to DockerHub or any other username and password Docker registries we need to mount the Docker config.json file that contains the credentials. Caching will not work for DockerHub as it does not support repositories with more than 2 path sections (acme/myimage/cache), but it will work in Artifactory and maybe other registry implementations. + + DOCKER_USERNAME=[...] + DOCKER_PASSWORD=[...] + AUTH=$(echo -n "${DOCKER_USERNAME}:${DOCKER_PASSWORD}" | base64) + cat << EOF > config.json + { + "auths": { + "https://index.docker.io/v1/": { + "auth": "${AUTH}" + } + } + } + EOF + +Alternatively, to create a secret to authenticate to Google Cloud Registry, follow these steps: + +1. Create a service account in the Google Cloud Console project you want to push the final image to with Storage Admin permissions. +2. Download a JSON key for this service account +3. Rename the key to kaniko-secret.json +4. To create the secret, run: + + kubectl create secret generic kaniko-secret --from-file=<path to kaniko-secret.json> + +Note: If using a GCS bucket in the same GCP project as a build context, this service account should now also have permissions to read from that bucket. + +See https://github.com/GoogleContainerTools/kaniko + + + + + +%prep +%autosetup -n bentoutils-1.1.2 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-bentoutils -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 17 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1.2-1 +- Package Spec generated @@ -0,0 +1 @@ +d864352dd860f0298d2458d7d782ff55 bentoutils-1.1.2.tar.gz |