kubernetes-sigs / kubernetes-sigs/cluster-api

Feature: ReconcilerRateLimiting

Open
#13,005 0 comments 2 reactions 1 assignee Claimed by @sbueringer View on GitHub
area/misc kind/feature priority/important-longterm triage/accepted
Dominant language
Go
Stars
4.3k
Forks
1.6k
Avg merge
1d 3h
Merged PRs (30d)
113

Description

* One-line description: Enables reconciler rate-limiting (currently 1 request / 1 second)
* Feature gate state:
* [x] Alpha (disabled per default): v1.12
* [x] Beta (enabled per default): v1.13
* [ ] Stable (feature gate removed): TBD
* PRs:
* [x] https://github.com/kubernetes-sigs/cluster-api/pull/13006
* [x] https://github.com/kubernetes-sigs/cluster-api/pull/13040
* [x] https://github.com/kubernetes-sigs/cluster-api/pull/13373
* [ ] https://github.com/kubernetes-sigs/cluster-api/pull/13416

* Next steps:
* [x] Export capicontrollerutil so it can be used in providers: https://github.com/kubernetes-sigs/cluster-api/pull/13363
* [ ] Check if we can de-duplicate requeue logic in the ClusterCache
* [ ] Try to find a way to avoid duplicating the CR metrics (very likely would require changes to CR) (also consider if there are other things in the Reconcile wrapper that could be moved to CR or be made easier by changes to CR)
* [ ] [Entirely TBD] Ideas for further features for the reconcile wrapper:
* [ ] Getting the object and dealing with not found
* [ ] Standardization of finalizer / pause handling
* [ ] Emitting an event e.g. on errors

Today our reconcilers are reconciling on all incoming events which is way too often. The goal of this feature is to rate-limit our controllers to reduce overall resource consumption.

As we are close to code-freeze and in an abundance of caution we are adding this behind a feature gate.
We are planning to graduate quickly once appropriate scale testing has been done.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.