MCPcopy
hub / github.com/kubernetes-client/python

github.com/kubernetes-client/python @v36.0.2 sqlite

repository ↗ · DeepWiki ↗ · release v36.0.2 ↗
25,048 symbols 67,682 edges 1,873 files 22,287 documented · 89%
README

Kubernetes Python Client

CI PyPI version codecov pypi supported versions Client Capabilities Client Support Level

Python client for the kubernetes API.

Installation

From source:

git clone --recursive https://github.com/kubernetes-client/python.git
cd python
python -m pip install --upgrade .

From PyPI directly:

pip install kubernetes

Examples

list all pods:

from kubernetes import client, config

# Configs can be set in Configuration class directly or using helper utility
config.load_kube_config()

v1 = client.CoreV1Api()
print("Listing pods with their IPs:")
ret = v1.list_pod_for_all_namespaces(watch=False)
for i in ret.items:
    print("%s\t%s\t%s" % (i.status.pod_ip, i.metadata.namespace, i.metadata.name))

list all pods using asyncio:

import asyncio
from kubernetes.aio import client, config
from kubernetes.aio.client.api_client import ApiClient


async def main():
    # Configs can be set in Configuration class directly or using helper
    # utility. If no argument provided, the config will be loaded from
    # default location.
    await config.load_kube_config()

    # use the context manager to close http sessions automatically
    async with ApiClient() as api:

        v1 = client.CoreV1Api(api)
        print("Listing pods with their IPs:")
        ret = await v1.list_pod_for_all_namespaces()

        for i in ret.items:
            print(i.status.pod_ip, i.metadata.namespace, i.metadata.name)


if __name__ == '__main__':
    asyncio.run(main())

watch on namespace object:

from kubernetes import client, config, watch

# Configs can be set in Configuration class directly or using helper utility
config.load_kube_config()

v1 = client.CoreV1Api()
count = 10
w = watch.Watch()
for event in w.stream(v1.list_namespace, _request_timeout=60):
    print("Event: %s %s" % (event['type'], event['object'].metadata.name))
    count -= 1
    if not count:
        w.stop()

print("Ended.")

More examples can be found in examples folder. To run examples, run this command:

python -m examples.example1

(replace example1 with one of the filenames in the examples folder)

Documentation

All APIs and Models' documentation can be found at the Generated client's README file

Compatibility

client-python follows semver, so until the major version of client-python gets increased, your code will continue to work with explicitly supported versions of Kubernetes clusters.

