diff --git a/cns/kubecontroller/nodenetworkconfig/reconciler.go b/cns/kubecontroller/nodenetworkconfig/reconciler.go index a21772cb55..10b252b48a 100644 --- a/cns/kubecontroller/nodenetworkconfig/reconciler.go +++ b/cns/kubecontroller/nodenetworkconfig/reconciler.go @@ -180,6 +180,10 @@ func (r *Reconciler) SetupWithManager(mgr ctrl.Manager, node *v1.Node) error { return ue.ObjectOld.GetGeneration() == ue.ObjectNew.GetGeneration() }, }). + WithEventFilter(predicate.NewPredicateFuncs(func(object client.Object) bool { + // only process events on objects that are not being deleted. + return object.GetDeletionTimestamp().IsZero() + })). Complete(r) if err != nil { return errors.Wrap(err, "failed to set up reconciler with manager") diff --git a/cns/service/main.go b/cns/service/main.go index b237718e80..1cd19ffd20 100644 --- a/cns/service/main.go +++ b/cns/service/main.go @@ -1173,6 +1173,9 @@ func reconcileInitialCNSState(ctx context.Context, cli nodeNetworkConfigGetter, } logger.Printf("Retrieved NNC: %+v", nnc) + if !nnc.DeletionTimestamp.IsZero() { + return errors.New("failed to init CNS state: NNC is being deleted") + } // If there are no NCs, we can't initialize our state and we should fail out. if len(nnc.Status.NetworkContainers) == 0 {