Use typed queue in Customresource Discovery Controller

This commit is contained in:
Alvaro Aleman 2024-04-11 20:35:21 -04:00
parent 0c7370bb85
commit ab4e555ab1

View File

@ -53,7 +53,7 @@ type DiscoveryController struct {
// To allow injection for testing.
syncFn func(version schema.GroupVersion) error
queue workqueue.RateLimitingInterface
queue workqueue.TypedRateLimitingInterface[schema.GroupVersion]
}
func NewDiscoveryController(
@ -69,7 +69,10 @@ func NewDiscoveryController(
crdLister: crdInformer.Lister(),
crdsSynced: crdInformer.Informer().HasSynced,
queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "DiscoveryController"),
queue: workqueue.NewTypedRateLimitingQueueWithConfig(
workqueue.DefaultTypedControllerRateLimiter[schema.GroupVersion](),
workqueue.TypedRateLimitingQueueConfig[schema.GroupVersion]{Name: "DiscoveryController"},
),
}
crdInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
@ -337,7 +340,7 @@ func (c *DiscoveryController) processNextWorkItem() bool {
}
defer c.queue.Done(key)
err := c.syncFn(key.(schema.GroupVersion))
err := c.syncFn(key)
if err == nil {
c.queue.Forget(key)
return true