1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-13 19:28:55 +00:00

fix: ttl cleanup controller events processing (#7964)

Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
This commit is contained in:
Charles-Edouard Brétéché 2023-08-03 17:27:32 +02:00 committed by GitHub
parent 83ee97c9b0
commit 64a555a25d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -37,7 +37,6 @@ func newController(client metadata.Getter, metainformer informers.GenericInforme
}
registration, err := c.informer.AddEventHandler(cache.ResourceEventHandlerFuncs{
AddFunc: c.handleAdd,
DeleteFunc: c.handleDelete,
UpdateFunc: c.handleUpdate,
})
if err != nil {
@ -52,12 +51,12 @@ func (c *controller) handleAdd(obj interface{}) {
c.enqueue(obj)
}
func (c *controller) handleDelete(obj interface{}) {
c.enqueue(obj)
}
func (c *controller) handleUpdate(oldObj, newObj interface{}) {
c.enqueue(newObj)
old := oldObj.(metav1.Object)
new := newObj.(metav1.Object)
if old.GetResourceVersion() != new.GetResourceVersion() {
c.enqueue(newObj)
}
}
func (c *controller) Start(ctx context.Context, workers int) {
@ -112,14 +111,17 @@ func (c *controller) processItem() bool {
if shutdown {
return false
}
defer c.queue.Forget(item)
// In any case we need to call Done
defer c.queue.Done(item)
err := c.reconcile(item.(string))
if err != nil {
c.logger.Error(err, "reconciliation failed")
c.queue.AddRateLimited(item)
return true
} else {
// If no error, we call Forget to reset the rate limiter
c.queue.Forget(item)
}
c.queue.Done(item)
return true
}