[WIP] feat: support dynamic namespace discovery#2864
[WIP] feat: support dynamic namespace discovery#2864Serializator wants to merge 6 commits intokubernetes:mainfrom
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: Serializator The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
This issue is currently awaiting triage. If kube-state-metrics contributors determine this is a relevant issue, they will accept it by applying the The DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
…espace for performance
2972878 to
bac4618
Compare
What this PR does / why we need it:
Add support for dynamic namespace discovery. This allows the user to filter namespaces by label, providing more dynamic and granular control over what namespaces to watch.
This is a work in progress but I'd really appreciate early feedback.
The most impactful change is actually the refactoring of the metrics store to filter objects by their namespace at the event handler level instead of starting a dedicated reflector per namespace.
I'd love feedback on this approach. Performance-wise this reduces the number of events being handled concurrently at any point in time as there is one goroutine per resource instead of per resource and namespace.
The counter-part is a goroutine per resource and namespace. With dynamic namespace discovery instead of a static list, there will be rate limiting at the API level due to the design of one reflector (list & watch) per namespace.
How does this change affect the cardinality of KSM:
No change.
Which issue(s) this PR fixes:
Fixes #2820