Compatibility matrix of supported client versions

  • client 9.y.z: Kubernetes 1.12 or below (+-), Kubernetes 1.13 (✓), Kubernetes 1.14 or above (+-)
  • client 10.y.z: Kubernetes 1.13 or below (+-), Kubernetes 1.14 (✓), Kubernetes 1.14 or above (+-)
  • client 11.y.z: Kubernetes 1.14 or below (+-), Kubernetes 1.15 (✓), Kubernetes 1.16 or above (+-)
  • client 12.y.z: Kubernetes 1.15 or below (+-), Kubernetes 1.16 (✓), Kubernetes 1.17 or above (+-)
  • client 17.y.z: Kubernetes 1.16 or below (+-), Kubernetes 1.17 (✓), Kubernetes 1.18 or above (+-)
  • client 18.y.z: Kubernetes 1.17 or below (+-), Kubernetes 1.18 (✓), Kubernetes 1.19 or above (+-)
  • client 19.y.z: Kubernetes 1.18 or below (+-), Kubernetes 1.19 (✓), Kubernetes 1.20 or above (+-)
  • client 20.y.z: Kubernetes 1.19 or below (+-), Kubernetes 1.20 (✓), Kubernetes 1.21 or above (+-)
  • client 21.y.z: Kubernetes 1.20 or below (+-), Kubernetes 1.21 (✓), Kubernetes 1.22 or above (+-)
  • client 22.y.z: Kubernetes 1.21 or below (+-), Kubernetes 1.22 (✓), Kubernetes 1.23 or above (+-)
  • client 23.y.z: Kubernetes 1.22 or below (+-), Kubernetes 1.23 (✓), Kubernetes 1.24 or above (+-)
  • client 24.y.z: Kubernetes 1.23 or below (+-), Kubernetes 1.24 (✓), Kubernetes 1.25 or above (+-)
  • client 25.y.z: Kubernetes 1.24 or below (+-), Kubernetes 1.25 (✓), Kubernetes 1.26 or above (+-)
  • client 26.y.z: Kubernetes 1.25 or below (+-), Kubernetes 1.26 (✓), Kubernetes 1.27 or above (+-)
  • client 27.y.z: Kubernetes 1.26 or below (+-), Kubernetes 1.27 (✓), Kubernetes 1.28 or above (+-)
  • client 28.y.z: Kubernetes 1.27 or below (+-), Kubernetes 1.28 (✓), Kubernetes 1.29 or above (+-)
  • client 29.y.z: Kubernetes 1.28 or below (+-), Kubernetes 1.29 (✓), Kubernetes 1.30 or above (+-)
  • client 30.y.z: Kubernetes 1.29 or below (+-), Kubernetes 1.30 (✓), Kubernetes 1.31 or above (+-)
  • client 31.y.z: Kubernetes 1.30 or below (+-), Kubernetes 1.31 (✓), Kubernetes 1.32 or above (+-)
  • client 32.y.z: Kubernetes 1.31 or below (+-), Kubernetes 1.32 (✓), Kubernetes 1.33 or above (+-)
  • client 33.y.z: Kubernetes 1.32 or below (+-), Kubernetes 1.33 (✓), Kubernetes 1.34 or above (+-)
  • client 34.y.z: Kubernetes 1.33 or below (+-), Kubernetes 1.34 (✓), Kubernetes 1.35 or above (+-)
  • client 35.y.z: Kubernetes 1.34 or below (+-), Kubernetes 1.35 (✓), Kubernetes 1.36 or above (+-)
  • client 36.y.z: Kubernetes 1.35 or below (+-), Kubernetes 1.36 (✓), Kubernetes 1.37 or above (+-)

See here for an explanation of why there is no v13-v16 release.

Key:

  • Exactly the same features / API objects in both client-python and the Kubernetes version.
  • + client-python has features or API objects that may not be present in the Kubernetes cluster, either due to that client-python has additional new API, or that the server has removed old API. However, everything they have in common (i.e., most APIs) will work. Please note that alpha APIs may vanish or change significantly in a single release.
  • - The Kubernetes cluster has features the client-python library can't use, either due to the server has additional new API, or that client-python has removed old API. However, everything they share in common (i.e., most APIs) will work.

See the CHANGELOG for a detailed description of changes between client-python versions.

