Skip to main content

HPE Ezmeral Container Platform client

Project description

Build & Test Code Checks Issues Coverage Status Pyversions MIT license Code Style pypi

Gitpod Ready-to-Code Good first issues open


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

hpecp-0.14.6.tar.gz (45.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hpecp-0.14.6-py3-none-any.whl (84.4 kB view details)

Uploaded Python 3

File details

Details for the file hpecp-0.14.6.tar.gz.

File metadata

  • Download URL: hpecp-0.14.6.tar.gz
  • Upload date:
  • Size: 45.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.0.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.9

File hashes

Hashes for hpecp-0.14.6.tar.gz
Algorithm Hash digest
SHA256 96011e5735f5dedc4f8823cc46e8ec46bf84b9f70cee44fa150f317bd016fe75
MD5 673a6d0723f472ef63f10f41b6c57f33
BLAKE2b-256 bf1a8d397d3d363edde4a3936d43cf9ded2e9fdd45de6136608e719895561f14

See more details on using hashes here.

File details

Details for the file hpecp-0.14.6-py3-none-any.whl.

File metadata

  • Download URL: hpecp-0.14.6-py3-none-any.whl
  • Upload date:
  • Size: 84.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.0.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.9

File hashes

Hashes for hpecp-0.14.6-py3-none-any.whl
Algorithm Hash digest
SHA256 70a333a4c59c4041673fc4e40579370ececb1f81d618d422e723cb1b54b49a1c
MD5 fa94681208c68e83ce6db45f82757685
BLAKE2b-256 d7956846f8453037afb20ca7633ec98427fe8d242b55625b78c4cb276fa7a136

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page