From fd0ff4adc347650a29967003c70e51adaa80b538 Mon Sep 17 00:00:00 2001 From: Tiger Kaovilai Date: Wed, 12 Aug 2026 09:50:06 -0400 Subject: [PATCH] fix: check errors.IsNotFound before failing DaemonSet delete in NodeAgent reconcile The DaemonSet deletion path in ReconcileNodeAgentDaemonset did not check errors.IsNotFound before treating a delete failure as a real error, unlike the adjacent Get() call, which already handles this correctly. Surfaced by e2e test flakiness where DeleteDaemonSetFailed events left the AfterEach cleanup for DPA configuration tests in a bad state. Part of #2372 Signed-off-by: Tiger Kaovilai --- controllers/nodeagent.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/controllers/nodeagent.go b/controllers/nodeagent.go index ed3a7296b43..3ebf91ae41f 100644 --- a/controllers/nodeagent.go +++ b/controllers/nodeagent.go @@ -150,6 +150,9 @@ func (r *DPAReconciler) ReconcileNodeAgentDaemonset(log logr.Logger) (bool, erro // If dpa.Spec.Configuration.NodeAgent enable exists and is false, attempt to delete. deleteOptionPropagationForeground := metav1.DeletePropagationForeground if err := r.Delete(deleteContext, ds, &client.DeleteOptions{PropagationPolicy: &deleteOptionPropagationForeground}); err != nil { + if errors.IsNotFound(err) { + return true, nil + } // TODO: Come back and fix event recording to be consistent r.EventRecorder.Event(ds, corev1.EventTypeNormal, "DeleteDaemonSetFailed", "Got DaemonSet to delete but could not delete err:"+err.Error()) return false, err