Client version Canonical source for OpenAPI spec Maintenance status
5.0 Alpha/Beta Kubernetes main repo, 1.9 branch
5.0 Kubernetes main repo, 1.9 branch
6.0 Alpha/Beta Kubernetes main repo, 1.10 branch
6.0 Kubernetes main repo, 1.10 branch
7.0 Alpha/Beta Kubernetes main repo, 1.11 branch
7.0 Kubernetes main repo, 1.11 branch
8.0 Alpha/Beta Kubernetes main repo, 1.12 branch
8.0 Kubernetes main repo, 1.12 branch
9.0 Alpha/Beta Kubernetes main repo, 1.13 branch
9.0 Kubernetes main repo, 1.13 branch
10.0 Alpha/Beta Kubernetes main repo, 1.14 branch
10.0 Kubernetes main repo, 1.14 branch
11.0 Alpha/Beta Kubernetes main repo, 1.15 branch
11.0 Kubernetes main repo, 1.15 branch
12.0 Alpha/Beta Kubernetes main repo, 1.16 branch
12.0 Kubernetes main repo, 1.16 branch
17.0 Alpha/Beta Kubernetes main repo, 1.17 branch
17.0 Kubernetes main repo, 1.17 branch
18.0 Alpha/Beta Kubernetes main repo, 1.18 branch
18.0 Kubernetes main repo, 1.18 branch
19.0 Alpha/Beta Kubernetes main repo, 1.19 branch
19.0 Kubernetes main repo, 1.19 branch
20.0 Alpha/Beta Kubernetes main repo, 1.20 branch
20.0 Kubernetes main repo, 1.20 branch
21.0 Alpha/Beta Kubernetes main repo, 1.21 branch
21.0 Kubernetes main repo, 1.21 branch
22.0 Alpha/Beta Kubernetes main repo, 1.22 branch
22.0 Kubernetes main repo, 1.22 branch
23.0 Alpha/Beta Kubernetes main repo, 1.23 branch
23.0 Kubernetes main repo, 1.23 branch
24.0 Alpha/Beta Kubernetes main repo, 1.24 branch
24.0 Kubernetes main repo, 1.24 branch
25.0 Alpha/Beta Kubernetes main repo, 1.25 branch
25.0 Kubernetes main repo, 1.25 branch
26.0 Alpha/Beta Kubernetes main repo, 1.26 branch
26.0 Kubernetes main repo, 1.26 branch
27.0 Alpha/Beta Kubernetes main repo, 1.27 branch
27.0 Kubernetes main repo, 1.27 branch
28.0 Alpha/Beta Kubernetes main repo, 1.28 branch
28.0 Kubernetes main repo, 1.28 branch
29.0 Alpha/Beta Kubernetes main repo, 1.29 branch
29.0 Kubernetes main repo, 1.29 branch
30.0 Alpha/Beta Kubernetes main repo, 1.30 branch
30.0 Kubernetes main repo, 1.30 branch
31.0 Alpha/Beta Kubernetes main repo, 1.31 branch
31.0 Kubernetes main repo, 1.31 branch
32.0 Alpha/Beta Kubernetes main repo, 1.32 branch
32.1 Kubernetes main repo, 1.32 branch
33.1 Alpha/Beta Kubernetes main repo, 1.33 branch
33.1 Kubernetes main repo, 1.33 branch
34.1 Alpha/Beta Kubernetes main repo, 1.34 branch
34.1 Kubernetes main repo, 1.34 branch
35.0 Alpha/Beta Kubernetes main repo, 1.35 branch
35.0 Kubernetes main repo, 1.35 branch
36.0 Alpha/Beta Kubernetes main repo, 1.36 branch
36.0 Kubernetes main repo, 1.36 branch

See here for an explanation of why there is no v13-v16 release.

Key:

  • Changes in main Kubernetes repo are manually (should be automated) published to client-python when they are available.
  • No longer maintained; please upgrade.

Kubernetes supports three minor releases at a time. "Support" means we expect users to be running that version in production, though we

Core symbols most depended-on inside this repo

get
called by 26519
kubernetes/informer/cache.py
call_api
called by 937
kubernetes/client/api_client.py
call_api
called by 936
kubernetes/aio/client/api_client.py
select_header_accept
called by 935
kubernetes/client/api_client.py
select_header_accept
called by 934
kubernetes/aio/client/api_client.py
get_default_copy
called by 772
kubernetes/client/configuration.py
get_default
called by 767
kubernetes/aio/client/configuration.py
items
called by 698
kubernetes/client/models/v1_pod_list.py

Shape

Method 22,899
Class 1,873
Function 194
Route 82

Languages

Python100%

Modules by API surface

kubernetes/client/api/core_v1_api.py414 symbols
kubernetes/aio/client/api/core_v1_api.py414 symbols
kubernetes/aio/test/test_core_v1_api.py209 symbols
kubernetes/client/api/apps_v1_api.py126 symbols
kubernetes/aio/client/api/apps_v1_api.py126 symbols
kubernetes/base/config/kube_config_test.py109 symbols
kubernetes/client/api/storage_v1_api.py96 symbols
kubernetes/aio/client/api/storage_v1_api.py96 symbols
kubernetes/client/api/admissionregistration_v1_api.py94 symbols
kubernetes/aio/client/api/admissionregistration_v1_api.py94 symbols
kubernetes/client/api/resource_v1beta2_api.py90 symbols
kubernetes/client/api/networking_v1_api.py90 symbols

Dependencies from manifests, versioned

aiohttp3.13.5 · 1×
certifi14.05.14 · 1×
durationpy0.7 · 1×
python-dateutil2.5.3 · 1×
python_dateutil2.5.3 · 1×
pyyaml6.0.3 · 1×
setuptools21.0.0 · 1×
six1.9.0 · 1×
urllib31.24.2 · 1×
websocket-client0.32.0 · 1×

For agents

$ claude mcp add python \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact