I need to create a K8S proxy watcher api-server, it receives
list requests (for some k8s resources) with
watch=true from clients, and proxy requests to the real upstream K8S API-Server, then receives responses from upstream continuously and send them back.
This is what I did:
- For server side, original K8S api-server implements
watchoperation using a long-lived HTTP connection, plus chunked response. In code there is a
WatchServerstruct to serve
its first member
Watching needs an struct implements
watch.Interface interface. So I have to find a suitable obj to fill this field so that I can implement a similar K8S apiserver.
- For client side, I have to get real watch events from upstream server, so I used
SharedInformerin K8S, use add/delete/update event handler to receive up-to-date event notification.
The problem is that
SharedInformer doesn’t implement
watch.Interface interface, cannot be used to create
WatchServer struct. So are there any ways to connect these two things together? Or is there any objs that can be used to implement my requirements?