Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Reason given by maintainers: not stable

kubernetes-dynamic

This project aims to provide an easy interface over kubernetes API based on the official kubernetes package.

Basic syntax is very similar to kubectl.

client.pods.get() is the same as kubectl get pods

Example Usage

import kubernetes_dynamic as kd

client = kd.K8sClient()
pods: list[kd.models.V1Pod] = client.pods.get()
for pod in pods:
    print(pod.metadata.name)

Custom resources

import kubernetes_dynamic as kd

class MyModel(kd.models.ResourceItem):
    field: str


api: ResourceApi[MyModel] = kc.cl.get_api("mycustomresources", MyModel)
api: ResourceApi[MyModel] = kc.cl.get_api(kind="MyCustomResource", object_type=MyModel)
items: List[MyModel] = api.get()
item: Optional[MyModel] = api.get(name="exact-name")
if item:
    item.field = "modified"
    item.patch()
else:
    item = MyModel(metadata={"name": "exact-name", "namespace": "namespace-name"}, field="created", client=kd.cl)
    item.create()
    # item = MyModel(field="created")
    # item.metadata.name = "exact-name"

    # item = MyModel(metadata={"name": "exact-name"}, field="created")

    # item = MyModel(metadata=kd.models.V1Metadata(name="exact-name"), field="created")
    # item.create(namespace="namespace-name")

Models

We aim to provide pydantic models for all reasources.

Because the model names are exactly the same as in the kubernetes package, make sure you import the models from kubernetes_dynamic.models

  • Proper type hinting
  • All models are flexible (less dependent on kubernetes version):
    • accept extra values
    • all optional (type checker is tricked into assuming everything exists)
  • Models created by queries have a reference to the client it was created by, manually creating models creates a default client(without arguments), or you can specify client manually.
  • Base model contains common methods for all models:
    • refresh
    • patch
    • create
    • read
    • delete
    • is_ready
  • additional features for specific models (just examples):
    • configmap:
      • from_path
    • ingress:
      • get_default_host
    • namespace:
      • annotate
      • ensure
    • pod:
      • get_restarts
      • exec
      • disk_usage
      • get_controller_type
      • get_env
    • secret
      • exists
      • set
      • decode

Subresources

Subresources are available under the main resource api objects:

  • example: client.pods.exec

Work in progress

Expect breaking changes

Metadata

Release files for pyk8s 0.0.0a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyk8s 0.0.0a1
File Size Uploaded
pyk8s-0.0.0a1.tar.gz 68.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyk8s 0.0.0a1
File Interpreter ABI Platform
pyk8s-0.0.0a1-py3-none-any.whl Python 3 none any Details

Total release size: 149.9 kB

Release files / pyk8s-0.0.0a1.tar.gz

Download URL pyk8s-0.0.0a1.tar.gz
Size 68.8 kB
Tags Source
SHA-256 checksum
How to use checksums
1991c42778adba02a8f085da063f0939ebc000c9fb1ea396a0668b40f9928759
BLAKE2b-256 checksum
How to use checksums
60438476adf514ca7caecfe6036a830c93b1955cea588ccbce46ad520b1a4b33
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.16

Release files / pyk8s-0.0.0a1-py3-none-any.whl

Download URL pyk8s-0.0.0a1-py3-none-any.whl
Size 81.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9e2ff164d9659ce562b41612ecd5bc764448ca2424524f83c6b71adb0ae25de4
BLAKE2b-256 checksum
How to use checksums
7a939217552b230e86bc3a5f23895058b4840574b8d9a01ec668225c2b76db67
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.16

Release history Release notifications | RSS feed

This release

0.0.0a1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page