Skip to main content

Python client for the Rancher API with Async Support

Project description

rancher-client

Python Rancher Client with Async Support

This library is a fork from Rancher's official client-python to enable support of:

  • Environment Variables for Service Usage
  • Async [WIP] / Sync Client Support
  • Replace requests in favor of httpx

Installing

Note: This package requires Python 3+

pip install rancher-client
pip install git+https://github.com/growthengineai/rancher-client.git@main

Environment Variables

Below are the currently supported Environment Variables

One of the following sets:

  • RANCHER_URL: str = ""

  • RANCHER_ACCESS_KEY: str = ""

  • RANCHER_SECRET_KEY: str = ""

  • RANCHER_TOKEN: str = None

  • CATTLE_URL: str = ""

  • CATTLE_ACCESS_KEY: str = ""

  • CATTLE_SECRET_KEY: str = ""

  • CATTLE_TOKEN: str = None

  • HTTPX_TIMEOUT: float = 15.0

  • HTTPX_KEEPALIVE: int = 50

  • HTTPX_MAXCONNECT: int = 200

  • SSL_VERIFY: bool = True

  • RANCHER_LOG_LEVEL: str = "info"

  • RANCHER_CACHE_DIR: str = ~/rancher-client/rancher/.cache

Using API

import rancher
from rancher import RancherClient

client = RancherClient(url='https://localhost:8443/v3',
                        access_key='<some valid access key>',
                        secret_key='<some valid secret key>')

# curl -s https://localhost:8443/v3/users?me=true
client.list_user(me='true')

# curl -s -X POST https://localhost:8443/v3/users -H 'Content-Type: application/json' -d '{ "username" : "user1", "password": "Password1" }'
client.create_user(username='user1', password='Password1')

# curl -s -X PUT https://localhost:8443/v3/users/user-xyz123 -H 'Content-Type: application/json' -d '{ "description" : "A user" }'
user = client.by_id_user('user-xyz123')
client.update(user, description='A user')

# curl -s -X DELETE https://localhost:8443/v3/users/user-xyz123
user = client.by_id_user('user-xyz123')
client.delete(user)

# Links
# curl -s https://localhost:8443/v3/clusterRoleTemplateBindings?userId=user-xyz123
user = client.by_id_user('user-xyz123')
user.clusterRoleTemplateBindings()

Examples

Actions Rancher API spec

From the spec

"Actions perform an operation on a resource and (optionally) return a result."

To perform the setpodsecuritypolicytemplate action on a project object these are the steps.

This first method has built-in retry logic inside of client.action() when the error returned is 409

#creates a project and handles cleanup
project =  admin_pc.project 
# create an api_client from a management context
api_client = admin_mc.client
# perform the action via the client api
api_client.action(obj=project, action_name="setpodsecuritypolicytemplate",
                    podSecurityTemplateId=pspt.id)

Or alternatively, performing the action from the project context (which does not have built-in retry logic)

project = api_client.create_project(name="test-project", clusterId="local")
project.setpodsecuritypolicytemplate(podSecurityPolicyTemplateId="my-pspt")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rancher-client-0.0.1.tar.gz (2.9 kB view details)

Uploaded Source

Built Distribution

rancher_client-0.0.1-py3-none-any.whl (2.5 kB view details)

Uploaded Python 3

File details

Details for the file rancher-client-0.0.1.tar.gz.

File metadata

  • Download URL: rancher-client-0.0.1.tar.gz
  • Upload date:
  • Size: 2.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.8.10

File hashes

Hashes for rancher-client-0.0.1.tar.gz
Algorithm Hash digest
SHA256 9472849dfe8decb8e3f9a0149f3f4e8d8d6aa3def4868f3726039160b0121f8a
MD5 18d1590b3820788b8af10bcd70e5f3e8
BLAKE2b-256 0724fa9f9d0de5a02d3fd6b88f97d56354032aa4f52e65da5c8f27f117625e35

See more details on using hashes here.

File details

Details for the file rancher_client-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: rancher_client-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 2.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.8.10

File hashes

Hashes for rancher_client-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bf6eb164ef95460b450341b979b482783ce2c83d23a1ca5e75ba61fd9d69405e
MD5 8750126c6df8034d8faa5415d4521485
BLAKE2b-256 0ac38c7f7ebf402778b4aaab367ff81fa6fc4de4a0527985871f17ff2dba7fae

See more details on using hashes here.

Supported by

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