Skip to main content

Easily Manage Kubernetes Objects.

Project description

KubeObject

A simple to use wrapping on top of Kubernetes custom resources with object oriented semantics.

KubeObject allows you to use Kubernetes Custom Objects in an object oriented way. It works by defining an object, by instantiating it with a name and namespace and then "bounding" this object to a Kubernetes object by creating it, or loading it, if it already exists.

Quick Start

In the following example we create an "Istio" object, which will manage one of the Custom Objects defined by the Istio operator. A simple lifecycle is explained below.

# Builds the object, but it is "unbound", this is, it is not
# referring to an actual object in Kubernetes.
istio = CustomObject("my-istio", "my-namespace", plural="istios", api_version="istio.banzaicloud.io/v1beta1")

# Let's pass the simplest spec we can
istio["spec"] = {"version": "1.1.0", "mtls": True}

# And now create it; after creation the object is "bound"
istio.create()

Updating the object's Spec and checking the object's Status is one of our goals as well, like in the following example:

# The Istio operator should have started working on deploying
# this new Custom Resource. Let's get the status of the object
print(istio["status"])

# This is empty, because since calling `create()` we have not
# updated from the actual object in Kubernetes. Let's get an
# up-to-date object.
istio.reload()

# I want to avoid calling `reload()` everytime I need a new
# version
istio.auto_reload = True

# Now we'll wait until the object has reached a given status:
while istio["status"]["Status"] == "Reconciling": time.sleep(5)

# Check the Status after "Reconciling"
print("Our status is:", istio["status"]["Status"])

After doing all its work, the Istio object might need to be deleted:

istio.delete()

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

kubeobject-0.2.1.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

kubeobject-0.2.1-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

Details for the file kubeobject-0.2.1.tar.gz.

File metadata

  • Download URL: kubeobject-0.2.1.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.6

File hashes

Hashes for kubeobject-0.2.1.tar.gz
Algorithm Hash digest
SHA256 a807945ea36b4144bca2df4b2e91bfa4f37dcb0a19234980b5f4d7d3b8c80bda
MD5 d244fd773645ef058bf683b8a19e32fe
BLAKE2b-256 bdb700804659a13af0b2b95454e3ae936c91ca9af7acdd0b78eafb6a2c4c9c40

See more details on using hashes here.

File details

Details for the file kubeobject-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: kubeobject-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 17.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.6

File hashes

Hashes for kubeobject-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 18678e2fc778dc84bd8cb279b4ac8f9563616f03149b49d76b2eb77b4499ef5d
MD5 cecabb075136a403e6b0aeb0e23c6fcd
BLAKE2b-256 25e124d7b11efb282ec886bf63c029624f8c11d163e547cfac3ef0ef6afc0f6d

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