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
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 libray | |
---|---|---|
authentication method | gcp-token, user-token, oid-token, user-password, in-cluster | gcp-token (only via gcloud command), user-token, user-password, in-cluster |
refesh token | no | yes, optional |
python | 2.7 3.4 3.5 3.6 | 3.5 3.6 |
streaming data via websocket from PODs | bidirectional | read-only is already implemented |
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