diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-hpecp.spec | 513 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 515 insertions, 0 deletions
@@ -0,0 +1 @@ +/hpecp-0.22.13.tar.gz diff --git a/python-hpecp.spec b/python-hpecp.spec new file mode 100644 index 0000000..5f512cd --- /dev/null +++ b/python-hpecp.spec @@ -0,0 +1,513 @@ +%global _empty_manifest_terminate_build 0 +Name: python-hpecp +Version: 0.22.13 +Release: 1 +Summary: HPE Ezmeral Container Platform client +License: MIT License +URL: https://github.com/hpe-container-platform-community/hpecp-python-library +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/2d/eb/97975e0af5ace5b0c7b1658f19aa40ddda12c4d8bf29d6d915627406e3f9/hpecp-0.22.13.tar.gz +BuildArch: noarch + +Requires: python3-future +Requires: python3-requests +Requires: python3-tabulate +Requires: python3-six +Requires: python3-polling +Requires: python3-pyyaml +Requires: python3-fire +Requires: python3-jmespath +Requires: python3-jinja2 +Requires: python3-wrapt +Requires: python3-enum34 +Requires: python3-configparser + +%description +## Documentation +See [here](https://hpe-container-platform-community.github.io/hpecp-python-library/index.html) for User Documentation. +## Contributing +See: +- [Developing Guide](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/DEVELOPING.md) +- [Contribution Guide](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/CONTRIBUTING.md) +## Installation +```shell +pip3 install -U hpecp +``` +If you encounter an issue installing on Centos 7.7 with Python 2.7 see [here](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/docs/README-INSTALL-HPECP-HOSTS.md) for a workaround +## CLI examples +You need to create a config file with your endpoint details - note that you can have multiple profiles: +```ini +cat > ~/.hpecp.conf <<EOF +[default] +api_host = 127.0.0.1 +api_port = 8080 +use_ssl = True +verify_ssl = False +warn_ssl = False +username = admin +password = admin123 +[tenant1] +tenant = /api/v1/tenant/15 +admin = ad_admin1 +password = pass123 +EOF +``` +Setup bash autocomplete: +```sh +source <(hpecp autocomplete bash) +``` +Autocompletion: +```sh +hpecp TAB +``` +Add gateway: +```sh +hpecp lock create "Install Gateway" +hpecp gateway create-with-ssh-key --ip 10.1.0.5 --proxy-node-hostname my.gateway.local --ssh-key-file controller_private.key +hpecp gateway wait-for-state ${GATEWAY_ID} --states [installed] --timeout-secs 1200 +hpecp lock delete-all +``` +Add K8s worker host: +```sh +hpecp k8sworker create-with-ssh-key \ + --ip 10.1.0.10 \ + --ssh-key-file controller_private.key \ + --persistent-disks /dev/nvme1n1 \ + --ephemeral-disks /dev/nvme2n1 \ + --wait-for-operation-secs 600 +``` +K8s versions: +```sh +hpecp k8scluster k8s-supported-versions --major-filter 1 --minor-filter 17 +``` +Create k8s cluster: +```sh +hpecp k8scluster create --name myclus1 --k8shosts-config /api/v2/worker/k8shost/1:master --k8s_version=1.17.0 +``` +Get k8s available addons: +```sh +hpecp k8scluster get-available-addons --id $CLUSTER_ID +``` +Add k8s cluster addons: +```sh +hpecp k8scluster add-addons --id $CLUSTER_ID --addons [istio,harbor] +``` +List with columns parameter: +```sh +hpecp k8scluster list --columns [id,description,status] +``` +List with (jmespath) query parameter: +```sh +hpecp catalog list --query "[?state!='installed' && state!='installing'] | [*].[_links.self.href] | []" --output text +``` +List --query examples: +```sh +hpecp tenant examples +``` +Tenant create: +```sh +TENANT_ID=$(hpecp tenant create --name tenant1 --description "dev tenant" --k8s-cluster-id $CLUSTER_ID --tenant-type k8s) +hpecp tenant wait-for-status --id $TENANT_ID --status [ready] --timeout-secs 600 +``` +Add LDAP role to Tenant: +```sh +ADMIN_GROUP="CN=DemoTenantAdmins,CN=Users,DC=samdom,DC=example,DC=com" +ADMIN_ROLE=$(hpecp role list --query "[?label.name == 'Admin'][_links.self.href]" --output text) +hpecp tenant add-external-user-group --tenant-id $TENANT_ID --group $ADMIN_GROUP --role-id $ADMIN_ROLE +``` +Add internal user to Tenant: +```sh +ADMIN_USER_ID=$(hpecp user list --query "[?label.name == 'admin'][_links.self.href]" --output text) +ADMIN_ROLE=$(hpecp role list --query "[?label.name == 'Admin'][_links.self.href]" --output text) +hpecp tenant assign-user-to-role --tenant-id $TENANT_ID --role-id $ADMIN_ROLE --user-id $ADMIN_USER_ID +``` +Tenant kube config: +```sh +PROFILE=tenant1 hpecp tenant k8skubeconfig > tenant1_kube.conf +# get available Kubedirector apps +kubectl --kubeconfig tenant1_kube.conf -n t1 get kubedirectorapps +# list running applications +kubectl --kubeconfig tenant1_kube.conf -n t1 describe kubedirectorclusters +``` +Http call: +```sh +hpecp httpclient get /some/uri +``` +Use a different config file: +```sh +HPECP_CONFIG_FILE=myclus.conf hpecp do-something +``` +Logging with HTTP tracing: +```sh +export LOG_LEVEL=DEBUG +hpecp do-something +``` +More sophisticated CLI examples [here](https://github.com/hpe-container-platform-community/hcp-demo-env-aws-terraform/tree/master/bin/experimental) +## Python Library Examples +See docs: https://hpe-container-platform-community.github.io/hpecp-python-library/index.html +Example: +```py3 +from hpecp import ContainerPlatformClient +client = ContainerPlatformClient(username='admin', + password='admin123', + api_host='127.0.0.1', + api_port=8080, + use_ssl=True, + verify_ssl='/certs/hpecp-ca-cert.pem') +client.create_session() # Login +# Alternatively: +# client = ContainerPlatformClient.create_from_config_file().create_session() +print(client.k8s_cluster.list(columns=['description', 'id'])) +``` +On my environment, this displays: +``` ++-------------+-----------------------+ +| description | id | ++-------------+-----------------------+ +| my cluster | /api/v2/k8scluster/20 | ++-------------+-----------------------+ +``` + +%package -n python3-hpecp +Summary: HPE Ezmeral Container Platform client +Provides: python-hpecp +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-hpecp +## Documentation +See [here](https://hpe-container-platform-community.github.io/hpecp-python-library/index.html) for User Documentation. +## Contributing +See: +- [Developing Guide](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/DEVELOPING.md) +- [Contribution Guide](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/CONTRIBUTING.md) +## Installation +```shell +pip3 install -U hpecp +``` +If you encounter an issue installing on Centos 7.7 with Python 2.7 see [here](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/docs/README-INSTALL-HPECP-HOSTS.md) for a workaround +## CLI examples +You need to create a config file with your endpoint details - note that you can have multiple profiles: +```ini +cat > ~/.hpecp.conf <<EOF +[default] +api_host = 127.0.0.1 +api_port = 8080 +use_ssl = True +verify_ssl = False +warn_ssl = False +username = admin +password = admin123 +[tenant1] +tenant = /api/v1/tenant/15 +admin = ad_admin1 +password = pass123 +EOF +``` +Setup bash autocomplete: +```sh +source <(hpecp autocomplete bash) +``` +Autocompletion: +```sh +hpecp TAB +``` +Add gateway: +```sh +hpecp lock create "Install Gateway" +hpecp gateway create-with-ssh-key --ip 10.1.0.5 --proxy-node-hostname my.gateway.local --ssh-key-file controller_private.key +hpecp gateway wait-for-state ${GATEWAY_ID} --states [installed] --timeout-secs 1200 +hpecp lock delete-all +``` +Add K8s worker host: +```sh +hpecp k8sworker create-with-ssh-key \ + --ip 10.1.0.10 \ + --ssh-key-file controller_private.key \ + --persistent-disks /dev/nvme1n1 \ + --ephemeral-disks /dev/nvme2n1 \ + --wait-for-operation-secs 600 +``` +K8s versions: +```sh +hpecp k8scluster k8s-supported-versions --major-filter 1 --minor-filter 17 +``` +Create k8s cluster: +```sh +hpecp k8scluster create --name myclus1 --k8shosts-config /api/v2/worker/k8shost/1:master --k8s_version=1.17.0 +``` +Get k8s available addons: +```sh +hpecp k8scluster get-available-addons --id $CLUSTER_ID +``` +Add k8s cluster addons: +```sh +hpecp k8scluster add-addons --id $CLUSTER_ID --addons [istio,harbor] +``` +List with columns parameter: +```sh +hpecp k8scluster list --columns [id,description,status] +``` +List with (jmespath) query parameter: +```sh +hpecp catalog list --query "[?state!='installed' && state!='installing'] | [*].[_links.self.href] | []" --output text +``` +List --query examples: +```sh +hpecp tenant examples +``` +Tenant create: +```sh +TENANT_ID=$(hpecp tenant create --name tenant1 --description "dev tenant" --k8s-cluster-id $CLUSTER_ID --tenant-type k8s) +hpecp tenant wait-for-status --id $TENANT_ID --status [ready] --timeout-secs 600 +``` +Add LDAP role to Tenant: +```sh +ADMIN_GROUP="CN=DemoTenantAdmins,CN=Users,DC=samdom,DC=example,DC=com" +ADMIN_ROLE=$(hpecp role list --query "[?label.name == 'Admin'][_links.self.href]" --output text) +hpecp tenant add-external-user-group --tenant-id $TENANT_ID --group $ADMIN_GROUP --role-id $ADMIN_ROLE +``` +Add internal user to Tenant: +```sh +ADMIN_USER_ID=$(hpecp user list --query "[?label.name == 'admin'][_links.self.href]" --output text) +ADMIN_ROLE=$(hpecp role list --query "[?label.name == 'Admin'][_links.self.href]" --output text) +hpecp tenant assign-user-to-role --tenant-id $TENANT_ID --role-id $ADMIN_ROLE --user-id $ADMIN_USER_ID +``` +Tenant kube config: +```sh +PROFILE=tenant1 hpecp tenant k8skubeconfig > tenant1_kube.conf +# get available Kubedirector apps +kubectl --kubeconfig tenant1_kube.conf -n t1 get kubedirectorapps +# list running applications +kubectl --kubeconfig tenant1_kube.conf -n t1 describe kubedirectorclusters +``` +Http call: +```sh +hpecp httpclient get /some/uri +``` +Use a different config file: +```sh +HPECP_CONFIG_FILE=myclus.conf hpecp do-something +``` +Logging with HTTP tracing: +```sh +export LOG_LEVEL=DEBUG +hpecp do-something +``` +More sophisticated CLI examples [here](https://github.com/hpe-container-platform-community/hcp-demo-env-aws-terraform/tree/master/bin/experimental) +## Python Library Examples +See docs: https://hpe-container-platform-community.github.io/hpecp-python-library/index.html +Example: +```py3 +from hpecp import ContainerPlatformClient +client = ContainerPlatformClient(username='admin', + password='admin123', + api_host='127.0.0.1', + api_port=8080, + use_ssl=True, + verify_ssl='/certs/hpecp-ca-cert.pem') +client.create_session() # Login +# Alternatively: +# client = ContainerPlatformClient.create_from_config_file().create_session() +print(client.k8s_cluster.list(columns=['description', 'id'])) +``` +On my environment, this displays: +``` ++-------------+-----------------------+ +| description | id | ++-------------+-----------------------+ +| my cluster | /api/v2/k8scluster/20 | ++-------------+-----------------------+ +``` + +%package help +Summary: Development documents and examples for hpecp +Provides: python3-hpecp-doc +%description help +## Documentation +See [here](https://hpe-container-platform-community.github.io/hpecp-python-library/index.html) for User Documentation. +## Contributing +See: +- [Developing Guide](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/DEVELOPING.md) +- [Contribution Guide](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/CONTRIBUTING.md) +## Installation +```shell +pip3 install -U hpecp +``` +If you encounter an issue installing on Centos 7.7 with Python 2.7 see [here](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/docs/README-INSTALL-HPECP-HOSTS.md) for a workaround +## CLI examples +You need to create a config file with your endpoint details - note that you can have multiple profiles: +```ini +cat > ~/.hpecp.conf <<EOF +[default] +api_host = 127.0.0.1 +api_port = 8080 +use_ssl = True +verify_ssl = False +warn_ssl = False +username = admin +password = admin123 +[tenant1] +tenant = /api/v1/tenant/15 +admin = ad_admin1 +password = pass123 +EOF +``` +Setup bash autocomplete: +```sh +source <(hpecp autocomplete bash) +``` +Autocompletion: +```sh +hpecp TAB +``` +Add gateway: +```sh +hpecp lock create "Install Gateway" +hpecp gateway create-with-ssh-key --ip 10.1.0.5 --proxy-node-hostname my.gateway.local --ssh-key-file controller_private.key +hpecp gateway wait-for-state ${GATEWAY_ID} --states [installed] --timeout-secs 1200 +hpecp lock delete-all +``` +Add K8s worker host: +```sh +hpecp k8sworker create-with-ssh-key \ + --ip 10.1.0.10 \ + --ssh-key-file controller_private.key \ + --persistent-disks /dev/nvme1n1 \ + --ephemeral-disks /dev/nvme2n1 \ + --wait-for-operation-secs 600 +``` +K8s versions: +```sh +hpecp k8scluster k8s-supported-versions --major-filter 1 --minor-filter 17 +``` +Create k8s cluster: +```sh +hpecp k8scluster create --name myclus1 --k8shosts-config /api/v2/worker/k8shost/1:master --k8s_version=1.17.0 +``` +Get k8s available addons: +```sh +hpecp k8scluster get-available-addons --id $CLUSTER_ID +``` +Add k8s cluster addons: +```sh +hpecp k8scluster add-addons --id $CLUSTER_ID --addons [istio,harbor] +``` +List with columns parameter: +```sh +hpecp k8scluster list --columns [id,description,status] +``` +List with (jmespath) query parameter: +```sh +hpecp catalog list --query "[?state!='installed' && state!='installing'] | [*].[_links.self.href] | []" --output text +``` +List --query examples: +```sh +hpecp tenant examples +``` +Tenant create: +```sh +TENANT_ID=$(hpecp tenant create --name tenant1 --description "dev tenant" --k8s-cluster-id $CLUSTER_ID --tenant-type k8s) +hpecp tenant wait-for-status --id $TENANT_ID --status [ready] --timeout-secs 600 +``` +Add LDAP role to Tenant: +```sh +ADMIN_GROUP="CN=DemoTenantAdmins,CN=Users,DC=samdom,DC=example,DC=com" +ADMIN_ROLE=$(hpecp role list --query "[?label.name == 'Admin'][_links.self.href]" --output text) +hpecp tenant add-external-user-group --tenant-id $TENANT_ID --group $ADMIN_GROUP --role-id $ADMIN_ROLE +``` +Add internal user to Tenant: +```sh +ADMIN_USER_ID=$(hpecp user list --query "[?label.name == 'admin'][_links.self.href]" --output text) +ADMIN_ROLE=$(hpecp role list --query "[?label.name == 'Admin'][_links.self.href]" --output text) +hpecp tenant assign-user-to-role --tenant-id $TENANT_ID --role-id $ADMIN_ROLE --user-id $ADMIN_USER_ID +``` +Tenant kube config: +```sh +PROFILE=tenant1 hpecp tenant k8skubeconfig > tenant1_kube.conf +# get available Kubedirector apps +kubectl --kubeconfig tenant1_kube.conf -n t1 get kubedirectorapps +# list running applications +kubectl --kubeconfig tenant1_kube.conf -n t1 describe kubedirectorclusters +``` +Http call: +```sh +hpecp httpclient get /some/uri +``` +Use a different config file: +```sh +HPECP_CONFIG_FILE=myclus.conf hpecp do-something +``` +Logging with HTTP tracing: +```sh +export LOG_LEVEL=DEBUG +hpecp do-something +``` +More sophisticated CLI examples [here](https://github.com/hpe-container-platform-community/hcp-demo-env-aws-terraform/tree/master/bin/experimental) +## Python Library Examples +See docs: https://hpe-container-platform-community.github.io/hpecp-python-library/index.html +Example: +```py3 +from hpecp import ContainerPlatformClient +client = ContainerPlatformClient(username='admin', + password='admin123', + api_host='127.0.0.1', + api_port=8080, + use_ssl=True, + verify_ssl='/certs/hpecp-ca-cert.pem') +client.create_session() # Login +# Alternatively: +# client = ContainerPlatformClient.create_from_config_file().create_session() +print(client.k8s_cluster.list(columns=['description', 'id'])) +``` +On my environment, this displays: +``` ++-------------+-----------------------+ +| description | id | ++-------------+-----------------------+ +| my cluster | /api/v2/k8scluster/20 | ++-------------+-----------------------+ +``` + +%prep +%autosetup -n hpecp-0.22.13 + +%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-hpecp -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.22.13-1 +- Package Spec generated @@ -0,0 +1 @@ +83d37c0ea25c998c7dd2dca75183de69 hpecp-0.22.13.tar.gz |