kubernetes-client/python

Implement an Informer in python-client

Open

#868 建立於 2019年7月8日

在 GitHub 查看
 (22 留言) (69 反應) (2 負責人)Python (3,323 fork)batch import
help wantedlifecycle/frozen

倉庫指標

Star
 (6,225 star)
PR 合併指標
 (平均合併 10天 3小時) (30 天內合併 2 個 PR)

描述

https://github.com/kubernetes/client-go has an Informer implementation. Internally it leverages a watcher of some collection of resources, continually streams changes (add/modify/delete events), reflects the resources into a downstream store (cache), handles connectivity drops, and periodically does a full resync. This all happens on some background thread (goroutine). A client of the informer is free to iterate over that stored cache without concern for how it's populated, and immediately get (possibly outdated) state.

Applications using https://github.com/kubernetes-client/python that want a local store of resources reflecting some in-cluster state need to concern themselves with those lower-level details. There's a lot of room for error.

On 2019-06-25, go#28 added a simple informer implementation to the openapi-generated client for Golang. It defines a Cache struct, with both a list of all objects and event handler callbacks that a consumer could register.

https://github.com/kubernetes-client/python should contain a similar implementation.

People have been talking about this a bit in various places.

貢獻者指南