-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Proposal: Add reconciliation buffer to reduce load #857
Copy link
Copy link
Open
Labels
kind/designCategorizes issue or PR as related to design.Categorizes issue or PR as related to design.lifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.Indicates that an issue or PR should not be auto-closed due to staleness.priority/important-longtermImportant over the long term, but may not be staffed and/or may need multiple releases to complete.Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Milestone
Description
Some of my controllers receive a bunch of reconciliation requests. However there's no improvement to the controller quality if I handle them all individually compared to handling them once every now and then.
I propose that we can optionally add a following controller option to these options:
controller-runtime/pkg/controller/controller.go
Lines 33 to 44 in 2361b05
| type Options struct { | |
| // MaxConcurrentReconciles is the maximum number of concurrent Reconciles which can be run. Defaults to 1. | |
| MaxConcurrentReconciles int | |
| // Reconciler reconciles an object | |
| Reconciler reconcile.Reconciler | |
| // RateLimiter is used to limit how frequently requests may be queued. | |
| // Defaults to MaxOfRateLimiter which has both overall and per-item rate limiting. | |
| // The overall is a token bucket and the per-item is exponential. | |
| RateLimiter ratelimiter.RateLimiter | |
| } |
I'm definitely not an expert, but I think the option could have the same interface as the rate limiting interface, but instead of working on retries, working on all requests?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
kind/designCategorizes issue or PR as related to design.Categorizes issue or PR as related to design.lifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.Indicates that an issue or PR should not be auto-closed due to staleness.priority/important-longtermImportant over the long term, but may not be staffed and/or may need multiple releases to complete.Important over the long term, but may not be staffed and/or may need multiple releases to complete.