Open
Description
Tasks
- [v0.20] Design: 📖 Add a design for a priority queue #3013
- [v0.20] Initial implementation: ✨ Add a priority queue #3014
- Follow-up: 🐛 Bugfixes for priority queue #3060
- [v0.21] 🌱 Add priority label to PQ depth metric #3156
- Further improvements:
- [v0.?] Enable feature per default
- Add Priority parameter to reconcile.Result
- Add Priority parameter to reconcile.Request (TBD, depending on use cases: 📖 Add a design for a priority queue #3013 (comment))
Feature enablement
The feature can be enabled by setting the UsePriorityQueue
option to true, e.g.:
ctrlOptions := ctrl.Options{
Controller: config.Controller{
UsePriorityQueue: ptr.To[bool](true),
},
...
}
mgr, err := ctrl.NewManager(restConfig, ctrlOptions)
Original issue description
While discussing #857 (comment) an idea come up about having something like a priority queue, so we can give resync events a lower priority while assigning to other events a higher priority.
This could help when there are many objects of the same type and at every resync period there is a storm of events being added to the queue.