HPE Ezmeral Container Platform client
Project description
Documentation
See here for User Documentation.
Contributing
See:
Installation
pip3 install -U hpecp
If you encounter an issue installing on Centos 7.7 with Python 2.7 see here for a workaround
CLI examples
You need to create a config file with your endpoint details - note that you can have multiple profiles:
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:
source <(hpecp autocomplete bash)
Autocompletion:
hpecp TAB
Add gateway:
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:
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:
hpecp k8scluster k8s-supported-versions --major-filter 1 --minor-filter 17
Create k8s cluster:
hpecp k8scluster create --name myclus1 --k8shosts-config /api/v2/worker/k8shost/1:master --k8s_version=1.17.0
Get k8s available addons:
hpecp k8scluster get-available-addons --id $CLUSTER_ID
Add k8s cluster addons:
hpecp k8scluster add-addons --id $CLUSTER_ID --addons [istio,harbor]
List with columns parameter:
hpecp k8scluster list --columns [id,description,status]
List with (jmespath) query parameter:
hpecp catalog list --query "[?state!='installed' && state!='installing'] | [*].[_links.self.href] | []" --output text
List --query examples:
hpecp tenant examples
Tenant create:
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:
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:
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:
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:
hpecp httpclient get /some/uri
Use a different config file:
HPECP_CONFIG_FILE=myclus.conf hpecp do-something
Logging with HTTP tracing:
export LOG_LEVEL=DEBUG
hpecp do-something
More sophisticated CLI examples here
Python Library Examples
See docs: https://hpe-container-platform-community.github.io/hpecp-python-library/index.html
Example:
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 |
+-------------+-----------------------+
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file hpecp-0.22.13.tar.gz
.
File metadata
- Download URL: hpecp-0.22.13.tar.gz
- Upload date:
- Size: 50.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.3 readme-renderer/35.0 requests/2.28.0 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.11.4 keyring/23.6.0 rfc3986/2.0.0 colorama/0.4.5 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2a509025c94881cc5a83016b901536175452371d9f2842cd86445958ae85407 |
|
MD5 | 83d37c0ea25c998c7dd2dca75183de69 |
|
BLAKE2b-256 | 2deb97975e0af5ace5b0c7b1658f19aa40ddda12c4d8bf29d6d915627406e3f9 |
File details
Details for the file hpecp-0.22.13-py3-none-any.whl
.
File metadata
- Download URL: hpecp-0.22.13-py3-none-any.whl
- Upload date:
- Size: 87.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.3 readme-renderer/35.0 requests/2.28.0 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.11.4 keyring/23.6.0 rfc3986/2.0.0 colorama/0.4.5 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93721d0cd4bc08c988602e2bf5a790aef28139543e86e12c03db88f2984e6305 |
|
MD5 | df4dddfcc24747cfaff441755d50c6e8 |
|
BLAKE2b-256 | f2c8e4c29347e2cbdc8eb3caeb857be971f9e67b956f398a61c05945493dcbac |