Asynchronous (AsyncIO) client library for the Kubernetes API.
This library is created in the same way as official https://github.com/kubernetes-client/python but uses asynchronous version of swagger-codegen. My motivation is described here: kubernetes-client/python#324
From PyPi directly:
pip install kubernetes_asyncio
Requirements: Python 3.5.3+ (required by aiohttp).
Starting from v9.0.0 OpenAPI generator is used to generate code instead of swagger-codegen. This change should be transparent from the client point of view.
To list all pods:
import asyncio
from kubernetes_asyncio import client, config
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()
v1 = client.CoreV1Api()
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__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
loop.close()
More complicated examples, like asynchronous multiple watch or tail logs from pods,
you can find in examples/
folder.
This library is generated in the same way as the official Kubernetes Python Library. It uses swagger-codegen and the same concepts like streaming, watching or reading configuration. Because of an early stage of this library some differences still exist:
synchronous library kubernetes-client/python | this library | |
---|---|---|
authentication method | gcp-token, azure-token, user-token, oidc-token, user-password, in-cluster | gcp-token (only via gcloud command), user-token, oidc-token, user-password, in-cluster |
python | 2.7 3.4 3.5 3.6 3.7 | 3.5.3 3.6 3.7 |
streaming data via websocket from PODs | bidirectional | read-only is already implemented |
generator | swagger-codegen | openapi-generator |
This library is versioned in the same way as the synchronous library. The first stable version is 7.0.0 and next major versions are comparable. This compatibility table describes this library too.
Install the development packages:
pip install -r requirements.txt
pip install -r test-requirements.txt
You can run the style checks and tests with
flake8 kubernetes_asyncio/
isort --diff --recursive kubernetes_asyncio/
nosetests