diff --git a/internal/ingress/controller/controller.go b/internal/ingress/controller/controller.go index f17f73ef3..966de6f2f 100644 --- a/internal/ingress/controller/controller.go +++ b/internal/ingress/controller/controller.go @@ -214,6 +214,11 @@ func (n *NGINXController) CheckIngress(ing *networking.Ingress) error { return nil } + // Skip checks if the ingress is marked as deleted + if !ing.DeletionTimestamp.IsZero() { + return nil + } + if !class.IsValid(ing) { klog.Warningf("ignoring ingress %v in %v based on annotation %v", ing.Name, ing.ObjectMeta.Namespace, class.IngressKey) return nil diff --git a/internal/ingress/controller/controller_test.go b/internal/ingress/controller/controller_test.go index 0aa522b7f..22d108ca4 100644 --- a/internal/ingress/controller/controller_test.go +++ b/internal/ingress/controller/controller_test.go @@ -294,6 +294,16 @@ func TestCheckIngress(t *testing.T) { } }) }) + + t.Run("When the ingress is marked as deleted", func(t *testing.T) { + ing.DeletionTimestamp = &metav1.Time{ + Time: time.Now(), + } + + if nginx.CheckIngress(ing) != nil { + t.Errorf("when the ingress is marked as deleted, no error should be returned") + } + }) } func TestMergeAlternativeBackends(t *testing.T) {