Skip to content
This repository has been archived by the owner on Aug 28, 2024. It is now read-only.

Tracking Informer #310

Open
scothis opened this issue Oct 19, 2022 · 0 comments
Open

Tracking Informer #310

scothis opened this issue Oct 19, 2022 · 0 comments

Comments

@scothis
Copy link
Contributor

scothis commented Oct 19, 2022

The reconciler-runtime Tracker and controller-runtime Informer are distinct concepts that only meet at the edges. While this separation is useful in many cases there are some benefits to combining them. Since the tracker fundamentally depends on an informer for notifications of changed resources, it's possible to forget to register an informer for a tracked type, or to setup the event notification for that type to trigger the tracker. There are also cases where a small number of resources are tracked in a cluster, but there are many large resources of that GVK in the cluster (like Secrets in OpenShift).

If we can fuse the Tracker and Informer infrastructure it should be possible to use the tracker's knowledge to limit the resources cached by the informer to reduce memory consumption. Requests to get non-tracked resource would fall back to the api server.

One complexity is that informers are often shared between controllers (to minimize duplicative caches) while trackers are intentionally scoped to a single controller. Trackers are also able to handle multiple GVKs, while an informer is a for a single GVK.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant