From 80af8e13c4fabf5bcb39f419e240bef9c391c2eb Mon Sep 17 00:00:00 2001 From: David Desmarais-Michaud Date: Mon, 10 Aug 2026 17:32:11 -0400 Subject: [PATCH] fix(PLT-6661): manage finalizers by using update instead of apply --- cmd/operator/main_test.go | 18 +++++++++--------- cmd/operator/reconciler_release.go | 8 ++++---- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/cmd/operator/main_test.go b/cmd/operator/main_test.go index 3c09196..fa51676 100644 --- a/cmd/operator/main_test.go +++ b/cmd/operator/main_test.go @@ -251,7 +251,7 @@ func TestHappyReconciliations(t *testing.T) { Repository: "org/repo", }, }, - metav1.ApplyOptions{FieldManager: joyOperator}, + metav1.ApplyOptions{FieldManager: "e2e-tests"}, ) require.NoError(t, err) @@ -287,7 +287,7 @@ func TestHappyReconciliations(t *testing.T) { }, }, }, - metav1.ApplyOptions{FieldManager: joyOperator}, + metav1.ApplyOptions{FieldManager: "e2e-tests"}, ) require.NoError(t, err) @@ -309,7 +309,7 @@ func TestHappyReconciliations(t *testing.T) { }, }, }, - metav1.ApplyOptions{FieldManager: joyOperator}, + metav1.ApplyOptions{FieldManager: "e2e-tests"}, ) require.NoError(t, err) @@ -353,7 +353,7 @@ func TestHappyReconciliations(t *testing.T) { }, }, }, - metav1.ApplyOptions{FieldManager: joyOperator}, + metav1.ApplyOptions{FieldManager: "e2e-tests"}, ) require.NoError(t, err) @@ -630,7 +630,7 @@ func TestEnvironmentSourcePattern(t *testing.T) { Revision: "main", }, }, - metav1.ApplyOptions{FieldManager: joyOperator}, + metav1.ApplyOptions{FieldManager: "e2e-tests"}, ) require.NoError(t, err) @@ -708,7 +708,7 @@ func TestReleasePruning(t *testing.T) { Repository: "org/repo", }, }, - metav1.ApplyOptions{FieldManager: joyOperator}, + metav1.ApplyOptions{FieldManager: "e2e-tests", Force: true}, ) require.NoError(t, err) @@ -744,7 +744,7 @@ func TestReleasePruning(t *testing.T) { }, }, }, - metav1.ApplyOptions{FieldManager: joyOperator}, + metav1.ApplyOptions{FieldManager: "e2e-tests", Force: true}, ) require.NoError(t, err) @@ -766,7 +766,7 @@ func TestReleasePruning(t *testing.T) { }, }, }, - metav1.ApplyOptions{FieldManager: joyOperator}, + metav1.ApplyOptions{FieldManager: "e2e-tests", Force: true}, ) require.NoError(t, err) @@ -813,7 +813,7 @@ func TestReleasePruning(t *testing.T) { }, }, }, - metav1.ApplyOptions{FieldManager: joyOperator}, + metav1.ApplyOptions{FieldManager: "e2e-tests", Force: true}, ) require.NoError(t, err) diff --git a/cmd/operator/reconciler_release.go b/cmd/operator/reconciler_release.go index d263e5f..f966a7f 100644 --- a/cmd/operator/reconciler_release.go +++ b/cmd/operator/reconciler_release.go @@ -86,13 +86,13 @@ func ReleaseReconciler(params ReleaseReconcilerParams) ctrl.Funcs { switch { case shouldPrune && !hasPruneReleaseFinalizer: release.Finalizers = append(release.Finalizers, finalizerPruneRelease) - if _, err := releaseIntf.Apply(ctx, release, metav1.ApplyOptions{FieldManager: joyOperator, Force: true}); err != nil { - return ctrl.Result{}, fmt.Errorf("failed to apply prune-release finalizer: %w", err) + if _, err := releaseIntf.Update(ctx, release, metav1.UpdateOptions{FieldManager: joyOperator}); err != nil { + return ctrl.Result{}, fmt.Errorf("failed to add prune-release finalizer: %w", err) } return ctrl.Result{}, nil case !shouldPrune && hasPruneReleaseFinalizer: release.Finalizers = slices.DeleteFunc(release.Finalizers, func(finalizer string) bool { return finalizer == finalizerPruneRelease }) - if _, err := releaseIntf.Apply(ctx, release, metav1.ApplyOptions{FieldManager: joyOperator, Force: true}); err != nil { + if _, err := releaseIntf.Update(ctx, release, metav1.UpdateOptions{FieldManager: joyOperator}); err != nil { return ctrl.Result{}, fmt.Errorf("failed to remove prune-release finalizer: %w", err) } return ctrl.Result{}, nil @@ -106,7 +106,7 @@ func ReleaseReconciler(params ReleaseReconcilerParams) ctrl.Funcs { } if hasPruneReleaseFinalizer { release.Finalizers = slices.DeleteFunc(release.Finalizers, func(finalizer string) bool { return finalizer == finalizerPruneRelease }) - if _, err := releaseIntf.Apply(ctx, release, metav1.ApplyOptions{FieldManager: joyOperator, Force: true}); err != nil { + if _, err := releaseIntf.Update(ctx, release, metav1.UpdateOptions{FieldManager: joyOperator}); err != nil { return ctrl.Result{}, fmt.Errorf("failed to remove prune-release finalizer post app deletion: %w", err) } }