kubernetes_asyncio
kubernetes_asyncio copied to clipboard
Python asynchronous client library for Kubernetes http://kubernetes.io/
ClientPayloadError occasionally thrown when iterating a watch
i do get a ClientPayloadError from time to time: ``` File ... in run async for update in stream: File "/usr/local/lib/python3.8/dist-packages/kubernetes_asyncio/watch/watch.py", line 131, in __anext__ return await self.next() File "/usr/local/lib/python3.8/dist-packages/kubernetes_asyncio/watch/watch.py",...
dynamic.DynamicClient
Any plan to have dynamic.DynamicClient ?
Custom object json-patch
I noticed that most patch calls support all 3 patch types (json-patch, merge-patch, strategic-merge-patch), but the patch calls for custom objects (including for status and scale sub-resources) only support merge-patch....
Perform automatic retries for 410s during watches
At this time, when a watch expires (with a 410 Gone) the watcher returns an "error" event to the caller. Instead of returning a raw error event, it should attempt...
stream doesn't support multichannel communication
Current implementation of web-socket doesn't support multichannel communication. Now it's impossible to "talk" to a pod like sending a command, reading output, send another command ... in the same connection.
Malformed JSON response, the 'object' and/or 'type' field is missing in JSON
we maintaining this client's fork @ https://github.com/truenas/kubernetes_asyncio – I have faced an issue recently where client is unable to parse out 400 error and instead raise a bare exception. Steps...
resource_version set incorrectly while watching list_* functions
Watch objects maintain a resource_version field to allow the watch to resume at the last observed point after a timeout. However, there is a bug preventing this from working as...
ApiClient.deserialize should be a function, not a method
As far as I can tell, it does not use any attributes of the ApiClient. The advantage of having it as function would be to have it available without needing...
Reconnect watcher if server ends empty response
If the server sends an empty response (e.g. a server-side timeout was exceeded), the watcher should reconnect unless the user has specified a timeout. This is similar to the behavior...
as example code: ``` async def watch_job_event(namespace: str, callback: asyncio.coroutines): """ watch job event""" async with ApiClient() as api: batchv1 = client.BatchV1Api(api) w = watch.Watch() logging.info("begin to watch job events")...