From fa752e4c020e0bad57d9ed3090e7f22980d484f1 Mon Sep 17 00:00:00 2001 From: Tiger Kaovilai Date: Wed, 12 Aug 2026 00:21:03 -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 and the ConfigMap deletion path in the same file, which both handle 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 --- internal/controller/nodeagent.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/controller/nodeagent.go b/internal/controller/nodeagent.go index a8bc91f7402..b7f1d79614c 100644 --- a/internal/controller/nodeagent.go +++ b/internal/controller/nodeagent.go @@ -276,6 +276,9 @@ func (r *DataProtectionApplicationReconciler) ReconcileNodeAgentDaemonset(log lo // no errors means there is already an existing DaemonSet. // TODO: Check if NodeAgent is in use, a backup is running, so don't blindly delete NodeAgent. if err := r.Delete(deleteContext, ds, &client.DeleteOptions{PropagationPolicy: ptr.To(metav1.DeletePropagationForeground)}); 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