diff --git a/src/operator/controllers/iam/pods/pods_controller.go b/src/operator/controllers/iam/pods/pods_controller.go index d65a40f..3ad5bb2 100644 --- a/src/operator/controllers/iam/pods/pods_controller.go +++ b/src/operator/controllers/iam/pods/pods_controller.go @@ -125,9 +125,9 @@ func (r *PodReconciler) handlePodCleanup(ctx context.Context, pod corev1.Pod) (c updatedPod := pod.DeepCopy() if controllerutil.RemoveFinalizer(updatedPod, r.agent.FinalizerName()) || controllerutil.RemoveFinalizer(updatedPod, metadata.DeprecatedIAMRoleFinalizer) { - err := r.Patch(ctx, updatedPod, client.MergeFrom(&pod)) + err := r.Patch(ctx, updatedPod, client.StrategicMergeFrom(&pod)) if err != nil { - if apierrors.IsConflict(err) || apierrors.IsNotFound(err) || apierrors.IsForbidden(err) { + if apierrors.IsConflict(err) || apierrors.IsNotFound(err) || apierrors.IsForbidden(err) || apierrors.IsInvalid(err) { // These are all errors that can happen because the pod is already being deleted, requeuing // should solve them all in a classy way return ctrl.Result{Requeue: true}, nil