From 2ac837317f777b9d31cfde293c74c86322b13a8a Mon Sep 17 00:00:00 2001 From: Tiger Kaovilai Date: Wed, 12 Aug 2026 09:49: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 7ce960efd8e..c9669ff4443 100644 --- a/internal/controller/nodeagent.go +++ b/internal/controller/nodeagent.go @@ -212,6 +212,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