From 47b1266503647c159502d2eaa01a2a20d9cf5e5e Mon Sep 17 00:00:00 2001 From: shuting <shuting@nirmata.com> Date: Tue, 28 Jun 2022 11:58:23 +0800 Subject: [PATCH] - Disable events generation on DELETE; - Reduce event generation retry from 10 to 3 (#4159) Signed-off-by: ShutingZhao <shuting@nirmata.com> --- pkg/event/util.go | 2 +- pkg/webhooks/resource/handlers.go | 19 +++++++++++++++---- pkg/webhooks/resource/validation.go | 6 ++++-- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/pkg/event/util.go b/pkg/event/util.go index 4e2ec4342a..28871bd5e7 100644 --- a/pkg/event/util.go +++ b/pkg/event/util.go @@ -2,7 +2,7 @@ package event const eventWorkQueueName = "kyverno-events" -const workQueueRetryLimit = 10 +const workQueueRetryLimit = 3 // Info defines the event details type Info struct { diff --git a/pkg/webhooks/resource/handlers.go b/pkg/webhooks/resource/handlers.go index 44fc588e42..bae6172a20 100644 --- a/pkg/webhooks/resource/handlers.go +++ b/pkg/webhooks/resource/handlers.go @@ -359,8 +359,10 @@ func (h *handlers) handleMutation(logger logr.Logger, request *admissionv1.Admis // all policies were applied successfully. // create an event on the resource // ADD EVENTS - events := generateEvents(engineResponses, false, logger) - h.eventGen.Add(events...) + if deletionTimeStamp == nil { + events := generateEvents(engineResponses, false, logger) + h.eventGen.Add(events...) + } // debug info func() { @@ -430,9 +432,18 @@ func (h *handlers) handleVerifyImages(logger logr.Logger, request *admissionv1.A prInfos := policyreport.GeneratePRsFromEngineResponse(engineResponses, logger) h.prGenerator.Add(prInfos...) + var deletionTimeStamp *metav1.Time + if reflect.DeepEqual(policyContext.NewResource, unstructured.Unstructured{}) { + deletionTimeStamp = policyContext.NewResource.GetDeletionTimestamp() + } else { + deletionTimeStamp = policyContext.OldResource.GetDeletionTimestamp() + } + blocked := toBlockResource(engineResponses, logger) - events := generateEvents(engineResponses, blocked, logger) - h.eventGen.Add(events...) + if deletionTimeStamp == nil { + events := generateEvents(engineResponses, blocked, logger) + h.eventGen.Add(events...) + } if blocked { logger.V(4).Info("resource blocked") diff --git a/pkg/webhooks/resource/validation.go b/pkg/webhooks/resource/validation.go index b8198bb320..6390172a42 100644 --- a/pkg/webhooks/resource/validation.go +++ b/pkg/webhooks/resource/validation.go @@ -94,8 +94,10 @@ func (v *validationHandler) handleValidation( // Scenario 3: // all policies were applied successfully. // create an event on the resource - events := generateEvents(engineResponses, blocked, logger) - v.eventGen.Add(events...) + if deletionTimeStamp == nil { + events := generateEvents(engineResponses, blocked, logger) + v.eventGen.Add(events...) + } if blocked { logger.V(4).Info("resource blocked")