From 04e4d2f7632cb09936a9a520f883f0c55232d91b Mon Sep 17 00:00:00 2001 From: Milos Tomic Date: Fri, 31 Jan 2025 09:23:03 +0100 Subject: [PATCH] chore: unify finalizer --- api/cloud-control/v1beta1/types.go | 2 +- api/cloud-resources/v1beta1/finalizer.go | 2 +- api/finalizer.go | 5 ++ .../cloud-control/iprange_azure_test.go | 9 +-- .../cloud-control/network_azure_test.go | 3 +- .../cloud-control/network_reference_test.go | 3 +- .../cloud-control/nfsinstance_gcp_test.go | 3 +- .../cloud-control/nuke_controller_test.go | 15 ++-- .../controller/cloud-control/nuke_gcp_test.go | 11 +-- .../cloud-control/scope_aws_test.go | 5 +- .../cloud-control/scope_azure_test.go | 5 +- .../cloud-control/vpcpeering_aws_test.go | 11 +-- .../cloud-control/vpcpeering_azure_test.go | 7 +- .../cloud-resources/awsnfsvolume_test.go | 9 +-- .../cloud-resources/awsredisinstance_test.go | 7 +- .../azureredisinstance_test.go | 7 +- .../cloud-resources/cr/cloudresources_test.go | 3 +- .../cloud-resources/gcpnfsvolume_test.go | 8 +-- .../cloud-resources/gcpredisinstance_test.go | 6 +- .../cloud-resources/iprange_test.go | 6 +- pkg/common/actions/addFinalizer.go | 56 ++++++++------- pkg/common/actions/removeFinalizer.go | 68 ++++++++++--------- pkg/composed/predicate.go | 8 ++- pkg/kcp/iprange/reconciler.go | 4 +- pkg/kcp/network/handleNetworkReference.go | 2 +- pkg/kcp/network/reconciler.go | 2 +- pkg/kcp/nuke/scopeDelete.go | 3 +- .../provider/aws/nfsinstance/addFinalizer.go | 6 +- pkg/kcp/provider/aws/nfsinstance/new.go | 25 +++---- .../aws/nfsinstance/removeFinalizer.go | 4 +- pkg/kcp/provider/aws/redisinstance/new.go | 5 +- pkg/kcp/provider/aws/vpcpeering/new.go | 4 +- pkg/kcp/provider/azure/network/new.go | 4 +- pkg/kcp/provider/azure/redisinstance/new.go | 5 +- pkg/kcp/provider/azure/vpcpeering/new.go | 4 +- pkg/kcp/provider/ccee/nfsinstance/new.go | 4 +- pkg/kcp/provider/gcp/iprange/v2/new.go | 9 +-- pkg/kcp/provider/gcp/iprange/v2/state_test.go | 3 +- pkg/kcp/provider/gcp/nfsinstance/new.go | 9 ++- pkg/kcp/provider/gcp/redisinstance/new.go | 5 +- pkg/kcp/provider/gcp/vpcpeering/new.go | 5 +- pkg/kcp/scope/addKymaFinalizer.go | 4 +- pkg/kcp/scope/ensureScopeCommonFields.go | 3 +- pkg/kcp/scope/removeKymaFinalizer.go | 4 +- pkg/kcp/scope/scopeDelete.go | 4 +- pkg/skr/awsnfsvolume/addFinalizer.go | 4 +- .../createPersistentVolumeClaim.go | 4 +- pkg/skr/awsnfsvolume/createVolume.go | 4 +- pkg/skr/awsnfsvolume/removeFinalizer.go | 6 +- .../removePersistenceVolumeClaimFinalizer.go | 6 +- .../removePersistenceVolumeFinalizer.go | 6 +- pkg/skr/awsnfsvolumebackup/addFinalizer.go | 4 +- .../awsnfsvolumebackup/addFinalizer_test.go | 10 +-- pkg/skr/awsnfsvolumebackup/removeFinalizer.go | 4 +- pkg/skr/awsnfsvolumebackup/state_test.go | 3 +- pkg/skr/awsnfsvolumerestore/addFinalizer.go | 4 +- .../awsnfsvolumerestore/addFinalizer_test.go | 10 +-- pkg/skr/awsnfsvolumerestore/reconciler.go | 4 +- .../awsnfsvolumerestore/removeFinalizer.go | 4 +- pkg/skr/awsnfsvolumerestore/state_test.go | 3 +- pkg/skr/awsredisinstance/createAuthSecret.go | 4 +- pkg/skr/awsredisinstance/reconciler.go | 5 +- .../removeAuthSecretFinalizer.go | 6 +- pkg/skr/awsvpcpeering/addFinalizer.go | 4 +- pkg/skr/awsvpcpeering/removeFinalizer.go | 4 +- .../azureredisinstance/createAuthSecret.go | 4 +- pkg/skr/azureredisinstance/reconciler.go | 5 +- .../removeAuthSecretFinalizer.go | 6 +- pkg/skr/azurevpcpeering/addFinalizer.go | 4 +- pkg/skr/azurevpcpeering/removeFinalizer.go | 4 +- pkg/skr/backupschedule/addFinalizer.go | 4 +- pkg/skr/backupschedule/addFinalizer_test.go | 6 +- pkg/skr/backupschedule/removeFinalizer.go | 4 +- pkg/skr/backupschedule/state_test.go | 3 +- pkg/skr/cloudresources/addFinalizer.go | 4 +- pkg/skr/cloudresources/removeFinalizer.go | 4 +- pkg/skr/gcpnfsvolume/addFinalizer.go | 4 +- pkg/skr/gcpnfsvolume/addFinalizer_test.go | 6 +- .../gcpnfsvolume/createPersistenceVolume.go | 3 +- .../createPersistentVolumeClaim.go | 4 +- .../deletePersistentVolumeClaim_test.go | 2 +- pkg/skr/gcpnfsvolume/removeFinalizer.go | 4 +- pkg/skr/gcpnfsvolume/removeFinalizer_test.go | 8 +-- .../removePersistenceVolumeClaimFinalizer.go | 6 +- ...ovePersistenceVolumeClaimFinalizer_test.go | 10 +-- .../removePersistenceVolumeFinalizer.go | 6 +- .../removePersitenceVolumeFinalizer_test.go | 4 +- pkg/skr/gcpnfsvolume/state_test.go | 3 +- pkg/skr/gcpnfsvolumebackup/addFinalizer.go | 4 +- .../gcpnfsvolumebackup/addFinalizer_test.go | 6 +- pkg/skr/gcpnfsvolumebackup/removeFinalizer.go | 4 +- pkg/skr/gcpnfsvolumebackup/state_test.go | 3 +- pkg/skr/gcpnfsvolumerestore/addFinalizer.go | 4 +- .../gcpnfsvolumerestore/addFinalizer_test.go | 6 +- .../gcpnfsvolumerestore/removeFinalizer.go | 3 +- pkg/skr/gcpnfsvolumerestore/state_test.go | 3 +- pkg/skr/gcpredisinstance/createAuthSecret.go | 4 +- pkg/skr/gcpredisinstance/reconciler.go | 5 +- .../removeAuthSecretFinalizer.go | 6 +- pkg/skr/gcpvpcpeering/reconciler.go | 5 +- pkg/skr/iprange/addFinalizer.go | 4 +- pkg/skr/iprange/removeFinalizer.go | 4 +- 102 files changed, 353 insertions(+), 292 deletions(-) create mode 100644 api/finalizer.go diff --git a/api/cloud-control/v1beta1/types.go b/api/cloud-control/v1beta1/types.go index e8ce68952..f45e0874e 100644 --- a/api/cloud-control/v1beta1/types.go +++ b/api/cloud-control/v1beta1/types.go @@ -11,5 +11,5 @@ const ( ) const ( - FinalizerName = "cloud-control.kyma-project.io/deletion-hook" + DO_NOT_USE_FinalizerName = "cloud-control.kyma-project.io/deletion-hook" ) diff --git a/api/cloud-resources/v1beta1/finalizer.go b/api/cloud-resources/v1beta1/finalizer.go index c3fa9c2ae..dd9d17808 100644 --- a/api/cloud-resources/v1beta1/finalizer.go +++ b/api/cloud-resources/v1beta1/finalizer.go @@ -1,5 +1,5 @@ package v1beta1 const ( - Finalizer = "cloud-resources.kyma-project.io/deletion-hook" + DO_NOT_USE_Finalizer = "cloud-resources.kyma-project.io/deletion-hook" ) diff --git a/api/finalizer.go b/api/finalizer.go new file mode 100644 index 000000000..8a5ed3738 --- /dev/null +++ b/api/finalizer.go @@ -0,0 +1,5 @@ +package api + +const ( + CommonFinalizerDeletionHook = "cloud-manager.kyma-project.io/deletion-hook" +) diff --git a/internal/controller/cloud-control/iprange_azure_test.go b/internal/controller/cloud-control/iprange_azure_test.go index 769831aa1..794e5176f 100644 --- a/internal/controller/cloud-control/iprange_azure_test.go +++ b/internal/controller/cloud-control/iprange_azure_test.go @@ -2,6 +2,7 @@ package cloudcontrol import ( "fmt" + "github.com/kyma-project/cloud-manager/api" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v5" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/privatedns/armprivatedns" @@ -112,7 +113,7 @@ var _ = Describe("Feature: KCP IpRange for Azure", func() { Eventually(LoadAndCheck). WithArguments(infra.Ctx(), infra.KCP().Client(), kcpNetworkCm, NewObjActions()). Should(Succeed()) - added, err := composed.PatchObjAddFinalizer(infra.Ctx(), cloudcontrolv1beta1.FinalizerName, kcpNetworkCm, infra.KCP().Client()) + added, err := composed.PatchObjAddFinalizer(infra.Ctx(), api.CommonFinalizerDeletionHook, kcpNetworkCm, infra.KCP().Client()) Expect(added).To(BeTrue()) Expect(err).NotTo(HaveOccurred()) }) @@ -156,7 +157,7 @@ var _ = Describe("Feature: KCP IpRange for Azure", func() { Eventually(LoadAndCheck). WithArguments(infra.Ctx(), infra.KCP().Client(), kcpVpcPeering, NewObjActions()). Should(Succeed()) - added, err := composed.PatchObjAddFinalizer(infra.Ctx(), cloudcontrolv1beta1.FinalizerName, kcpVpcPeering, infra.KCP().Client()) + added, err := composed.PatchObjAddFinalizer(infra.Ctx(), api.CommonFinalizerDeletionHook, kcpVpcPeering, infra.KCP().Client()) Expect(added).To(BeTrue()) Expect(err).NotTo(HaveOccurred()) }) @@ -288,7 +289,7 @@ var _ = Describe("Feature: KCP IpRange for Azure", func() { }) By("When KCP VpcPeering finalizer is removed", func() { - removed, err := composed.PatchObjRemoveFinalizer(infra.Ctx(), cloudcontrolv1beta1.FinalizerName, kcpVpcPeering, infra.KCP().Client()) + removed, err := composed.PatchObjRemoveFinalizer(infra.Ctx(), api.CommonFinalizerDeletionHook, kcpVpcPeering, infra.KCP().Client()) Expect(removed).To(BeTrue()) Expect(err).NotTo(HaveOccurred()) }) @@ -307,7 +308,7 @@ var _ = Describe("Feature: KCP IpRange for Azure", func() { }) By("When KCP CM Network finalizer is removed", func() { - removed, err := composed.PatchObjRemoveFinalizer(infra.Ctx(), cloudcontrolv1beta1.FinalizerName, kcpNetworkCm, infra.KCP().Client()) + removed, err := composed.PatchObjRemoveFinalizer(infra.Ctx(), api.CommonFinalizerDeletionHook, kcpNetworkCm, infra.KCP().Client()) Expect(removed).To(BeTrue()) Expect(err).NotTo(HaveOccurred()) }) diff --git a/internal/controller/cloud-control/network_azure_test.go b/internal/controller/cloud-control/network_azure_test.go index 48984476d..c1ae8dc75 100644 --- a/internal/controller/cloud-control/network_azure_test.go +++ b/internal/controller/cloud-control/network_azure_test.go @@ -3,6 +3,7 @@ package cloudcontrol import ( "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v5" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources" + "github.com/kyma-project/cloud-manager/api" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" "github.com/kyma-project/cloud-manager/pkg/common" azurecommon "github.com/kyma-project/cloud-manager/pkg/kcp/provider/azure/common" @@ -55,7 +56,7 @@ var _ = Describe("Feature: KCP Azure managed Network", func() { }) By("And Then KCP Network has finalizer", func() { - Expect(controllerutil.ContainsFinalizer(net, cloudcontrolv1beta1.FinalizerName)).To(BeTrue()) + Expect(controllerutil.ContainsFinalizer(net, api.CommonFinalizerDeletionHook)).To(BeTrue()) }) By("And Then Network status reference is set", func() { diff --git a/internal/controller/cloud-control/network_reference_test.go b/internal/controller/cloud-control/network_reference_test.go index d0051d876..29cfdb5e4 100644 --- a/internal/controller/cloud-control/network_reference_test.go +++ b/internal/controller/cloud-control/network_reference_test.go @@ -1,6 +1,7 @@ package cloudcontrol import ( + "github.com/kyma-project/cloud-manager/api" "time" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" @@ -60,7 +61,7 @@ var _ = Describe("Feature: KCP Network reference", func() { }) By("And Then Network has finalizer", func() { - Expect(controllerutil.ContainsFinalizer(net, cloudcontrolv1beta1.FinalizerName)).To(BeTrue()) + Expect(controllerutil.ContainsFinalizer(net, api.CommonFinalizerDeletionHook)).To(BeTrue()) }) By("When Network is deleted", func() { diff --git a/internal/controller/cloud-control/nfsinstance_gcp_test.go b/internal/controller/cloud-control/nfsinstance_gcp_test.go index 4284dd329..383970fcf 100644 --- a/internal/controller/cloud-control/nfsinstance_gcp_test.go +++ b/internal/controller/cloud-control/nfsinstance_gcp_test.go @@ -2,6 +2,7 @@ package cloudcontrol import ( "context" + "github.com/kyma-project/cloud-manager/api" "time" "github.com/kyma-project/cloud-manager/pkg/composed" @@ -449,7 +450,7 @@ var _ = Describe("Feature: KCP NFSVolume for GCP", func() { WithArguments(infra.Ctx(), infra.KCP().Client(), gcpNfsInstance). Should(Succeed()) Eventually(func(ctx context.Context) error { - _, err := composed.PatchObjRemoveFinalizer(ctx, cloudcontrolv1beta1.FinalizerName, gcpNfsInstance, infra.KCP().Client()) + _, err := composed.PatchObjRemoveFinalizer(ctx, api.CommonFinalizerDeletionHook, gcpNfsInstance, infra.KCP().Client()) return err }). WithContext(infra.Ctx()). diff --git a/internal/controller/cloud-control/nuke_controller_test.go b/internal/controller/cloud-control/nuke_controller_test.go index 4698b4c9b..9aac8f4bb 100644 --- a/internal/controller/cloud-control/nuke_controller_test.go +++ b/internal/controller/cloud-control/nuke_controller_test.go @@ -2,6 +2,7 @@ package cloudcontrol import ( "fmt" + "github.com/kyma-project/cloud-manager/api" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" "github.com/kyma-project/cloud-manager/pkg/common" "github.com/kyma-project/cloud-manager/pkg/common/actions/focal" @@ -43,7 +44,7 @@ var _ = Describe("Feature: Cleanup orphan resources", func() { kcpnetwork.Ignore.AddName(cmNetwork.Name) Expect(CreateObj(infra.Ctx(), infra.KCP().Client(), cmNetwork, - AddFinalizer(cloudcontrolv1beta1.FinalizerName), + AddFinalizer(api.CommonFinalizerDeletionHook), )).To(Succeed(), "failed creating cm network") }) @@ -56,7 +57,7 @@ var _ = Describe("Feature: Cleanup orphan resources", func() { Eventually(CreateKcpIpRange). WithArguments(infra.Ctx(), infra.KCP().Client(), ipRange, WithName(ipRangeName), - AddFinalizer(cloudcontrolv1beta1.FinalizerName), + AddFinalizer(api.CommonFinalizerDeletionHook), WithKcpIpRangeNetwork(cmNetwork.Name), WithScope(kymaName), WithRemoteRef("foo"), @@ -76,7 +77,7 @@ var _ = Describe("Feature: Cleanup orphan resources", func() { kcpvpcpeering.Ignore.AddName(vpcPeering.Name) Expect(CreateObj(infra.Ctx(), infra.KCP().Client(), vpcPeering, - AddFinalizer(cloudcontrolv1beta1.FinalizerName), + AddFinalizer(api.CommonFinalizerDeletionHook), )).To(Succeed(), "failed creating VpcPeering") }) @@ -88,7 +89,7 @@ var _ = Describe("Feature: Cleanup orphan resources", func() { Expect(CreateRedisInstance(infra.Ctx(), infra.KCP().Client(), redisInstance, WithName(redisInstanceName), - AddFinalizer(cloudcontrolv1beta1.FinalizerName), + AddFinalizer(api.CommonFinalizerDeletionHook), WithRemoteRef("remote-redis"), WithIpRange(ipRange.Name), WithScope(kymaName), @@ -106,12 +107,12 @@ var _ = Describe("Feature: Cleanup orphan resources", func() { Expect(CreateNfsInstance(infra.Ctx(), infra.KCP().Client(), nfsInstance, WithName(nfsInstanceName), - AddFinalizer(cloudcontrolv1beta1.FinalizerName), + AddFinalizer(api.CommonFinalizerDeletionHook), WithRemoteRef("foo"), WithScope(kymaName), WithIpRange(ipRange.Name), WithNfsInstanceAws(), // never mind it doesn't match Azure, won't be reconciled anyway - AddFinalizer(cloudcontrolv1beta1.FinalizerName), + AddFinalizer(api.CommonFinalizerDeletionHook), )).To(Succeed(), "failed creating NfsInstance") }) @@ -158,7 +159,7 @@ var _ = Describe("Feature: Cleanup orphan resources", func() { for kind, obj := range resources { By(fmt.Sprintf("When resource %s finalizer is removed", kind), func() { - removed, err := composed.PatchObjRemoveFinalizer(infra.Ctx(), cloudcontrolv1beta1.FinalizerName, obj, infra.KCP().Client()) + removed, err := composed.PatchObjRemoveFinalizer(infra.Ctx(), api.CommonFinalizerDeletionHook, obj, infra.KCP().Client()) Expect(err).To(Succeed()) Expect(removed).To(BeTrue()) }) diff --git a/internal/controller/cloud-control/nuke_gcp_test.go b/internal/controller/cloud-control/nuke_gcp_test.go index 3e2cd830d..74c0e2e75 100644 --- a/internal/controller/cloud-control/nuke_gcp_test.go +++ b/internal/controller/cloud-control/nuke_gcp_test.go @@ -3,6 +3,7 @@ package cloudcontrol import ( "context" "fmt" + "github.com/kyma-project/cloud-manager/api" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" "github.com/kyma-project/cloud-manager/pkg/common" "github.com/kyma-project/cloud-manager/pkg/common/actions/focal" @@ -51,7 +52,7 @@ var _ = Describe("Feature: Cleanup orphan resources", func() { kcpnetwork.Ignore.AddName(cmNetwork.Name) Expect(CreateObj(infra.Ctx(), infra.KCP().Client(), cmNetwork, - AddFinalizer(cloudcontrolv1beta1.FinalizerName), + AddFinalizer(api.CommonFinalizerDeletionHook), )).To(Succeed(), "failed creating cm network") }) @@ -64,7 +65,7 @@ var _ = Describe("Feature: Cleanup orphan resources", func() { Eventually(CreateKcpIpRange). WithArguments(infra.Ctx(), infra.KCP().Client(), ipRange, WithName(ipRangeName), - AddFinalizer(cloudcontrolv1beta1.FinalizerName), + AddFinalizer(api.CommonFinalizerDeletionHook), WithKcpIpRangeNetwork(cmNetwork.Name), WithScope(kymaName), WithRemoteRef("foo"), @@ -81,12 +82,12 @@ var _ = Describe("Feature: Cleanup orphan resources", func() { Expect(CreateNfsInstance(infra.Ctx(), infra.KCP().Client(), nfsInstance, WithName(nfsInstanceName), - AddFinalizer(cloudcontrolv1beta1.FinalizerName), + AddFinalizer(api.CommonFinalizerDeletionHook), WithRemoteRef("foo"), WithScope(kymaName), WithIpRange(ipRange.Name), WithNfsInstanceGcp(scope.Spec.Region), - AddFinalizer(cloudcontrolv1beta1.FinalizerName), + AddFinalizer(api.CommonFinalizerDeletionHook), )).To(Succeed(), "failed creating NfsInstance") }) @@ -169,7 +170,7 @@ var _ = Describe("Feature: Cleanup orphan resources", func() { for kind, obj := range resources { By(fmt.Sprintf("When resource %s finalizer is removed", kind), func() { - removed, err := composed.PatchObjRemoveFinalizer(infra.Ctx(), cloudcontrolv1beta1.FinalizerName, obj, infra.KCP().Client()) + removed, err := composed.PatchObjRemoveFinalizer(infra.Ctx(), api.CommonFinalizerDeletionHook, obj, infra.KCP().Client()) Expect(err).To(Succeed()) Expect(removed).To(BeTrue()) }) diff --git a/internal/controller/cloud-control/scope_aws_test.go b/internal/controller/cloud-control/scope_aws_test.go index bb5927057..e71bc9262 100644 --- a/internal/controller/cloud-control/scope_aws_test.go +++ b/internal/controller/cloud-control/scope_aws_test.go @@ -3,6 +3,7 @@ package cloudcontrol import ( "fmt" gardenerTypes "github.com/gardener/gardener/pkg/apis/core/v1beta1" + "github.com/kyma-project/cloud-manager/api" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/common" @@ -122,7 +123,7 @@ var _ = Describe("Feature: KCP Scope AWS", func() { Eventually(LoadAndCheck). WithArguments(infra.Ctx(), infra.KCP().Client(), kymaCR, NewObjActions()). Should(Succeed()) - Expect(controllerutil.ContainsFinalizer(kymaCR, cloudcontrolv1beta1.FinalizerName)). + Expect(controllerutil.ContainsFinalizer(kymaCR, api.CommonFinalizerDeletionHook)). To(BeTrue(), "expected Kyma CR to have finalizer, but it does not") }) @@ -212,7 +213,7 @@ var _ = Describe("Feature: KCP Scope AWS", func() { WithArguments(infra.Ctx(), infra.KCP().Client(), kymaCR, NewObjActions()). Should(Succeed(), "failed reloading Kyma CR") - Expect(controllerutil.ContainsFinalizer(kymaCR, cloudcontrolv1beta1.FinalizerName)). + Expect(controllerutil.ContainsFinalizer(kymaCR, api.CommonFinalizerDeletionHook)). To(BeFalse(), "expected Kyma CR not to have finalizer, but it still has it") }) diff --git a/internal/controller/cloud-control/scope_azure_test.go b/internal/controller/cloud-control/scope_azure_test.go index a9ec75f1f..9fb75d60b 100644 --- a/internal/controller/cloud-control/scope_azure_test.go +++ b/internal/controller/cloud-control/scope_azure_test.go @@ -3,6 +3,7 @@ package cloudcontrol import ( "fmt" gardenerTypes "github.com/gardener/gardener/pkg/apis/core/v1beta1" + "github.com/kyma-project/cloud-manager/api" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/common" @@ -122,7 +123,7 @@ var _ = Describe("Feature: KCP Scope Azure", func() { Eventually(LoadAndCheck). WithArguments(infra.Ctx(), infra.KCP().Client(), kymaCR, NewObjActions()). Should(Succeed()) - Expect(controllerutil.ContainsFinalizer(kymaCR, cloudcontrolv1beta1.FinalizerName)). + Expect(controllerutil.ContainsFinalizer(kymaCR, api.CommonFinalizerDeletionHook)). To(BeTrue(), "expected Kyma CR to have finalizer, but it does not") }) @@ -185,7 +186,7 @@ var _ = Describe("Feature: KCP Scope Azure", func() { WithArguments(infra.Ctx(), infra.KCP().Client(), kymaCR, NewObjActions()). Should(Succeed(), "failed reloading Kyma CR") - Expect(controllerutil.ContainsFinalizer(kymaCR, cloudcontrolv1beta1.FinalizerName)). + Expect(controllerutil.ContainsFinalizer(kymaCR, api.CommonFinalizerDeletionHook)). To(BeFalse(), "expected Kyma CR not to have finalizer, but it still has it") }) diff --git a/internal/controller/cloud-control/vpcpeering_aws_test.go b/internal/controller/cloud-control/vpcpeering_aws_test.go index 0344a2973..28304c69b 100644 --- a/internal/controller/cloud-control/vpcpeering_aws_test.go +++ b/internal/controller/cloud-control/vpcpeering_aws_test.go @@ -3,6 +3,7 @@ package cloudcontrol import ( "errors" "fmt" + "github.com/kyma-project/cloud-manager/api" ec2Types "github.com/aws/aws-sdk-go-v2/service/ec2/types" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" @@ -247,7 +248,7 @@ var _ = Describe("Feature: KCP VpcPeering", func() { Eventually(LoadAndCheck). WithArguments(infra.Ctx(), infra.KCP().Client(), kcpPeering, NewObjActions(), - HaveFinalizer(cloudcontrolv1beta1.FinalizerName), + HaveFinalizer(api.CommonFinalizerDeletionHook), HavingKcpVpcPeeringStatusIdNotEmpty(), ).Should(Succeed()) }) @@ -519,7 +520,7 @@ var _ = Describe("Feature: KCP VpcPeering", func() { Eventually(LoadAndCheck). WithArguments(infra.Ctx(), infra.KCP().Client(), kcpPeering, NewObjActions(), - HaveFinalizer(cloudcontrolv1beta1.FinalizerName), + HaveFinalizer(api.CommonFinalizerDeletionHook), HavingKcpVpcPeeringStatusIdNotEmpty(), ).Should(Succeed()) }) @@ -755,7 +756,7 @@ var _ = Describe("Feature: KCP VpcPeering", func() { Eventually(LoadAndCheck). WithArguments(infra.Ctx(), infra.KCP().Client(), localKcpNet, NewObjActions(), - HaveFinalizer(cloudcontrolv1beta1.FinalizerName), + HaveFinalizer(api.CommonFinalizerDeletionHook), HavingConditionTrue(cloudcontrolv1beta1.ConditionTypeReady), ).Should(Succeed()) }) @@ -776,7 +777,7 @@ var _ = Describe("Feature: KCP VpcPeering", func() { Eventually(LoadAndCheck). WithArguments(infra.Ctx(), infra.KCP().Client(), remoteKcpNet, NewObjActions(), - HaveFinalizer(cloudcontrolv1beta1.FinalizerName), + HaveFinalizer(api.CommonFinalizerDeletionHook), HavingConditionTrue(cloudcontrolv1beta1.ConditionTypeReady), ).Should(Succeed()) }) @@ -801,7 +802,7 @@ var _ = Describe("Feature: KCP VpcPeering", func() { Eventually(LoadAndCheck). WithArguments(infra.Ctx(), infra.KCP().Client(), kcpPeering, NewObjActions(), - HaveFinalizer(cloudcontrolv1beta1.FinalizerName), + HaveFinalizer(api.CommonFinalizerDeletionHook), HavingKcpVpcPeeringStatusIdNotEmpty(), ).Should(Succeed()) }) diff --git a/internal/controller/cloud-control/vpcpeering_azure_test.go b/internal/controller/cloud-control/vpcpeering_azure_test.go index 4e8e84011..9c161b44d 100644 --- a/internal/controller/cloud-control/vpcpeering_azure_test.go +++ b/internal/controller/cloud-control/vpcpeering_azure_test.go @@ -2,6 +2,7 @@ package cloudcontrol import ( "errors" + "github.com/kyma-project/cloud-manager/api" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v5" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" @@ -217,14 +218,14 @@ var _ = Describe("Feature: KCP VpcPeering", func() { Eventually(LoadAndCheck). WithArguments(infra.Ctx(), infra.KCP().Client(), kcpPeering, NewObjActions(), - HaveFinalizer(cloudcontrolv1beta1.FinalizerName), + HaveFinalizer(api.CommonFinalizerDeletionHook), HavingConditionTrue(cloudcontrolv1beta1.ConditionTypeReady), ). Should(Succeed()) }) By("And Then KCP VpcPeering has finalizer", func() { - Expect(controllerutil.ContainsFinalizer(kcpPeering, cloudcontrolv1beta1.FinalizerName)). + Expect(controllerutil.ContainsFinalizer(kcpPeering, api.CommonFinalizerDeletionHook)). To(BeTrue()) }) @@ -413,7 +414,7 @@ var _ = Describe("Feature: KCP VpcPeering", func() { Eventually(LoadAndCheck). WithArguments(infra.Ctx(), infra.KCP().Client(), kcpPeering, NewObjActions(), - HaveFinalizer(cloudcontrolv1beta1.FinalizerName), + HaveFinalizer(api.CommonFinalizerDeletionHook), HavingConditionTrue(cloudcontrolv1beta1.ConditionTypeReady), ). Should(Succeed()) diff --git a/internal/controller/cloud-resources/awsnfsvolume_test.go b/internal/controller/cloud-resources/awsnfsvolume_test.go index bbf4ed40f..191d1c93c 100644 --- a/internal/controller/cloud-resources/awsnfsvolume_test.go +++ b/internal/controller/cloud-resources/awsnfsvolume_test.go @@ -2,6 +2,7 @@ package cloudresources import ( "fmt" + "github.com/kyma-project/cloud-manager/api" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" @@ -189,7 +190,7 @@ var _ = Describe("Feature: SKR AwsNfsVolume", func() { } By("And it has defined cloud-manager finalizer") - Expect(pv.Finalizers).To(ContainElement(cloudresourcesv1beta1.Finalizer)) + Expect(pv.Finalizers).To(ContainElement(api.CommonFinalizerDeletionHook)) }) pvc := &corev1.PersistentVolumeClaim{} @@ -227,7 +228,7 @@ var _ = Describe("Feature: SKR AwsNfsVolume", func() { } By("And it has defined cloud-manager finalizer") - Expect(pv.Finalizers).To(ContainElement(cloudresourcesv1beta1.Finalizer)) + Expect(pv.Finalizers).To(ContainElement(api.CommonFinalizerDeletionHook)) }) // CleanUp @@ -309,7 +310,7 @@ var _ = Describe("Feature: SKR AwsNfsVolume", func() { Should(Succeed(), "expected KCP AwsNfsInstance to be created, but it was not") Eventually(Update). - WithArguments(infra.Ctx(), infra.KCP().Client(), kcpNfsInstance, AddFinalizer(cloudcontrolv1beta1.FinalizerName)). + WithArguments(infra.Ctx(), infra.KCP().Client(), kcpNfsInstance, AddFinalizer(api.CommonFinalizerDeletionHook)). Should(Succeed(), "failed adding finalizer on KCP NfsInstance") }) @@ -408,7 +409,7 @@ var _ = Describe("Feature: SKR AwsNfsVolume", func() { By("When KCP NfsInstance finalizer is removed and it is deleted", func() { Eventually(Update). - WithArguments(infra.Ctx(), infra.KCP().Client(), kcpNfsInstance, RemoveFinalizer(cloudcontrolv1beta1.FinalizerName)). + WithArguments(infra.Ctx(), infra.KCP().Client(), kcpNfsInstance, RemoveFinalizer(api.CommonFinalizerDeletionHook)). Should(Succeed(), "failed removing finalizer on KCP NfsInstance") }) diff --git a/internal/controller/cloud-resources/awsredisinstance_test.go b/internal/controller/cloud-resources/awsredisinstance_test.go index 46429d6ee..05e2017f9 100644 --- a/internal/controller/cloud-resources/awsredisinstance_test.go +++ b/internal/controller/cloud-resources/awsredisinstance_test.go @@ -2,6 +2,7 @@ package cloudresources import ( "fmt" + "github.com/kyma-project/cloud-manager/api" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" @@ -218,7 +219,7 @@ var _ = Describe("Feature: SKR AwsRedisInstance", func() { Expect(authSecret.Data).To(HaveKeyWithValue("parsed", []byte(kcpRedisInstancePrimaryEndpoint)), "expected auth secret data to have parsed=host:port") By("And it has defined cloud-manager finalizer") - Expect(authSecret.Finalizers).To(ContainElement(cloudresourcesv1beta1.Finalizer)) + Expect(authSecret.Finalizers).To(ContainElement(api.CommonFinalizerDeletionHook)) }) // CleanUp @@ -299,7 +300,7 @@ var _ = Describe("Feature: SKR AwsRedisInstance", func() { Should(Succeed(), "expected KCP RedisInstance to be created, but it was not") Eventually(Update). - WithArguments(infra.Ctx(), infra.KCP().Client(), kcpRedisInstance, AddFinalizer(cloudcontrolv1beta1.FinalizerName)). + WithArguments(infra.Ctx(), infra.KCP().Client(), kcpRedisInstance, AddFinalizer(api.CommonFinalizerDeletionHook)). Should(Succeed(), "failed adding finalizer on KCP RedisInstance") }) @@ -377,7 +378,7 @@ var _ = Describe("Feature: SKR AwsRedisInstance", func() { By("When KCP RedisInstance finalizer is removed and it is deleted", func() { Eventually(Update). - WithArguments(infra.Ctx(), infra.KCP().Client(), kcpRedisInstance, RemoveFinalizer(cloudcontrolv1beta1.FinalizerName)). + WithArguments(infra.Ctx(), infra.KCP().Client(), kcpRedisInstance, RemoveFinalizer(api.CommonFinalizerDeletionHook)). Should(Succeed(), "failed removing finalizer on KCP RedisInstance") }) diff --git a/internal/controller/cloud-resources/azureredisinstance_test.go b/internal/controller/cloud-resources/azureredisinstance_test.go index f34f43595..1adbd8260 100644 --- a/internal/controller/cloud-resources/azureredisinstance_test.go +++ b/internal/controller/cloud-resources/azureredisinstance_test.go @@ -2,6 +2,7 @@ package cloudresources import ( "fmt" + "github.com/kyma-project/cloud-manager/api" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" @@ -199,7 +200,7 @@ var _ = Describe("Feature: SKR AzureRedisInstance", func() { Expect(authSecret.Data).To(HaveKeyWithValue("parsed", []byte(kcpRedisInstancePrimaryEndpoint)), "expected auth secret data to have parsed=host:port") By("And it has defined cloud-manager finalizer") - Expect(authSecret.Finalizers).To(ContainElement(cloudresourcesv1beta1.Finalizer)) + Expect(authSecret.Finalizers).To(ContainElement(api.CommonFinalizerDeletionHook)) }) // CleanUp @@ -445,7 +446,7 @@ var _ = Describe("Feature: SKR AzureRedisInstance", func() { Should(Succeed(), "expected KCP RedisInstance to be created, but it was not") Eventually(Update). - WithArguments(infra.Ctx(), infra.KCP().Client(), kcpRedisInstance, AddFinalizer(cloudcontrolv1beta1.FinalizerName)). + WithArguments(infra.Ctx(), infra.KCP().Client(), kcpRedisInstance, AddFinalizer(api.CommonFinalizerDeletionHook)). Should(Succeed(), "failed adding finalizer on KCP RedisInstance") }) @@ -523,7 +524,7 @@ var _ = Describe("Feature: SKR AzureRedisInstance", func() { By("When KCP RedisInstance finalizer is removed and it is deleted", func() { Eventually(Update). - WithArguments(infra.Ctx(), infra.KCP().Client(), kcpRedisInstance, RemoveFinalizer(cloudcontrolv1beta1.FinalizerName)). + WithArguments(infra.Ctx(), infra.KCP().Client(), kcpRedisInstance, RemoveFinalizer(api.CommonFinalizerDeletionHook)). Should(Succeed(), "failed removing finalizer on KCP RedisInstance") }) diff --git a/internal/controller/cloud-resources/cr/cloudresources_test.go b/internal/controller/cloud-resources/cr/cloudresources_test.go index 25a640642..34f47a2d5 100644 --- a/internal/controller/cloud-resources/cr/cloudresources_test.go +++ b/internal/controller/cloud-resources/cr/cloudresources_test.go @@ -2,6 +2,7 @@ package cr import ( "fmt" + "github.com/kyma-project/cloud-manager/api" cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" . "github.com/kyma-project/cloud-manager/pkg/testinfra/dsl" "github.com/kyma-project/cloud-manager/pkg/util" @@ -54,7 +55,7 @@ var _ = Describe("Feature: CloudResources module CR", func() { }) By("And Then CloudResources has finalizer", func() { - Expect(controllerutil.ContainsFinalizer(cr, cloudresourcesv1beta1.Finalizer)). + Expect(controllerutil.ContainsFinalizer(cr, api.CommonFinalizerDeletionHook)). To(BeTrue(), "expected CloudResources to have finalizer, but it does not") }) diff --git a/internal/controller/cloud-resources/gcpnfsvolume_test.go b/internal/controller/cloud-resources/gcpnfsvolume_test.go index edb106e16..35da136b1 100644 --- a/internal/controller/cloud-resources/gcpnfsvolume_test.go +++ b/internal/controller/cloud-resources/gcpnfsvolume_test.go @@ -248,7 +248,7 @@ var _ = Describe("Feature: SKR GcpNfsVolume", func() { Expect(pvSpec.Annotations).To(Equal(pv.Annotations)) By("And it has defined cloud-manager finalizer") - Expect(pv.Finalizers).To(ContainElement(cloudresourcesv1beta1.Finalizer)) + Expect(pv.Finalizers).To(ContainElement(api.CommonFinalizerDeletionHook)) }) By("Then PersistantVolumeClaim is created in SKR", func() { @@ -286,7 +286,7 @@ var _ = Describe("Feature: SKR GcpNfsVolume", func() { } By("And it has defined cloud-manager finalizer") - Expect(pv.Finalizers).To(ContainElement(cloudresourcesv1beta1.Finalizer)) + Expect(pv.Finalizers).To(ContainElement(api.CommonFinalizerDeletionHook)) }) }) }) @@ -844,7 +844,7 @@ var _ = Describe("Feature: SKR GcpNfsVolume", func() { Expect(pvSpec.Annotations).To(Equal(pv.Annotations)) By("And it has defined cloud-manager finalizer") - Expect(pv.Finalizers).To(ContainElement(cloudresourcesv1beta1.Finalizer)) + Expect(pv.Finalizers).To(ContainElement(api.CommonFinalizerDeletionHook)) }) By("Then PersistantVolumeClaim is created in SKR", func() { @@ -882,7 +882,7 @@ var _ = Describe("Feature: SKR GcpNfsVolume", func() { } By("And it has defined cloud-manager finalizer") - Expect(pv.Finalizers).To(ContainElement(cloudresourcesv1beta1.Finalizer)) + Expect(pv.Finalizers).To(ContainElement(api.CommonFinalizerDeletionHook)) }) }) }) diff --git a/internal/controller/cloud-resources/gcpredisinstance_test.go b/internal/controller/cloud-resources/gcpredisinstance_test.go index 3fd164ddb..6e90a3237 100644 --- a/internal/controller/cloud-resources/gcpredisinstance_test.go +++ b/internal/controller/cloud-resources/gcpredisinstance_test.go @@ -225,7 +225,7 @@ var _ = Describe("Feature: SKR GcpRedisInstance", func() { Expect(authSecret.Data).To(HaveKeyWithValue("parsed", []byte(kcpRedisInstancePrimaryEndpoint)), "expected auth secret data to have parsed=host:port") By("And it has defined cloud-manager finalizer") - Expect(authSecret.Finalizers).To(ContainElement(cloudresourcesv1beta1.Finalizer)) + Expect(authSecret.Finalizers).To(ContainElement(api.CommonFinalizerDeletionHook)) }) // CleanUp @@ -306,7 +306,7 @@ var _ = Describe("Feature: SKR GcpRedisInstance", func() { Should(Succeed(), "expected KCP RedisInstance to be created, but it was not") Eventually(Update). - WithArguments(infra.Ctx(), infra.KCP().Client(), kcpRedisInstance, AddFinalizer(cloudcontrolv1beta1.FinalizerName)). + WithArguments(infra.Ctx(), infra.KCP().Client(), kcpRedisInstance, AddFinalizer(api.CommonFinalizerDeletionHook)). Should(Succeed(), "failed adding finalizer on KCP RedisInstance") }) @@ -384,7 +384,7 @@ var _ = Describe("Feature: SKR GcpRedisInstance", func() { By("When KCP RedisInstance finalizer is removed and it is deleted", func() { Eventually(Update). - WithArguments(infra.Ctx(), infra.KCP().Client(), kcpRedisInstance, RemoveFinalizer(cloudcontrolv1beta1.FinalizerName)). + WithArguments(infra.Ctx(), infra.KCP().Client(), kcpRedisInstance, RemoveFinalizer(api.CommonFinalizerDeletionHook)). Should(Succeed(), "failed removing finalizer on KCP RedisInstance") }) diff --git a/internal/controller/cloud-resources/iprange_test.go b/internal/controller/cloud-resources/iprange_test.go index e0a051004..8ec83f381 100644 --- a/internal/controller/cloud-resources/iprange_test.go +++ b/internal/controller/cloud-resources/iprange_test.go @@ -136,7 +136,7 @@ var _ = Describe("Feature: SKR IpRange", func() { }) By("And Then SKR IpRange has finalizer", func() { - Expect(controllerutil.ContainsFinalizer(skrIpRange, cloudresourcesv1beta1.Finalizer)) + Expect(controllerutil.ContainsFinalizer(skrIpRange, api.CommonFinalizerDeletionHook)) }) By("And Then SKR IpRange has spec.cidr copy in status", func() { @@ -220,7 +220,7 @@ var _ = Describe("Feature: SKR IpRange", func() { Should(Succeed(), "expected SKR IpRange to be created, but none found") Eventually(Update). - WithArguments(infra.Ctx(), infra.KCP().Client(), kcpIpRange, AddFinalizer(cloudcontrolv1beta1.FinalizerName)). + WithArguments(infra.Ctx(), infra.KCP().Client(), kcpIpRange, AddFinalizer(api.CommonFinalizerDeletionHook)). Should(Succeed(), "failed adding finalizer to KCP IpRange") // When Kcp IpRange gets Ready condition @@ -259,7 +259,7 @@ var _ = Describe("Feature: SKR IpRange", func() { By("When KCP IpRange finalizer is removed and it is deleted", func() { Eventually(Update). - WithArguments(infra.Ctx(), infra.KCP().Client(), kcpIpRange, RemoveFinalizer(cloudcontrolv1beta1.FinalizerName)). + WithArguments(infra.Ctx(), infra.KCP().Client(), kcpIpRange, RemoveFinalizer(api.CommonFinalizerDeletionHook)). Should(Succeed(), "failed removing finalizer on KCP IpRange") }) diff --git a/pkg/common/actions/addFinalizer.go b/pkg/common/actions/addFinalizer.go index c0ab289f9..cdda94f03 100644 --- a/pkg/common/actions/addFinalizer.go +++ b/pkg/common/actions/addFinalizer.go @@ -2,40 +2,50 @@ package actions import ( "context" + "github.com/kyma-project/cloud-manager/api" - cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) -func PatchAddFinalizer(ctx context.Context, state composed.State) (error, context.Context) { - if composed.MarkedForDeletionPredicate(ctx, state) { - return nil, nil - } +func PatchAddCommonFinalizer() composed.Action { + return PatchAddFinalizer(api.CommonFinalizerDeletionHook) +} + +func PatchAddFinalizer(f string) composed.Action { + return func(ctx context.Context, state composed.State) (error, context.Context) { + if composed.MarkedForDeletionPredicate(ctx, state) { + return nil, ctx + } - _, err := state.PatchObjAddFinalizer(ctx, cloudcontrolv1beta1.FinalizerName) + _, err := state.PatchObjAddFinalizer(ctx, f) + if err != nil { + return composed.LogErrorAndReturn(err, "Error patch adding finalizer", composed.StopWithRequeue, ctx) + } - return err, nil + return nil, ctx + } } -func AddFinalizer(ctx context.Context, state composed.State) (error, context.Context) { +func AddCommonFinalizer() composed.Action { + return AddFinalizer(api.CommonFinalizerDeletionHook) +} - //KindsFromObject is being deleted, don't add finalizer - if composed.MarkedForDeletionPredicate(ctx, state) { - return nil, nil - } +func AddFinalizer(f string) composed.Action { + return func(ctx context.Context, state composed.State) (error, context.Context) { + if composed.MarkedForDeletionPredicate(ctx, state) { + return nil, nil + } - //If finalizer already present, don't add it again. - if controllerutil.ContainsFinalizer(state.Obj(), cloudcontrolv1beta1.FinalizerName) { - return nil, nil - } + added := controllerutil.AddFinalizer(state.Obj(), f) + if !added { + return nil, ctx + } - //Add finalizer - controllerutil.AddFinalizer(state.Obj(), cloudcontrolv1beta1.FinalizerName) - if err := state.UpdateObj(ctx); err != nil { - return composed.LogErrorAndReturn(err, "Error adding Finalizer", composed.StopWithRequeue, ctx) - } + if err := state.UpdateObj(ctx); err != nil { + return composed.LogErrorAndReturn(err, "Error adding Finalizer", composed.StopWithRequeue, ctx) + } - //continue - return nil, nil + return nil, ctx + } } diff --git a/pkg/common/actions/removeFinalizer.go b/pkg/common/actions/removeFinalizer.go index 59cc985cc..6f65d63b7 100644 --- a/pkg/common/actions/removeFinalizer.go +++ b/pkg/common/actions/removeFinalizer.go @@ -2,51 +2,57 @@ package actions import ( "context" - "github.com/kyma-project/cloud-manager/pkg/util" - - cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) -func PatchRemoveFinalizer(ctx context.Context, state composed.State) (error, context.Context) { - if !composed.MarkedForDeletionPredicate(ctx, state) { - return nil, nil - } +func PatchRemoveCommonFinalizer() composed.Action { + return PatchRemoveFinalizer(api.CommonFinalizerDeletionHook) +} + +func PatchRemoveFinalizer(f string) composed.Action { + return func(ctx context.Context, state composed.State) (error, context.Context) { + if !composed.MarkedForDeletionPredicate(ctx, state) { + return nil, ctx + } - logger := composed.LoggerFromCtx(ctx) - logger.Info("PatchRemoveFinalizer") + removed, err := state.PatchObjRemoveFinalizer(ctx, f) + if err != nil { + return composed.LogErrorAndReturn(err, "Error patching obj to remove finalizer", composed.StopWithRequeue, ctx) + } - _, err := state.PatchObjRemoveFinalizer(ctx, cloudcontrolv1beta1.FinalizerName) + if removed { + logger := composed.LoggerFromCtx(ctx) + logger.Info("Finalizer patch removed") + } - if err != nil { - return composed.LogErrorAndReturn(err, "Error patching obj to remove finalizer", composed.StopWithRequeueDelay(util.Timing.T10000ms()), ctx) + return nil, ctx } +} - return nil, nil +func RemoveCommonFinalizer() composed.Action { + return RemoveFinalizer(api.CommonFinalizerDeletionHook) } -func RemoveFinalizer(ctx context.Context, state composed.State) (error, context.Context) { +func RemoveFinalizer(f string) composed.Action { + return func(ctx context.Context, state composed.State) (error, context.Context) { + if !composed.MarkedForDeletionPredicate(ctx, state) { + return nil, nil + } - //KindsFromObject is not being deleted, don't remove finalizer - if !composed.MarkedForDeletionPredicate(ctx, state) { - return nil, nil - } + removed := controllerutil.RemoveFinalizer(state.Obj(), f) + if !removed { + return nil, ctx + } - //If finalizer not already present, don't remove it . - if !controllerutil.ContainsFinalizer(state.Obj(), cloudcontrolv1beta1.FinalizerName) { - return nil, nil - } + logger := composed.LoggerFromCtx(ctx) + logger.Info("RemoveFinalizer") - logger := composed.LoggerFromCtx(ctx) - logger.Info("RemoveFinalizer") + if err := state.UpdateObj(ctx); err != nil { + return composed.LogErrorAndReturn(err, "Error removing Finalizer", composed.StopWithRequeue, ctx) + } - //Remove finalizer - controllerutil.RemoveFinalizer(state.Obj(), cloudcontrolv1beta1.FinalizerName) - if err := state.UpdateObj(ctx); err != nil { - return composed.LogErrorAndReturn(err, "Error removing Finalizer", composed.StopWithRequeue, ctx) + return nil, ctx } - - //stop reconciling loop. - return composed.StopAndForget, nil } diff --git a/pkg/composed/predicate.go b/pkg/composed/predicate.go index 4c70201a2..936a64602 100644 --- a/pkg/composed/predicate.go +++ b/pkg/composed/predicate.go @@ -79,7 +79,13 @@ type Case interface { Action(ctx context.Context, state State) (error, context.Context) } -func NewCase(p Predicate, a Action) Case { +func NewCase(p Predicate, actions ...Action) Case { + var a Action + if len(actions) == 1 { + a = actions[0] + } else { + a = ComposeActions("", actions...) + } return &CaseStruct{ P: p, A: a, diff --git a/pkg/kcp/iprange/reconciler.go b/pkg/kcp/iprange/reconciler.go index f8c78d542..910abad74 100644 --- a/pkg/kcp/iprange/reconciler.go +++ b/pkg/kcp/iprange/reconciler.go @@ -65,7 +65,7 @@ func (r *ipRangeReconciler) newAction() composed.Action { return composed.ComposeActions( "ipRangeCommon", // common IpRange common actions here - actions.PatchAddFinalizer, + actions.PatchAddCommonFinalizer(), composed.If( shouldAllocateIpRange, composed.BuildSwitchAction( @@ -119,7 +119,7 @@ func (r *ipRangeReconciler) newAction() composed.Action { kymaPeeringDelete, kymaPeeringDeleteWait, kcpNetworkDelete, - actions.PatchRemoveFinalizer, + actions.PatchRemoveCommonFinalizer(), ), statusReady, )(ctx, newState(st.(focal.State))) diff --git a/pkg/kcp/network/handleNetworkReference.go b/pkg/kcp/network/handleNetworkReference.go index 6341d33ee..682aa209e 100644 --- a/pkg/kcp/network/handleNetworkReference.go +++ b/pkg/kcp/network/handleNetworkReference.go @@ -37,7 +37,7 @@ func handleNetworkReference(ctx context.Context, st composed.State) (error, cont if composed.MarkedForDeletionPredicate(ctx, state) { return composed.ComposeActions( "networkReferenceDelete", - actions.PatchRemoveFinalizer, + actions.PatchRemoveCommonFinalizer(), composed.StopAndForgetAction, )(ctx, state) } diff --git a/pkg/kcp/network/reconciler.go b/pkg/kcp/network/reconciler.go index 1849bfa1a..ce08544fa 100644 --- a/pkg/kcp/network/reconciler.go +++ b/pkg/kcp/network/reconciler.go @@ -64,7 +64,7 @@ func (r *networkReconciler) newAction() composed.Action { return composed.ComposeActions( "networkCommon", // common Network actions here - actions.PatchAddFinalizer, + actions.PatchAddCommonFinalizer(), composed.If( composed.MarkedForDeletionPredicate, preventDeleteWhenUsedByIpRange, diff --git a/pkg/kcp/nuke/scopeDelete.go b/pkg/kcp/nuke/scopeDelete.go index ec01006f7..3e971257d 100644 --- a/pkg/kcp/nuke/scopeDelete.go +++ b/pkg/kcp/nuke/scopeDelete.go @@ -2,6 +2,7 @@ package nuke import ( "context" + "github.com/kyma-project/cloud-manager/api" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" apierrors "k8s.io/apimachinery/pkg/api/errors" @@ -41,7 +42,7 @@ func scopeDelete(ctx context.Context, st composed.State) (error, context.Context // Remove finalizer from Scope - _, err = composed.PatchObjRemoveFinalizer(ctx, cloudcontrolv1beta1.FinalizerName, scope, state.Cluster().K8sClient()) + _, err = composed.PatchObjRemoveFinalizer(ctx, api.CommonFinalizerDeletionHook, scope, state.Cluster().K8sClient()) if err != nil { return composed.LogErrorAndReturn(err, "Error patch removing scope finalizer when Nuke has deleted all orphan resources", composed.StopWithRequeue, ctx) } diff --git a/pkg/kcp/provider/aws/nfsinstance/addFinalizer.go b/pkg/kcp/provider/aws/nfsinstance/addFinalizer.go index ebba5c777..aaab09b4e 100644 --- a/pkg/kcp/provider/aws/nfsinstance/addFinalizer.go +++ b/pkg/kcp/provider/aws/nfsinstance/addFinalizer.go @@ -2,7 +2,7 @@ package nfsinstance import ( "context" - cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -14,12 +14,12 @@ func addFinalizer(ctx context.Context, state composed.State) (error, context.Con } // If finalizer already present, don't add it again. - if controllerutil.ContainsFinalizer(state.Obj(), cloudcontrolv1beta1.FinalizerName) { + if controllerutil.ContainsFinalizer(state.Obj(), api.CommonFinalizerDeletionHook) { return nil, nil } // Add finalizer - controllerutil.AddFinalizer(state.Obj(), cloudcontrolv1beta1.FinalizerName) + controllerutil.AddFinalizer(state.Obj(), api.CommonFinalizerDeletionHook) if err := state.UpdateObj(ctx); err != nil { return composed.LogErrorAndReturn(err, "Error adding Finalizer", composed.StopWithRequeue, ctx) } diff --git a/pkg/kcp/provider/aws/nfsinstance/new.go b/pkg/kcp/provider/aws/nfsinstance/new.go index 9ca9e4d4a..9d689cab4 100644 --- a/pkg/kcp/provider/aws/nfsinstance/new.go +++ b/pkg/kcp/provider/aws/nfsinstance/new.go @@ -46,25 +46,22 @@ func New(stateFactory StateFactory) composed.Action { // delete composed.NewCase( composed.MarkedForDeletionPredicate, - composed.ComposeActions( - "awsNfsInstance-delete", - removeReadyCondition, - loadEfs, - findSecurityGroup, - loadMountTargets, + removeReadyCondition, + loadEfs, + findSecurityGroup, + loadMountTargets, - deleteMountTargets, - waitMountTargetsDeleted, + deleteMountTargets, + waitMountTargetsDeleted, - deleteEfs, - waitEfsDeleted, + deleteEfs, + waitEfsDeleted, - deleteSecurityGroup, + deleteSecurityGroup, - removeFinalizer, + removeFinalizer, - composed.StopAndForgetAction, - ), + composed.StopAndForgetAction, ), ), // switch composed.StopAndForgetAction, diff --git a/pkg/kcp/provider/aws/nfsinstance/removeFinalizer.go b/pkg/kcp/provider/aws/nfsinstance/removeFinalizer.go index 305902e82..0b5c51fd3 100644 --- a/pkg/kcp/provider/aws/nfsinstance/removeFinalizer.go +++ b/pkg/kcp/provider/aws/nfsinstance/removeFinalizer.go @@ -2,7 +2,7 @@ package nfsinstance import ( "context" - cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -11,7 +11,7 @@ func removeFinalizer(ctx context.Context, st composed.State) (error, context.Con state := st.(*State) logger := composed.LoggerFromCtx(ctx) - isUpdated := controllerutil.RemoveFinalizer(state.ObjAsNfsInstance(), cloudcontrolv1beta1.FinalizerName) + isUpdated := controllerutil.RemoveFinalizer(state.ObjAsNfsInstance(), api.CommonFinalizerDeletionHook) if !isUpdated { return nil, nil } diff --git a/pkg/kcp/provider/aws/redisinstance/new.go b/pkg/kcp/provider/aws/redisinstance/new.go index 2c188fd00..c3b79f86b 100644 --- a/pkg/kcp/provider/aws/redisinstance/new.go +++ b/pkg/kcp/provider/aws/redisinstance/new.go @@ -23,7 +23,7 @@ func New(stateFactory StateFactory) composed.Action { return composed.ComposeActions( "awsRedisInstance", - actions.AddFinalizer, + actions.AddCommonFinalizer(), loadSubnetGroup, loadMainParameterGroup(state), loadTempParameterGroup(state), @@ -104,7 +104,8 @@ func New(stateFactory StateFactory) composed.Action { deleteMainParameterGroup(), deleteTempParameterGroup(), deleteSubnetGroup, - actions.RemoveFinalizer, + actions.RemoveCommonFinalizer(), + composed.StopAndForgetAction, ), ), composed.StopAndForgetAction, diff --git a/pkg/kcp/provider/aws/vpcpeering/new.go b/pkg/kcp/provider/aws/vpcpeering/new.go index 360da0fee..e2968d7d5 100644 --- a/pkg/kcp/provider/aws/vpcpeering/new.go +++ b/pkg/kcp/provider/aws/vpcpeering/new.go @@ -40,11 +40,11 @@ func New(stateFactory StateFactory) composed.Action { deleteVpcPeering, remoteRoutesDelete, remotePeeringDelete, - actions.PatchRemoveFinalizer, + actions.PatchRemoveCommonFinalizer(), ), composed.ComposeActions( "awsVpcPeering-non-delete", - actions.PatchAddFinalizer, + actions.PatchAddCommonFinalizer(), checkNetworkTag, createVpcPeeringConnection, waitPendingAcceptance, diff --git a/pkg/kcp/provider/azure/network/new.go b/pkg/kcp/provider/azure/network/new.go index b99105562..1c4dd0af8 100644 --- a/pkg/kcp/provider/azure/network/new.go +++ b/pkg/kcp/provider/azure/network/new.go @@ -28,12 +28,12 @@ func New(stateFactory StateFactory) composed.Action { "azureNetworkDelete", vnetDelete, resourceGroupDelete, - actions.PatchRemoveFinalizer, + actions.PatchRemoveCommonFinalizer(), composed.StopAndForgetAction, ), composed.ComposeActions( "azureNetworkCreate", - actions.PatchAddFinalizer, + actions.PatchAddCommonFinalizer(), resourceGroupCreate, vnetCreate, statusReady, diff --git a/pkg/kcp/provider/azure/redisinstance/new.go b/pkg/kcp/provider/azure/redisinstance/new.go index bba7b3293..83dc8922a 100644 --- a/pkg/kcp/provider/azure/redisinstance/new.go +++ b/pkg/kcp/provider/azure/redisinstance/new.go @@ -33,7 +33,7 @@ func New(stateFactory StateFactory) composed.Action { return composed.ComposeActions( "azureRedisInstance", - actions.AddFinalizer, + actions.AddCommonFinalizer(), loadPrivateEndPoint, loadPrivateDnsZoneGroup, loadRedis, @@ -57,7 +57,8 @@ func New(stateFactory StateFactory) composed.Action { waitPrivateDnsZoneGroupDeleted, deletePrivateEndPoint, waitPrivateEndPointDeleted, - actions.RemoveFinalizer, + actions.RemoveCommonFinalizer(), + composed.StopAndForgetAction, ), ), composed.StopAndForgetAction, diff --git a/pkg/kcp/provider/azure/vpcpeering/new.go b/pkg/kcp/provider/azure/vpcpeering/new.go index 53e2e9c00..df7a1f2f7 100644 --- a/pkg/kcp/provider/azure/vpcpeering/new.go +++ b/pkg/kcp/provider/azure/vpcpeering/new.go @@ -33,11 +33,11 @@ func New(stateFactory StateFactory) composed.Action { "azureVpcPeering-delete", deleteVpcPeering, peeringRemoteDelete, - actions.PatchRemoveFinalizer, + actions.PatchRemoveCommonFinalizer(), ), composed.ComposeActions( "azureVpcPeering-non-delete", - actions.PatchAddFinalizer, + actions.PatchAddCommonFinalizer(), peeringRemoteRequireSpecifiedName, composed.If( predicateRequireVNetShootTag, diff --git a/pkg/kcp/provider/ccee/nfsinstance/new.go b/pkg/kcp/provider/ccee/nfsinstance/new.go index 17455215e..9389617f5 100644 --- a/pkg/kcp/provider/ccee/nfsinstance/new.go +++ b/pkg/kcp/provider/ccee/nfsinstance/new.go @@ -22,7 +22,7 @@ func New(stateFactory StateFactory) composed.Action { return composed.ComposeActions( "cceeNfsInstance", - actions.AddFinalizer, + actions.AddCommonFinalizer(), conditionsInit, networkLoad, networkStopWhenNotFound, @@ -39,7 +39,7 @@ func New(stateFactory StateFactory) composed.Action { accessRevoke, shareDelete, shareNetworkDelete, - actions.PatchRemoveFinalizer, + actions.PatchRemoveCommonFinalizer(), composed.StopAndForgetAction, ), composed.ComposeActions( diff --git a/pkg/kcp/provider/gcp/iprange/v2/new.go b/pkg/kcp/provider/gcp/iprange/v2/new.go index 1dc0eefb1..197ccdef3 100644 --- a/pkg/kcp/provider/gcp/iprange/v2/new.go +++ b/pkg/kcp/provider/gcp/iprange/v2/new.go @@ -39,7 +39,7 @@ func New(stateFactory StateFactory) composed.Action { preventCidrEdit, copyCidrToStatus, validateCidr, - actions.AddFinalizer, + actions.AddCommonFinalizer(), checkGcpOperation, loadAddress, updateStatusId, @@ -51,11 +51,12 @@ func New(stateFactory StateFactory) composed.Action { nil, composed.NewCase(StatePredicate(client.SyncAddress, ctx, state), syncAddress), composed.NewCase(StatePredicate(client.SyncPsaConnection, ctx, state), - composed.ComposeActions("updatePsaConnection", identifyPeeringIpRanges, syncPsaConnection)), + identifyPeeringIpRanges, syncPsaConnection), composed.NewCase(StatePredicate(client.DeletePsaConnection, ctx, state), - composed.ComposeActions("deletePsaConnection", identifyPeeringIpRanges, syncPsaConnection)), + identifyPeeringIpRanges, syncPsaConnection), composed.NewCase(StatePredicate(client.DeleteAddress, ctx, state), syncAddress), - composed.NewCase(StatePredicate(client.Deleted, ctx, state), actions.RemoveFinalizer), + composed.NewCase(StatePredicate(client.Deleted, ctx, state), + actions.RemoveCommonFinalizer(), composed.StopAndForgetAction), ), )(ctx, state) } diff --git a/pkg/kcp/provider/gcp/iprange/v2/state_test.go b/pkg/kcp/provider/gcp/iprange/v2/state_test.go index dae4eb029..eb9185cfb 100644 --- a/pkg/kcp/provider/gcp/iprange/v2/state_test.go +++ b/pkg/kcp/provider/gcp/iprange/v2/state_test.go @@ -3,6 +3,7 @@ package v2 import ( "context" "fmt" + "github.com/kyma-project/cloud-manager/api" "net/http/httptest" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" @@ -156,7 +157,7 @@ var gcpIpRange = cloudcontrolv1beta1.IpRange{ cloudcontrolv1beta1.LabelKymaName: kymaRef.Name, cloudcontrolv1beta1.LabelRemoteName: "test-gcp-ip-range", }, - Finalizers: []string{cloudcontrolv1beta1.FinalizerName}, + Finalizers: []string{api.CommonFinalizerDeletionHook}, }, Spec: cloudcontrolv1beta1.IpRangeSpec{ RemoteRef: cloudcontrolv1beta1.RemoteRef{ diff --git a/pkg/kcp/provider/gcp/nfsinstance/new.go b/pkg/kcp/provider/gcp/nfsinstance/new.go index 7c37a349d..12b9ba6f0 100644 --- a/pkg/kcp/provider/gcp/nfsinstance/new.go +++ b/pkg/kcp/provider/gcp/nfsinstance/new.go @@ -37,15 +37,18 @@ func New(stateFactory StateFactory) composed.Action { return composed.ComposeActions( "gcsNfsInstance", validateAlways, - actions.AddFinalizer, + actions.AddCommonFinalizer(), checkGcpOperation, loadNfsInstance, validatePostCreate, checkNUpdateState, checkUpdateMask, syncNfsInstance, - composed.BuildBranchingAction("RunFinalizer", StatePredicate(client.Deleted, ctx, state), - actions.RemoveFinalizer, nil), + composed.If( + StatePredicate(client.Deleted, ctx, state), + actions.RemoveCommonFinalizer(), + composed.StopAndForgetAction, + ), )(ctx, state) } } diff --git a/pkg/kcp/provider/gcp/redisinstance/new.go b/pkg/kcp/provider/gcp/redisinstance/new.go index 8a39b1ab6..2152380d9 100644 --- a/pkg/kcp/provider/gcp/redisinstance/new.go +++ b/pkg/kcp/provider/gcp/redisinstance/new.go @@ -35,7 +35,7 @@ func New(stateFactory StateFactory) composed.Action { return composed.ComposeActions( "redisInstance", - actions.AddFinalizer, + actions.AddCommonFinalizer(), loadRedis, composed.IfElse(composed.Not(composed.MarkedForDeletionPredicate), composed.ComposeActions( @@ -58,7 +58,8 @@ func New(stateFactory StateFactory) composed.Action { removeReadyCondition, deleteRedis, waitRedisDeleted, - actions.RemoveFinalizer, + actions.RemoveCommonFinalizer(), + composed.StopAndForgetAction, ), ), composed.StopAndForgetAction, diff --git a/pkg/kcp/provider/gcp/vpcpeering/new.go b/pkg/kcp/provider/gcp/vpcpeering/new.go index 65d9deb47..4d12f1136 100644 --- a/pkg/kcp/provider/gcp/vpcpeering/new.go +++ b/pkg/kcp/provider/gcp/vpcpeering/new.go @@ -22,7 +22,7 @@ func New(stateFactory StateFactory) composed.Action { return composed.ComposeActions( "gcpVpcPeering", - actions.AddFinalizer, + actions.AddCommonFinalizer(), loadKymaNetwork, loadRemoteNetwork, loadRemoteVpcPeering, @@ -44,7 +44,8 @@ func New(stateFactory StateFactory) composed.Action { deleteVpcPeering, waitKymaVpcPeeringDeletion, deleteRemoteVpcPeering, - actions.RemoveFinalizer, + actions.RemoveCommonFinalizer(), + composed.StopAndForgetAction, ), ), composed.StopAndForgetAction, diff --git a/pkg/kcp/scope/addKymaFinalizer.go b/pkg/kcp/scope/addKymaFinalizer.go index e411a73a5..ab46c9514 100644 --- a/pkg/kcp/scope/addKymaFinalizer.go +++ b/pkg/kcp/scope/addKymaFinalizer.go @@ -2,7 +2,7 @@ package scope import ( "context" - cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" ) @@ -20,7 +20,7 @@ func addKymaFinalizer(ctx context.Context, st composed.State) (error, context.Co return nil, ctx } - added, err := composed.PatchObjAddFinalizer(ctx, cloudcontrolv1beta1.FinalizerName, state.kyma, state.Cluster().K8sClient()) + added, err := composed.PatchObjAddFinalizer(ctx, api.CommonFinalizerDeletionHook, state.kyma, state.Cluster().K8sClient()) if err != nil { return composed.LogErrorAndReturn(err, "Error updating Kyma CR with added finalizer", composed.StopWithRequeue, ctx) } diff --git a/pkg/kcp/scope/ensureScopeCommonFields.go b/pkg/kcp/scope/ensureScopeCommonFields.go index bd9fadfb9..0ec47055b 100644 --- a/pkg/kcp/scope/ensureScopeCommonFields.go +++ b/pkg/kcp/scope/ensureScopeCommonFields.go @@ -2,6 +2,7 @@ package scope import ( "context" + "github.com/kyma-project/cloud-manager/api" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -16,7 +17,7 @@ func ensureScopeCommonFields(ctx context.Context, st composed.State) (error, con state.ObjAsScope().Namespace = state.kyma.GetNamespace() // set finalizer - controllerutil.AddFinalizer(state.ObjAsScope(), cloudcontrolv1beta1.FinalizerName) + controllerutil.AddFinalizer(state.ObjAsScope(), api.CommonFinalizerDeletionHook) // set kyma name in label metav1.SetMetaDataLabel(&state.ObjAsScope().ObjectMeta, cloudcontrolv1beta1.LabelKymaName, state.Obj().GetName()) diff --git a/pkg/kcp/scope/removeKymaFinalizer.go b/pkg/kcp/scope/removeKymaFinalizer.go index 368033f28..56699a2f9 100644 --- a/pkg/kcp/scope/removeKymaFinalizer.go +++ b/pkg/kcp/scope/removeKymaFinalizer.go @@ -2,7 +2,7 @@ package scope import ( "context" - cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" ) @@ -14,7 +14,7 @@ func removeKymaFinalizer(ctx context.Context, st composed.State) (error, context return nil, ctx } - removed, err := composed.PatchObjRemoveFinalizer(ctx, cloudcontrolv1beta1.FinalizerName, state.kyma, state.Cluster().K8sClient()) + removed, err := composed.PatchObjRemoveFinalizer(ctx, api.CommonFinalizerDeletionHook, state.kyma, state.Cluster().K8sClient()) if err != nil { return composed.LogErrorAndReturn(err, "Error updating Kyma CR with removed finalizer", composed.StopWithRequeue, ctx) } diff --git a/pkg/kcp/scope/scopeDelete.go b/pkg/kcp/scope/scopeDelete.go index c642a6332..0f450b054 100644 --- a/pkg/kcp/scope/scopeDelete.go +++ b/pkg/kcp/scope/scopeDelete.go @@ -2,7 +2,7 @@ package scope import ( "context" - cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "github.com/kyma-project/cloud-manager/pkg/util" ) @@ -20,7 +20,7 @@ func scopeDelete(ctx context.Context, st composed.State) (error, context.Context logger.Info("Deleting Scope") - if _, err := state.PatchObjRemoveFinalizer(ctx, cloudcontrolv1beta1.FinalizerName); err != nil { + if _, err := state.PatchObjRemoveFinalizer(ctx, api.CommonFinalizerDeletionHook); err != nil { return composed.LogErrorAndReturn(err, "Error updating Scope after finalizer removed", composed.StopWithRequeue, ctx) } diff --git a/pkg/skr/awsnfsvolume/addFinalizer.go b/pkg/skr/awsnfsvolume/addFinalizer.go index 4347702ef..2ced5df13 100644 --- a/pkg/skr/awsnfsvolume/addFinalizer.go +++ b/pkg/skr/awsnfsvolume/addFinalizer.go @@ -2,7 +2,7 @@ package awsnfsvolume import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -15,7 +15,7 @@ func addFinalizer(ctx context.Context, st composed.State) (error, context.Contex return nil, nil } - added := controllerutil.AddFinalizer(state.Obj(), cloudresourcesv1beta1.Finalizer) + added := controllerutil.AddFinalizer(state.Obj(), api.CommonFinalizerDeletionHook) if !added { // finalizer already added return nil, nil diff --git a/pkg/skr/awsnfsvolume/createPersistentVolumeClaim.go b/pkg/skr/awsnfsvolume/createPersistentVolumeClaim.go index f526fec7a..11e205899 100644 --- a/pkg/skr/awsnfsvolume/createPersistentVolumeClaim.go +++ b/pkg/skr/awsnfsvolume/createPersistentVolumeClaim.go @@ -2,8 +2,8 @@ package awsnfsvolume import ( "context" + "github.com/kyma-project/cloud-manager/api" - "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" "github.com/kyma-project/cloud-manager/pkg/util" corev1 "k8s.io/api/core/v1" @@ -34,7 +34,7 @@ func createPersistentVolumeClaim(ctx context.Context, st composed.State) (error, Labels: getVolumeClaimLabels(state.ObjAsAwsNfsVolume()), Annotations: getVolumeClaimAnnotations(state.ObjAsAwsNfsVolume()), Finalizers: []string{ - v1beta1.Finalizer, + api.CommonFinalizerDeletionHook, }, }, Spec: corev1.PersistentVolumeClaimSpec{ diff --git a/pkg/skr/awsnfsvolume/createVolume.go b/pkg/skr/awsnfsvolume/createVolume.go index e617ed787..e63780d2c 100644 --- a/pkg/skr/awsnfsvolume/createVolume.go +++ b/pkg/skr/awsnfsvolume/createVolume.go @@ -2,9 +2,9 @@ package awsnfsvolume import ( "context" + "github.com/kyma-project/cloud-manager/api" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" - "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/meta" @@ -36,7 +36,7 @@ func createVolume(ctx context.Context, st composed.State) (error, context.Contex Labels: getVolumeLabels(state.ObjAsAwsNfsVolume()), Annotations: getVolumeAnnotations(state.ObjAsAwsNfsVolume()), Finalizers: []string{ - v1beta1.Finalizer, + api.CommonFinalizerDeletionHook, }, }, Spec: corev1.PersistentVolumeSpec{ diff --git a/pkg/skr/awsnfsvolume/removeFinalizer.go b/pkg/skr/awsnfsvolume/removeFinalizer.go index 708b816e9..1e79b10dd 100644 --- a/pkg/skr/awsnfsvolume/removeFinalizer.go +++ b/pkg/skr/awsnfsvolume/removeFinalizer.go @@ -2,7 +2,7 @@ package awsnfsvolume import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -15,12 +15,12 @@ func removeFinalizer(ctx context.Context, st composed.State) (error, context.Con return nil, nil } - hasFinalizer := controllerutil.ContainsFinalizer(state.ObjAsAwsNfsVolume(), cloudresourcesv1beta1.Finalizer) + hasFinalizer := controllerutil.ContainsFinalizer(state.ObjAsAwsNfsVolume(), api.CommonFinalizerDeletionHook) if !hasFinalizer { return nil, nil } - controllerutil.RemoveFinalizer(state.ObjAsAwsNfsVolume(), cloudresourcesv1beta1.Finalizer) + controllerutil.RemoveFinalizer(state.ObjAsAwsNfsVolume(), api.CommonFinalizerDeletionHook) err := state.UpdateObj(ctx) if err != nil { return composed.LogErrorAndReturn(err, "Error updating SKR AwsNfsVolume after finalizer removed", composed.StopWithRequeue, ctx) diff --git a/pkg/skr/awsnfsvolume/removePersistenceVolumeClaimFinalizer.go b/pkg/skr/awsnfsvolume/removePersistenceVolumeClaimFinalizer.go index 1b1499d46..155796c10 100644 --- a/pkg/skr/awsnfsvolume/removePersistenceVolumeClaimFinalizer.go +++ b/pkg/skr/awsnfsvolume/removePersistenceVolumeClaimFinalizer.go @@ -2,8 +2,8 @@ package awsnfsvolume import ( "context" + "github.com/kyma-project/cloud-manager/api" - "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -20,11 +20,11 @@ func removePersistenceVolumeClaimFinalizer(ctx context.Context, st composed.Stat return nil, nil } - if !controllerutil.ContainsFinalizer(state.PVC, v1beta1.Finalizer) { + if !controllerutil.ContainsFinalizer(state.PVC, api.CommonFinalizerDeletionHook) { return nil, nil } - controllerutil.RemoveFinalizer(state.PVC, v1beta1.Finalizer) + controllerutil.RemoveFinalizer(state.PVC, api.CommonFinalizerDeletionHook) err := state.Cluster().K8sClient().Update(ctx, state.PVC) if err != nil { return composed.LogErrorAndReturn(err, "Error saving SKR PersistentVolumeClaim after finalizer removal", composed.StopWithRequeue, ctx) diff --git a/pkg/skr/awsnfsvolume/removePersistenceVolumeFinalizer.go b/pkg/skr/awsnfsvolume/removePersistenceVolumeFinalizer.go index 2db74714d..ebd316b5b 100644 --- a/pkg/skr/awsnfsvolume/removePersistenceVolumeFinalizer.go +++ b/pkg/skr/awsnfsvolume/removePersistenceVolumeFinalizer.go @@ -2,8 +2,8 @@ package awsnfsvolume import ( "context" + "github.com/kyma-project/cloud-manager/api" - "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -20,11 +20,11 @@ func removePersistenceVolumeFinalizer(ctx context.Context, st composed.State) (e return nil, nil } - if !controllerutil.ContainsFinalizer(state.Volume, v1beta1.Finalizer) { + if !controllerutil.ContainsFinalizer(state.Volume, api.CommonFinalizerDeletionHook) { return nil, nil } - controllerutil.RemoveFinalizer(state.Volume, v1beta1.Finalizer) + controllerutil.RemoveFinalizer(state.Volume, api.CommonFinalizerDeletionHook) err := state.Cluster().K8sClient().Update(ctx, state.Volume) if err != nil { return composed.LogErrorAndReturn(err, "Error saving SKR PersistentVolume after finalizer removal", composed.StopWithRequeue, ctx) diff --git a/pkg/skr/awsnfsvolumebackup/addFinalizer.go b/pkg/skr/awsnfsvolumebackup/addFinalizer.go index 5e2d80909..c9d613978 100644 --- a/pkg/skr/awsnfsvolumebackup/addFinalizer.go +++ b/pkg/skr/awsnfsvolumebackup/addFinalizer.go @@ -2,7 +2,7 @@ package awsnfsvolumebackup import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -12,7 +12,7 @@ func addFinalizer(ctx context.Context, st composed.State) (error, context.Contex return nil, nil } - added := controllerutil.AddFinalizer(st.Obj(), cloudresourcesv1beta1.Finalizer) + added := controllerutil.AddFinalizer(st.Obj(), api.CommonFinalizerDeletionHook) if !added { // finalizer already added return nil, nil diff --git a/pkg/skr/awsnfsvolumebackup/addFinalizer_test.go b/pkg/skr/awsnfsvolumebackup/addFinalizer_test.go index c1f3c411d..9affffe7a 100644 --- a/pkg/skr/awsnfsvolumebackup/addFinalizer_test.go +++ b/pkg/skr/awsnfsvolumebackup/addFinalizer_test.go @@ -3,7 +3,7 @@ package awsnfsvolumebackup import ( "context" "github.com/go-logr/logr" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "github.com/stretchr/testify/suite" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" @@ -34,7 +34,7 @@ func (suite *addFinalizerSuite) TestAddFinalizer() { suite.Nil(err) err, _ = addFinalizer(ctx, state) suite.Equal(composed.StopWithRequeue, err) - suite.Contains(state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + suite.Contains(state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func (suite *addFinalizerSuite) TestAddFinalizerWhenAlreadyExists() { @@ -50,11 +50,11 @@ func (suite *addFinalizerSuite) TestAddFinalizerWhenAlreadyExists() { state, err := factory.newStateWith(obj) suite.Nil(err) - controllerutil.AddFinalizer(obj, cloudresourcesv1beta1.Finalizer) + controllerutil.AddFinalizer(obj, api.CommonFinalizerDeletionHook) err, _ = addFinalizer(ctx, state) suite.Nil(err) - suite.Contains(state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + suite.Contains(state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func (suite *addFinalizerSuite) TestDoNotAddFinalizerOnDeletingObject() { @@ -72,7 +72,7 @@ func (suite *addFinalizerSuite) TestDoNotAddFinalizerOnDeletingObject() { //Call addFinalizer err, _ = addFinalizer(ctx, state) suite.Nil(err) - suite.NotContains(state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + suite.NotContains(state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func TestAddFinalizer(t *testing.T) { diff --git a/pkg/skr/awsnfsvolumebackup/removeFinalizer.go b/pkg/skr/awsnfsvolumebackup/removeFinalizer.go index 7ec810bca..defb0d9ce 100644 --- a/pkg/skr/awsnfsvolumebackup/removeFinalizer.go +++ b/pkg/skr/awsnfsvolumebackup/removeFinalizer.go @@ -2,7 +2,7 @@ package awsnfsvolumebackup import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -21,7 +21,7 @@ func removeFinalizer(ctx context.Context, st composed.State) (error, context.Con } // AWS file backup does not exist, remove the finalizer so SKR GcpNfsVolumeBackup is also deleted - controllerutil.RemoveFinalizer(state.Obj(), cloudresourcesv1beta1.Finalizer) + controllerutil.RemoveFinalizer(state.Obj(), api.CommonFinalizerDeletionHook) err := state.UpdateObj(ctx) if err != nil { return composed.LogErrorAndReturn(err, "Error saving SKR AwsNfsVolumeBackup after finalizer remove", composed.StopWithRequeue, ctx) diff --git a/pkg/skr/awsnfsvolumebackup/state_test.go b/pkg/skr/awsnfsvolumebackup/state_test.go index f0c873631..925f04bce 100644 --- a/pkg/skr/awsnfsvolumebackup/state_test.go +++ b/pkg/skr/awsnfsvolumebackup/state_test.go @@ -1,6 +1,7 @@ package awsnfsvolumebackup import ( + "github.com/kyma-project/cloud-manager/api" commonScope "github.com/kyma-project/cloud-manager/pkg/skr/common/scope" "k8s.io/apimachinery/pkg/types" @@ -119,7 +120,7 @@ var deletingAwsNfsVolumeBackup = cloudresourcesv1beta1.AwsNfsVolumeBackup{ Name: "test-aws-nfs-volume-restore", Namespace: "test", DeletionTimestamp: &v1.Time{Time: time.Now()}, - Finalizers: []string{cloudresourcesv1beta1.Finalizer}, + Finalizers: []string{api.CommonFinalizerDeletionHook}, }, Spec: cloudresourcesv1beta1.AwsNfsVolumeBackupSpec{ Source: cloudresourcesv1beta1.AwsNfsVolumeBackupSource{ diff --git a/pkg/skr/awsnfsvolumerestore/addFinalizer.go b/pkg/skr/awsnfsvolumerestore/addFinalizer.go index 9667a76e3..5bc9f728e 100644 --- a/pkg/skr/awsnfsvolumerestore/addFinalizer.go +++ b/pkg/skr/awsnfsvolumerestore/addFinalizer.go @@ -2,7 +2,7 @@ package awsnfsvolumerestore import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -12,7 +12,7 @@ func addFinalizer(ctx context.Context, st composed.State) (error, context.Contex return nil, nil } - added := controllerutil.AddFinalizer(st.Obj(), cloudresourcesv1beta1.Finalizer) + added := controllerutil.AddFinalizer(st.Obj(), api.CommonFinalizerDeletionHook) if !added { // finalizer already added return nil, nil diff --git a/pkg/skr/awsnfsvolumerestore/addFinalizer_test.go b/pkg/skr/awsnfsvolumerestore/addFinalizer_test.go index 708453fa5..eab31afb9 100644 --- a/pkg/skr/awsnfsvolumerestore/addFinalizer_test.go +++ b/pkg/skr/awsnfsvolumerestore/addFinalizer_test.go @@ -3,7 +3,7 @@ package awsnfsvolumerestore import ( "context" "github.com/go-logr/logr" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "github.com/stretchr/testify/suite" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" @@ -34,7 +34,7 @@ func (suite *addFinalizerSuite) TestAddFinalizer() { suite.Nil(err) err, _ = addFinalizer(ctx, state) suite.Equal(composed.StopWithRequeue, err) - suite.Contains(state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + suite.Contains(state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func (suite *addFinalizerSuite) TestAddFinalizerWhenAlreadyExists() { @@ -49,11 +49,11 @@ func (suite *addFinalizerSuite) TestAddFinalizerWhenAlreadyExists() { state, err := factory.newStateWith(obj) suite.Nil(err) - controllerutil.AddFinalizer(obj, cloudresourcesv1beta1.Finalizer) + controllerutil.AddFinalizer(obj, api.CommonFinalizerDeletionHook) err, _ = addFinalizer(ctx, state) suite.Nil(err) - suite.Contains(state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + suite.Contains(state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func (suite *addFinalizerSuite) TestDoNotAddFinalizerOnDeletingObject() { @@ -71,7 +71,7 @@ func (suite *addFinalizerSuite) TestDoNotAddFinalizerOnDeletingObject() { //Call addFinalizer err, _ = addFinalizer(ctx, state) suite.Nil(err) - suite.NotContains(state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + suite.NotContains(state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func TestAddFinalizer(t *testing.T) { diff --git a/pkg/skr/awsnfsvolumerestore/reconciler.go b/pkg/skr/awsnfsvolumerestore/reconciler.go index e007375fb..2d0b36167 100644 --- a/pkg/skr/awsnfsvolumerestore/reconciler.go +++ b/pkg/skr/awsnfsvolumerestore/reconciler.go @@ -62,7 +62,7 @@ func (r *reconciler) newAction() composed.Action { composed.IfElse( composed.Not(CompletedRestorePredicate), composed.ComposeActions("AwsNfsVolumeNotCompleted", - actions.PatchAddFinalizer, + actions.PatchAddCommonFinalizer(), loadSkrAwsNfsVolumeBackup, stopIfBackupNotReady, loadSkrAwsNfsVolume, @@ -72,7 +72,7 @@ func (r *reconciler) newAction() composed.Action { startAwsRestore, checkRestoreJob), nil), - actions.PatchRemoveFinalizer, + actions.PatchRemoveCommonFinalizer(), composed.StopAndForgetAction, ) } diff --git a/pkg/skr/awsnfsvolumerestore/removeFinalizer.go b/pkg/skr/awsnfsvolumerestore/removeFinalizer.go index 0905a4cda..2b8ce8067 100644 --- a/pkg/skr/awsnfsvolumerestore/removeFinalizer.go +++ b/pkg/skr/awsnfsvolumerestore/removeFinalizer.go @@ -2,7 +2,7 @@ package awsnfsvolumerestore import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -13,7 +13,7 @@ func removeFinalizer(ctx context.Context, st composed.State) (error, context.Con return nil, nil } - controllerutil.RemoveFinalizer(state.Obj(), cloudresourcesv1beta1.Finalizer) + controllerutil.RemoveFinalizer(state.Obj(), api.CommonFinalizerDeletionHook) err := state.UpdateObj(ctx) if err != nil { return composed.LogErrorAndReturn(err, "Error saving SKR AwsNfsVolumeBackup after finalizer remove", composed.StopWithRequeue, ctx) diff --git a/pkg/skr/awsnfsvolumerestore/state_test.go b/pkg/skr/awsnfsvolumerestore/state_test.go index f307991bb..d371e2df6 100644 --- a/pkg/skr/awsnfsvolumerestore/state_test.go +++ b/pkg/skr/awsnfsvolumerestore/state_test.go @@ -2,6 +2,7 @@ package awsnfsvolumerestore import ( "context" + "github.com/kyma-project/cloud-manager/api" commonScope "github.com/kyma-project/cloud-manager/pkg/skr/common/scope" "k8s.io/apimachinery/pkg/types" @@ -128,7 +129,7 @@ var deletingAwsNfsVolumeRestore = cloudresourcesv1beta1.AwsNfsVolumeRestore{ DeletionTimestamp: &v1.Time{ Time: time.Now(), }, - Finalizers: []string{cloudresourcesv1beta1.Finalizer}, + Finalizers: []string{api.CommonFinalizerDeletionHook}, }, Spec: cloudresourcesv1beta1.AwsNfsVolumeRestoreSpec{ Source: cloudresourcesv1beta1.AwsNfsVolumeRestoreSource{ diff --git a/pkg/skr/awsredisinstance/createAuthSecret.go b/pkg/skr/awsredisinstance/createAuthSecret.go index c9217cf5d..96c073ea9 100644 --- a/pkg/skr/awsredisinstance/createAuthSecret.go +++ b/pkg/skr/awsredisinstance/createAuthSecret.go @@ -2,8 +2,8 @@ package awsredisinstance import ( "context" + "github.com/kyma-project/cloud-manager/api" - "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -24,7 +24,7 @@ func createAuthSecret(ctx context.Context, st composed.State) (error, context.Co Labels: getAuthSecretLabels(state.ObjAsAwsRedisInstance()), Annotations: getAuthSecretAnnotations(state.ObjAsAwsRedisInstance()), Finalizers: []string{ - v1beta1.Finalizer, + api.CommonFinalizerDeletionHook, }, }, Data: state.GetAuthSecretData(), diff --git a/pkg/skr/awsredisinstance/reconciler.go b/pkg/skr/awsredisinstance/reconciler.go index 6a83c2445..6d3d57730 100644 --- a/pkg/skr/awsredisinstance/reconciler.go +++ b/pkg/skr/awsredisinstance/reconciler.go @@ -55,7 +55,7 @@ func (r *reconciler) newAction() composed.Action { composed.IfElse(composed.Not(composed.MarkedForDeletionPredicate), composed.ComposeActions( "awsRedisInstance-create", - actions.AddFinalizer, + actions.AddCommonFinalizer(), createKcpRedisInstance, waitKcpStatusUpdate, updateStatus, @@ -71,7 +71,8 @@ func (r *reconciler) newAction() composed.Action { waitAuthSecretDeleted, deleteKcpRedisInstance, waitKcpRedisInstanceDeleted, - actions.RemoveFinalizer, + actions.RemoveCommonFinalizer(), + composed.StopAndForgetAction, ), ), diff --git a/pkg/skr/awsredisinstance/removeAuthSecretFinalizer.go b/pkg/skr/awsredisinstance/removeAuthSecretFinalizer.go index c2875a80c..0846f9e1e 100644 --- a/pkg/skr/awsredisinstance/removeAuthSecretFinalizer.go +++ b/pkg/skr/awsredisinstance/removeAuthSecretFinalizer.go @@ -2,8 +2,8 @@ package awsredisinstance import ( "context" + "github.com/kyma-project/cloud-manager/api" - "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -15,11 +15,11 @@ func removeAuthSecretFinalizer(ctx context.Context, st composed.State) (error, c return nil, nil } - if !controllerutil.ContainsFinalizer(state.AuthSecret, v1beta1.Finalizer) { + if !controllerutil.ContainsFinalizer(state.AuthSecret, api.CommonFinalizerDeletionHook) { return nil, nil } - controllerutil.RemoveFinalizer(state.AuthSecret, v1beta1.Finalizer) + controllerutil.RemoveFinalizer(state.AuthSecret, api.CommonFinalizerDeletionHook) err := state.Cluster().K8sClient().Update(ctx, state.AuthSecret) if err != nil { return composed.LogErrorAndReturn(err, "Error saving SKR Secret after finalizer removal", composed.StopWithRequeue, ctx) diff --git a/pkg/skr/awsvpcpeering/addFinalizer.go b/pkg/skr/awsvpcpeering/addFinalizer.go index f4d6bbea0..1a266a807 100644 --- a/pkg/skr/awsvpcpeering/addFinalizer.go +++ b/pkg/skr/awsvpcpeering/addFinalizer.go @@ -2,7 +2,7 @@ package awsvpcpeering import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -15,7 +15,7 @@ func addFinalizer(ctx context.Context, st composed.State) (error, context.Contex return nil, nil } - added := controllerutil.AddFinalizer(state.Obj(), cloudresourcesv1beta1.Finalizer) + added := controllerutil.AddFinalizer(state.Obj(), api.CommonFinalizerDeletionHook) if !added { // finalizer already added return nil, nil diff --git a/pkg/skr/awsvpcpeering/removeFinalizer.go b/pkg/skr/awsvpcpeering/removeFinalizer.go index 363de29cc..ba3b105c6 100644 --- a/pkg/skr/awsvpcpeering/removeFinalizer.go +++ b/pkg/skr/awsvpcpeering/removeFinalizer.go @@ -2,7 +2,7 @@ package awsvpcpeering import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -23,7 +23,7 @@ func removeFinalizer(ctx context.Context, st composed.State) (error, context.Con logger.Info("Removing AwsVpcPeering finalizer") // KCP VpcPeering does not exist, remove the finalizer so SKR AwsVpcPeering is also deleted - controllerutil.RemoveFinalizer(state.Obj(), cloudresourcesv1beta1.Finalizer) + controllerutil.RemoveFinalizer(state.Obj(), api.CommonFinalizerDeletionHook) err := state.UpdateObj(ctx) diff --git a/pkg/skr/azureredisinstance/createAuthSecret.go b/pkg/skr/azureredisinstance/createAuthSecret.go index dce28c748..8b3c5496d 100644 --- a/pkg/skr/azureredisinstance/createAuthSecret.go +++ b/pkg/skr/azureredisinstance/createAuthSecret.go @@ -2,8 +2,8 @@ package azureredisinstance import ( "context" + "github.com/kyma-project/cloud-manager/api" - "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -24,7 +24,7 @@ func createAuthSecret(ctx context.Context, st composed.State) (error, context.Co Labels: getAuthSecretLabels(state.ObjAsAzureRedisInstance()), Annotations: getAuthSecretAnnotations(state.ObjAsAzureRedisInstance()), Finalizers: []string{ - v1beta1.Finalizer, + api.CommonFinalizerDeletionHook, }, }, Data: state.GetAuthSecretData(), diff --git a/pkg/skr/azureredisinstance/reconciler.go b/pkg/skr/azureredisinstance/reconciler.go index 68fa8e85f..0a87c8d92 100644 --- a/pkg/skr/azureredisinstance/reconciler.go +++ b/pkg/skr/azureredisinstance/reconciler.go @@ -52,7 +52,7 @@ func (r *reconciler) newAction() composed.Action { composed.IfElse(composed.Not(composed.MarkedForDeletionPredicate), composed.ComposeActions( "azureRedisInstance-create", - actions.AddFinalizer, + actions.AddCommonFinalizer(), createKcpRedisInstance, modifyKcpRedisInstance, waitKcpStatusUpdate, @@ -67,7 +67,8 @@ func (r *reconciler) newAction() composed.Action { waitAuthSecretDeleted, deleteKcpRedisInstance, waitKcpRedisInstanceDeleted, - actions.RemoveFinalizer, + actions.RemoveCommonFinalizer(), + composed.StopAndForgetAction, ), ), diff --git a/pkg/skr/azureredisinstance/removeAuthSecretFinalizer.go b/pkg/skr/azureredisinstance/removeAuthSecretFinalizer.go index 67c67bf90..57f1c8a0d 100644 --- a/pkg/skr/azureredisinstance/removeAuthSecretFinalizer.go +++ b/pkg/skr/azureredisinstance/removeAuthSecretFinalizer.go @@ -2,8 +2,8 @@ package azureredisinstance import ( "context" + "github.com/kyma-project/cloud-manager/api" - "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -15,11 +15,11 @@ func removeAuthSecretFinalizer(ctx context.Context, st composed.State) (error, c return nil, nil } - if !controllerutil.ContainsFinalizer(state.AuthSecret, v1beta1.Finalizer) { + if !controllerutil.ContainsFinalizer(state.AuthSecret, api.CommonFinalizerDeletionHook) { return nil, nil } - controllerutil.RemoveFinalizer(state.AuthSecret, v1beta1.Finalizer) + controllerutil.RemoveFinalizer(state.AuthSecret, api.CommonFinalizerDeletionHook) err := state.Cluster().K8sClient().Update(ctx, state.AuthSecret) if err != nil { return composed.LogErrorAndReturn(err, "Error saving SKR Secret after finalizer removal", composed.StopWithRequeue, ctx) diff --git a/pkg/skr/azurevpcpeering/addFinalizer.go b/pkg/skr/azurevpcpeering/addFinalizer.go index 12d8d56df..2a1ea6a25 100644 --- a/pkg/skr/azurevpcpeering/addFinalizer.go +++ b/pkg/skr/azurevpcpeering/addFinalizer.go @@ -2,7 +2,7 @@ package azurevpcpeering import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -15,7 +15,7 @@ func addFinalizer(ctx context.Context, st composed.State) (error, context.Contex return nil, nil } - added := controllerutil.AddFinalizer(state.Obj(), cloudresourcesv1beta1.Finalizer) + added := controllerutil.AddFinalizer(state.Obj(), api.CommonFinalizerDeletionHook) if !added { // finalizer already added return nil, nil diff --git a/pkg/skr/azurevpcpeering/removeFinalizer.go b/pkg/skr/azurevpcpeering/removeFinalizer.go index c22e0dec4..99e2e5fc6 100644 --- a/pkg/skr/azurevpcpeering/removeFinalizer.go +++ b/pkg/skr/azurevpcpeering/removeFinalizer.go @@ -2,7 +2,7 @@ package azurevpcpeering import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -23,7 +23,7 @@ func removeFinalizer(ctx context.Context, st composed.State) (error, context.Con logger.Info("Removing AzureVpcPeering finalizer") // KCP VpcPeering does not exist, remove the finalizer so SKR AzureVpcPeering is also deleted - controllerutil.RemoveFinalizer(state.Obj(), cloudresourcesv1beta1.Finalizer) + controllerutil.RemoveFinalizer(state.Obj(), api.CommonFinalizerDeletionHook) err := state.UpdateObj(ctx) diff --git a/pkg/skr/backupschedule/addFinalizer.go b/pkg/skr/backupschedule/addFinalizer.go index 5d4f4d372..a863934fd 100644 --- a/pkg/skr/backupschedule/addFinalizer.go +++ b/pkg/skr/backupschedule/addFinalizer.go @@ -2,7 +2,7 @@ package backupschedule import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" ) @@ -11,7 +11,7 @@ func addFinalizer(ctx context.Context, st composed.State) (error, context.Contex return nil, nil } - modified, err := st.PatchObjAddFinalizer(ctx, cloudresourcesv1beta1.Finalizer) + modified, err := st.PatchObjAddFinalizer(ctx, api.CommonFinalizerDeletionHook) if err != nil { return composed.LogErrorAndReturn(err, "Error saving object after finalizer added", composed.StopWithRequeue, ctx) } diff --git a/pkg/skr/backupschedule/addFinalizer_test.go b/pkg/skr/backupschedule/addFinalizer_test.go index 0378b529f..fb25b48f2 100644 --- a/pkg/skr/backupschedule/addFinalizer_test.go +++ b/pkg/skr/backupschedule/addFinalizer_test.go @@ -3,7 +3,7 @@ package backupschedule import ( "context" "github.com/go-logr/logr" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" "sigs.k8s.io/controller-runtime/pkg/log" @@ -33,7 +33,7 @@ func (suite *addFinalizerSuite) TestAddFinalizer() { assert.Nil(suite.T(), err) err, _ = addFinalizer(ctx, state) assert.Nil(suite.T(), err) - assert.Contains(suite.T(), state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + assert.Contains(suite.T(), state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func (suite *addFinalizerSuite) TestDoNotAddFinalizerOnDeletingObject() { @@ -51,7 +51,7 @@ func (suite *addFinalizerSuite) TestDoNotAddFinalizerOnDeletingObject() { //Call addFinalizer err, _ = addFinalizer(ctx, state) assert.Nil(suite.T(), err) - assert.NotContains(suite.T(), state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + assert.NotContains(suite.T(), state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func TestAddFinalizer(t *testing.T) { diff --git a/pkg/skr/backupschedule/removeFinalizer.go b/pkg/skr/backupschedule/removeFinalizer.go index 2bf03aed8..d0d6792cd 100644 --- a/pkg/skr/backupschedule/removeFinalizer.go +++ b/pkg/skr/backupschedule/removeFinalizer.go @@ -2,7 +2,7 @@ package backupschedule import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -15,7 +15,7 @@ func removeFinalizer(ctx context.Context, st composed.State) (error, context.Con } //Remove the finalizer so SKR BackupSchedule is also deleted - controllerutil.RemoveFinalizer(state.Obj(), cloudresourcesv1beta1.Finalizer) + controllerutil.RemoveFinalizer(state.Obj(), api.CommonFinalizerDeletionHook) err := state.UpdateObj(ctx) if err != nil { return composed.LogErrorAndReturn(err, "Error saving after finalizer removal", composed.StopWithRequeue, ctx) diff --git a/pkg/skr/backupschedule/state_test.go b/pkg/skr/backupschedule/state_test.go index b9c229503..16f6f542f 100644 --- a/pkg/skr/backupschedule/state_test.go +++ b/pkg/skr/backupschedule/state_test.go @@ -2,6 +2,7 @@ package backupschedule import ( "context" + "github.com/kyma-project/cloud-manager/api" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/common/abstractions" @@ -149,7 +150,7 @@ var deletingGcpBackupSchedule = cloudresourcesv1beta1.GcpNfsBackupSchedule{ Name: "test-nfs-backup-schedule", Namespace: "test", DeletionTimestamp: &metav1.Time{Time: time.Now()}, - Finalizers: []string{cloudresourcesv1beta1.Finalizer}, + Finalizers: []string{api.CommonFinalizerDeletionHook}, }, Spec: cloudresourcesv1beta1.GcpNfsBackupScheduleSpec{ NfsVolumeRef: corev1.ObjectReference{ diff --git a/pkg/skr/cloudresources/addFinalizer.go b/pkg/skr/cloudresources/addFinalizer.go index 80e712525..ae50cb943 100644 --- a/pkg/skr/cloudresources/addFinalizer.go +++ b/pkg/skr/cloudresources/addFinalizer.go @@ -2,7 +2,7 @@ package cloudresources import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -15,7 +15,7 @@ func addFinalizer(ctx context.Context, st composed.State) (error, context.Contex return nil, nil } - added := controllerutil.AddFinalizer(state.Obj(), cloudresourcesv1beta1.Finalizer) + added := controllerutil.AddFinalizer(state.Obj(), api.CommonFinalizerDeletionHook) if !added { // finalizer already added return nil, nil diff --git a/pkg/skr/cloudresources/removeFinalizer.go b/pkg/skr/cloudresources/removeFinalizer.go index 4a04e02d2..c16af6088 100644 --- a/pkg/skr/cloudresources/removeFinalizer.go +++ b/pkg/skr/cloudresources/removeFinalizer.go @@ -2,7 +2,7 @@ package cloudresources import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -13,7 +13,7 @@ func removeFinalizer(ctx context.Context, st composed.State) (error, context.Con logger.Info("Removing CloudResources finalizer") - controllerutil.RemoveFinalizer(state.Obj(), cloudresourcesv1beta1.Finalizer) + controllerutil.RemoveFinalizer(state.Obj(), api.CommonFinalizerDeletionHook) err := state.UpdateObj(ctx) if err != nil { return composed.LogErrorAndReturn(err, "Error saving CloudResources CR after finalizer remove", composed.StopWithRequeue, ctx) diff --git a/pkg/skr/gcpnfsvolume/addFinalizer.go b/pkg/skr/gcpnfsvolume/addFinalizer.go index 3356b068d..1b7d7fd8a 100644 --- a/pkg/skr/gcpnfsvolume/addFinalizer.go +++ b/pkg/skr/gcpnfsvolume/addFinalizer.go @@ -2,7 +2,7 @@ package gcpnfsvolume import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" ) @@ -11,7 +11,7 @@ func addFinalizer(ctx context.Context, st composed.State) (error, context.Contex return nil, nil } - modified, err := st.PatchObjAddFinalizer(ctx, cloudresourcesv1beta1.Finalizer) + modified, err := st.PatchObjAddFinalizer(ctx, api.CommonFinalizerDeletionHook) if err != nil { return composed.LogErrorAndReturn(err, "Error saving object after finalizer added", composed.StopWithRequeue, ctx) } diff --git a/pkg/skr/gcpnfsvolume/addFinalizer_test.go b/pkg/skr/gcpnfsvolume/addFinalizer_test.go index 690412765..d46e27991 100644 --- a/pkg/skr/gcpnfsvolume/addFinalizer_test.go +++ b/pkg/skr/gcpnfsvolume/addFinalizer_test.go @@ -3,7 +3,7 @@ package gcpnfsvolume import ( "context" "github.com/go-logr/logr" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" "sigs.k8s.io/controller-runtime/pkg/log" @@ -31,7 +31,7 @@ func (suite *addFinalizerSuite) TestAddFinalizer() { err, _ = addFinalizer(ctx, state) assert.Nil(suite.T(), err) - assert.Contains(suite.T(), state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + assert.Contains(suite.T(), state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func (suite *addFinalizerSuite) TestDoNotAddFinalizerOnDeletingObject() { @@ -48,7 +48,7 @@ func (suite *addFinalizerSuite) TestDoNotAddFinalizerOnDeletingObject() { //Call addFinalizer err, _ = addFinalizer(ctx, state) assert.Nil(suite.T(), err) - assert.NotContains(suite.T(), state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + assert.NotContains(suite.T(), state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func TestAddFinalizer(t *testing.T) { diff --git a/pkg/skr/gcpnfsvolume/createPersistenceVolume.go b/pkg/skr/gcpnfsvolume/createPersistenceVolume.go index 103ca3199..fadeb04e2 100644 --- a/pkg/skr/gcpnfsvolume/createPersistenceVolume.go +++ b/pkg/skr/gcpnfsvolume/createPersistenceVolume.go @@ -3,6 +3,7 @@ package gcpnfsvolume import ( "context" "fmt" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" @@ -51,7 +52,7 @@ func createPersistenceVolume(ctx context.Context, st composed.State) (error, con Labels: getVolumeLabels(nfsVolume), Annotations: getVolumeAnnotations(nfsVolume), Finalizers: []string{ - v1beta1.Finalizer, + api.CommonFinalizerDeletionHook, }, }, Spec: v1.PersistentVolumeSpec{ diff --git a/pkg/skr/gcpnfsvolume/createPersistentVolumeClaim.go b/pkg/skr/gcpnfsvolume/createPersistentVolumeClaim.go index acd26b14e..8b9770b6e 100644 --- a/pkg/skr/gcpnfsvolume/createPersistentVolumeClaim.go +++ b/pkg/skr/gcpnfsvolume/createPersistentVolumeClaim.go @@ -2,8 +2,8 @@ package gcpnfsvolume import ( "context" + "github.com/kyma-project/cloud-manager/api" - "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -36,7 +36,7 @@ func createPersistentVolumeClaim(ctx context.Context, st composed.State) (error, Labels: getVolumeClaimLabels(nfsVolume), Annotations: getVolumeClaimAnnotations(nfsVolume), Finalizers: []string{ - v1beta1.Finalizer, + api.CommonFinalizerDeletionHook, }, }, Spec: corev1.PersistentVolumeClaimSpec{ diff --git a/pkg/skr/gcpnfsvolume/deletePersistentVolumeClaim_test.go b/pkg/skr/gcpnfsvolume/deletePersistentVolumeClaim_test.go index 17541f9b0..7cea7b401 100644 --- a/pkg/skr/gcpnfsvolume/deletePersistentVolumeClaim_test.go +++ b/pkg/skr/gcpnfsvolume/deletePersistentVolumeClaim_test.go @@ -41,7 +41,7 @@ func TestDeletePersistentVolumeClaim(t *testing.T) { DeletionTimestamp: &v1.Time{ Time: time.Now(), }, - Finalizers: []string{cloudresourcesv1beta1.Finalizer}, + Finalizers: []string{api.CommonFinalizerDeletionHook}, }, } diff --git a/pkg/skr/gcpnfsvolume/removeFinalizer.go b/pkg/skr/gcpnfsvolume/removeFinalizer.go index d0b676fed..108a48d58 100644 --- a/pkg/skr/gcpnfsvolume/removeFinalizer.go +++ b/pkg/skr/gcpnfsvolume/removeFinalizer.go @@ -2,7 +2,7 @@ package gcpnfsvolume import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -20,7 +20,7 @@ func removeFinalizer(ctx context.Context, st composed.State) (error, context.Con } // KCP NfsInstance does not exist, remove the finalizer so SKR GcpNfsVolume is also deleted - controllerutil.RemoveFinalizer(state.Obj(), cloudresourcesv1beta1.Finalizer) + controllerutil.RemoveFinalizer(state.Obj(), api.CommonFinalizerDeletionHook) err := state.UpdateObj(ctx) if err != nil { return composed.LogErrorAndReturn(err, "Error saving SKR GcpNfsVolume after finalizer remove", composed.StopWithRequeue, ctx) diff --git a/pkg/skr/gcpnfsvolume/removeFinalizer_test.go b/pkg/skr/gcpnfsvolume/removeFinalizer_test.go index cd4872651..666a859db 100644 --- a/pkg/skr/gcpnfsvolume/removeFinalizer_test.go +++ b/pkg/skr/gcpnfsvolume/removeFinalizer_test.go @@ -33,7 +33,7 @@ func (suite *removeFinalizerSuite) TestRemoveFinalizer() { err, _ = removeFinalizer(ctx, state) assert.Equal(suite.T(), composed.StopAndForget, err) - assert.NotContains(suite.T(), state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + assert.NotContains(suite.T(), state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func (suite *removeFinalizerSuite) TestDonNotRemoveFinalizerIfKcpNfsInstanceExists() { @@ -45,7 +45,7 @@ func (suite *removeFinalizerSuite) TestDonNotRemoveFinalizerIfKcpNfsInstanceExis //Add the finalizer to the object nfsVol := deletedGcpNfsVolume.DeepCopy() - controllerutil.AddFinalizer(nfsVol, cloudresourcesv1beta1.Finalizer) + controllerutil.AddFinalizer(nfsVol, api.CommonFinalizerDeletionHook) err = factory.skrCluster.K8sClient().Update(ctx, nfsVol) assert.Nil(suite.T(), err) @@ -55,7 +55,7 @@ func (suite *removeFinalizerSuite) TestDonNotRemoveFinalizerIfKcpNfsInstanceExis err, _ = removeFinalizer(ctx, state) assert.Nil(suite.T(), err) - assert.Contains(suite.T(), state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + assert.Contains(suite.T(), state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func (suite *removeFinalizerSuite) TestDoNotRemoveFinalizerIfObjectIsNotDeleting() { @@ -72,7 +72,7 @@ func (suite *removeFinalizerSuite) TestDoNotRemoveFinalizerIfObjectIsNotDeleting //Call removeFinalizer err, _ = removeFinalizer(ctx, state) assert.Nil(suite.T(), err) - assert.Contains(suite.T(), state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + assert.Contains(suite.T(), state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func TestRemoveFinalizer(t *testing.T) { diff --git a/pkg/skr/gcpnfsvolume/removePersistenceVolumeClaimFinalizer.go b/pkg/skr/gcpnfsvolume/removePersistenceVolumeClaimFinalizer.go index da8087040..296aef8b4 100644 --- a/pkg/skr/gcpnfsvolume/removePersistenceVolumeClaimFinalizer.go +++ b/pkg/skr/gcpnfsvolume/removePersistenceVolumeClaimFinalizer.go @@ -2,8 +2,8 @@ package gcpnfsvolume import ( "context" + "github.com/kyma-project/cloud-manager/api" - "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -20,11 +20,11 @@ func removePersistenceVolumeClaimFinalizer(ctx context.Context, st composed.Stat return nil, nil } - if !controllerutil.ContainsFinalizer(state.PVC, v1beta1.Finalizer) { + if !controllerutil.ContainsFinalizer(state.PVC, api.CommonFinalizerDeletionHook) { return nil, nil } - controllerutil.RemoveFinalizer(state.PVC, v1beta1.Finalizer) + controllerutil.RemoveFinalizer(state.PVC, api.CommonFinalizerDeletionHook) err := state.Cluster().K8sClient().Update(ctx, state.PVC) if err != nil { return composed.LogErrorAndReturn(err, "Error saving SKR PersistentVolumeClaim after finalizer removal", composed.StopWithRequeue, ctx) diff --git a/pkg/skr/gcpnfsvolume/removePersistenceVolumeClaimFinalizer_test.go b/pkg/skr/gcpnfsvolume/removePersistenceVolumeClaimFinalizer_test.go index 17ab2cc08..153ef5652 100644 --- a/pkg/skr/gcpnfsvolume/removePersistenceVolumeClaimFinalizer_test.go +++ b/pkg/skr/gcpnfsvolume/removePersistenceVolumeClaimFinalizer_test.go @@ -43,7 +43,7 @@ func TestRemovePersistentVolumeClaimFinalizer(t *testing.T) { DeletionTimestamp: &v1.Time{ Time: time.Now(), }, - Finalizers: []string{cloudresourcesv1beta1.Finalizer}, + Finalizers: []string{api.CommonFinalizerDeletionHook}, }, } @@ -54,7 +54,7 @@ func TestRemovePersistentVolumeClaimFinalizer(t *testing.T) { DeletionTimestamp: &v1.Time{ Time: time.Now(), }, - Finalizers: []string{cloudresourcesv1beta1.Finalizer}, + Finalizers: []string{api.CommonFinalizerDeletionHook}, }, } @@ -85,7 +85,7 @@ func TestRemovePersistentVolumeClaimFinalizer(t *testing.T) { assert.Nil(t, res, "should return nil result") assert.Nil(t, err, "should return nil err") assert.EqualValues(t, 1, k8sClient.(spy.ClientSpy).UpdateCallCount(), "update should be called") - assert.False(t, controllerutil.ContainsFinalizer(state.PVC, cloudresourcesv1beta1.Finalizer), "finalizer is removed") + assert.False(t, controllerutil.ContainsFinalizer(state.PVC, api.CommonFinalizerDeletionHook), "finalizer is removed") }) t.Run("Should: do nothing if PVC is not marked for deletion", func(t *testing.T) { @@ -99,7 +99,7 @@ func TestRemovePersistentVolumeClaimFinalizer(t *testing.T) { assert.Nil(t, res, "should return nil result") assert.Nil(t, err, "should return nil err") assert.EqualValues(t, 0, k8sClient.(spy.ClientSpy).UpdateCallCount(), "update should not be called") - assert.True(t, controllerutil.ContainsFinalizer(state.PVC, cloudresourcesv1beta1.Finalizer), "finalizer is not removed") + assert.True(t, controllerutil.ContainsFinalizer(state.PVC, api.CommonFinalizerDeletionHook), "finalizer is not removed") }) t.Run("Should: do nothing if PVC is not defined", func(t *testing.T) { @@ -114,7 +114,7 @@ func TestRemovePersistentVolumeClaimFinalizer(t *testing.T) { assert.Nil(t, res, "should return nil result") assert.Nil(t, err, "should return nil err") assert.EqualValues(t, 0, k8sClient.(spy.ClientSpy).UpdateCallCount(), "update should not be called") - assert.True(t, controllerutil.ContainsFinalizer(pvc, cloudresourcesv1beta1.Finalizer), "finalizer is not removed") + assert.True(t, controllerutil.ContainsFinalizer(pvc, api.CommonFinalizerDeletionHook), "finalizer is not removed") }) t.Run("Should: do nothing if PVC does not contain Finalizer", func(t *testing.T) { diff --git a/pkg/skr/gcpnfsvolume/removePersistenceVolumeFinalizer.go b/pkg/skr/gcpnfsvolume/removePersistenceVolumeFinalizer.go index d626febb0..2265b5444 100644 --- a/pkg/skr/gcpnfsvolume/removePersistenceVolumeFinalizer.go +++ b/pkg/skr/gcpnfsvolume/removePersistenceVolumeFinalizer.go @@ -2,7 +2,7 @@ package gcpnfsvolume import ( "context" - "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -16,12 +16,12 @@ func removePersistenceVolumeFinalizer(ctx context.Context, st composed.State) (e } //If finalizer not already present, don't remove it . - if !controllerutil.ContainsFinalizer(state.PV, v1beta1.Finalizer) { + if !controllerutil.ContainsFinalizer(state.PV, api.CommonFinalizerDeletionHook) { return nil, nil } // KCP NfsInstance does not exist, remove the finalizer so PV is also deleted - controllerutil.RemoveFinalizer(state.PV, v1beta1.Finalizer) + controllerutil.RemoveFinalizer(state.PV, api.CommonFinalizerDeletionHook) err := state.SkrCluster.K8sClient().Update(ctx, state.PV) if err != nil { return composed.LogErrorAndReturn(err, "Error saving SKR PersistentVolume after finalizer removal", composed.StopWithRequeue, ctx) diff --git a/pkg/skr/gcpnfsvolume/removePersitenceVolumeFinalizer_test.go b/pkg/skr/gcpnfsvolume/removePersitenceVolumeFinalizer_test.go index ea88f1f60..39162dd6b 100644 --- a/pkg/skr/gcpnfsvolume/removePersitenceVolumeFinalizer_test.go +++ b/pkg/skr/gcpnfsvolume/removePersitenceVolumeFinalizer_test.go @@ -45,7 +45,7 @@ func (suite *removePersistenceVolumeFinalizerSuite) TestRemoveFinalizer() { err = state.SkrCluster.K8sClient().Get(ctx, types.NamespacedName{Name: pvName}, &pv) assert.Nil(suite.T(), err) - assert.NotContains(suite.T(), pv.GetFinalizers(), cloudresourcesv1beta1.Finalizer) + assert.NotContains(suite.T(), pv.GetFinalizers(), api.CommonFinalizerDeletionHook) } func (suite *removePersistenceVolumeFinalizerSuite) TestContinueIfPVNotExists() { @@ -76,7 +76,7 @@ func (suite *removePersistenceVolumeFinalizerSuite) TestDoNotRemoveFinalizerIfOb //Call removePersistenceVolumeFinalizer err, _ = removePersistenceVolumeFinalizer(ctx, state) assert.Nil(suite.T(), err) - assert.Contains(suite.T(), state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + assert.Contains(suite.T(), state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func TestRemovePersistenceVolumeFinalizer(t *testing.T) { diff --git a/pkg/skr/gcpnfsvolume/state_test.go b/pkg/skr/gcpnfsvolume/state_test.go index 136592a90..aabeb5961 100644 --- a/pkg/skr/gcpnfsvolume/state_test.go +++ b/pkg/skr/gcpnfsvolume/state_test.go @@ -3,6 +3,7 @@ package gcpnfsvolume import ( "context" "fmt" + "github.com/kyma-project/cloud-manager/api" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" @@ -241,7 +242,7 @@ var gcpNfsInstanceToDelete = cloudcontrolv1beta1.NfsInstance{ cloudcontrolv1beta1.LabelRemoteName: "deleted-gcp-nfs-volume", cloudcontrolv1beta1.LabelRemoteNamespace: "test", }, - Finalizers: []string{cloudcontrolv1beta1.FinalizerName}, + Finalizers: []string{api.CommonFinalizerDeletionHook}, }, Spec: cloudcontrolv1beta1.NfsInstanceSpec{ RemoteRef: cloudcontrolv1beta1.RemoteRef{ diff --git a/pkg/skr/gcpnfsvolumebackup/addFinalizer.go b/pkg/skr/gcpnfsvolumebackup/addFinalizer.go index 4441ff712..5c7f1fea3 100644 --- a/pkg/skr/gcpnfsvolumebackup/addFinalizer.go +++ b/pkg/skr/gcpnfsvolumebackup/addFinalizer.go @@ -2,7 +2,7 @@ package gcpnfsvolumebackup import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" ) @@ -11,7 +11,7 @@ func addFinalizer(ctx context.Context, st composed.State) (error, context.Contex return nil, nil } - modified, err := st.PatchObjAddFinalizer(ctx, cloudresourcesv1beta1.Finalizer) + modified, err := st.PatchObjAddFinalizer(ctx, api.CommonFinalizerDeletionHook) if err != nil { return composed.LogErrorAndReturn(err, "Error saving object after finalizer added", composed.StopWithRequeue, ctx) } diff --git a/pkg/skr/gcpnfsvolumebackup/addFinalizer_test.go b/pkg/skr/gcpnfsvolumebackup/addFinalizer_test.go index 34de269e4..0f3497e27 100644 --- a/pkg/skr/gcpnfsvolumebackup/addFinalizer_test.go +++ b/pkg/skr/gcpnfsvolumebackup/addFinalizer_test.go @@ -3,7 +3,7 @@ package gcpnfsvolumebackup import ( "context" "github.com/go-logr/logr" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" "net/http" @@ -38,7 +38,7 @@ func (suite *addFinalizerSuite) TestAddFinalizer() { assert.Nil(suite.T(), err) err, _ = addFinalizer(ctx, state) assert.Nil(suite.T(), err) - assert.Contains(suite.T(), state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + assert.Contains(suite.T(), state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func (suite *addFinalizerSuite) TestDoNotAddFinalizerOnDeletingObject() { @@ -59,7 +59,7 @@ func (suite *addFinalizerSuite) TestDoNotAddFinalizerOnDeletingObject() { //Call addFinalizer err, _ = addFinalizer(ctx, state) assert.Nil(suite.T(), err) - assert.NotContains(suite.T(), state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + assert.NotContains(suite.T(), state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func TestAddFinalizer(t *testing.T) { diff --git a/pkg/skr/gcpnfsvolumebackup/removeFinalizer.go b/pkg/skr/gcpnfsvolumebackup/removeFinalizer.go index c8f3fe6d1..9232bd284 100644 --- a/pkg/skr/gcpnfsvolumebackup/removeFinalizer.go +++ b/pkg/skr/gcpnfsvolumebackup/removeFinalizer.go @@ -2,7 +2,7 @@ package gcpnfsvolumebackup import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -21,7 +21,7 @@ func removeFinalizer(ctx context.Context, st composed.State) (error, context.Con } // GCP file backup does not exist, remove the finalizer so SKR GcpNfsVolumeBackup is also deleted - controllerutil.RemoveFinalizer(state.Obj(), cloudresourcesv1beta1.Finalizer) + controllerutil.RemoveFinalizer(state.Obj(), api.CommonFinalizerDeletionHook) err := state.UpdateObj(ctx) if err != nil { return composed.LogErrorAndReturn(err, "Error saving SKR GcpNfsVolumeBackup after finalizer remove", composed.StopWithRequeue, ctx) diff --git a/pkg/skr/gcpnfsvolumebackup/state_test.go b/pkg/skr/gcpnfsvolumebackup/state_test.go index 017aac006..189c24d1d 100644 --- a/pkg/skr/gcpnfsvolumebackup/state_test.go +++ b/pkg/skr/gcpnfsvolumebackup/state_test.go @@ -2,6 +2,7 @@ package gcpnfsvolumebackup import ( "context" + "github.com/kyma-project/cloud-manager/api" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/common/abstractions" @@ -106,7 +107,7 @@ var deletingGpNfsVolumeBackup = cloudresourcesv1beta1.GcpNfsVolumeBackup{ Name: "test-gcp-nfs-volume-restore", Namespace: "test", DeletionTimestamp: &v1.Time{Time: time.Now()}, - Finalizers: []string{cloudresourcesv1beta1.Finalizer}, + Finalizers: []string{api.CommonFinalizerDeletionHook}, }, Spec: cloudresourcesv1beta1.GcpNfsVolumeBackupSpec{ Location: "us-west1", diff --git a/pkg/skr/gcpnfsvolumerestore/addFinalizer.go b/pkg/skr/gcpnfsvolumerestore/addFinalizer.go index de88adf6d..d9d85b1f2 100644 --- a/pkg/skr/gcpnfsvolumerestore/addFinalizer.go +++ b/pkg/skr/gcpnfsvolumerestore/addFinalizer.go @@ -2,7 +2,7 @@ package gcpnfsvolumerestore import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" ) @@ -12,7 +12,7 @@ func addFinalizer(ctx context.Context, st composed.State) (error, context.Contex return nil, nil } - modified, err := st.PatchObjAddFinalizer(ctx, cloudresourcesv1beta1.Finalizer) + modified, err := st.PatchObjAddFinalizer(ctx, api.CommonFinalizerDeletionHook) if err != nil { return composed.LogErrorAndReturn(err, "Error saving object after finalizer added", composed.StopWithRequeue, ctx) } diff --git a/pkg/skr/gcpnfsvolumerestore/addFinalizer_test.go b/pkg/skr/gcpnfsvolumerestore/addFinalizer_test.go index 949fc7090..527bd3936 100644 --- a/pkg/skr/gcpnfsvolumerestore/addFinalizer_test.go +++ b/pkg/skr/gcpnfsvolumerestore/addFinalizer_test.go @@ -3,7 +3,7 @@ package gcpnfsvolumerestore import ( "context" "github.com/go-logr/logr" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" "net/http" @@ -38,7 +38,7 @@ func (suite *addFinalizerSuite) TestAddFinalizer() { assert.Nil(suite.T(), err) err, _ = addFinalizer(ctx, state) assert.Nil(suite.T(), err) - assert.Contains(suite.T(), state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + assert.Contains(suite.T(), state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func (suite *addFinalizerSuite) TestDoNotAddFinalizerOnDeletingObject() { @@ -59,7 +59,7 @@ func (suite *addFinalizerSuite) TestDoNotAddFinalizerOnDeletingObject() { //Call addFinalizer err, _ = addFinalizer(ctx, state) assert.Nil(suite.T(), err) - assert.NotContains(suite.T(), state.Obj().GetFinalizers(), cloudresourcesv1beta1.Finalizer) + assert.NotContains(suite.T(), state.Obj().GetFinalizers(), api.CommonFinalizerDeletionHook) } func TestAddFinalizer(t *testing.T) { diff --git a/pkg/skr/gcpnfsvolumerestore/removeFinalizer.go b/pkg/skr/gcpnfsvolumerestore/removeFinalizer.go index 1b9b5fd3a..21fd04de4 100644 --- a/pkg/skr/gcpnfsvolumerestore/removeFinalizer.go +++ b/pkg/skr/gcpnfsvolumerestore/removeFinalizer.go @@ -2,6 +2,7 @@ package gcpnfsvolumerestore import ( "context" + "github.com/kyma-project/cloud-manager/api" cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" gcpclient "github.com/kyma-project/cloud-manager/pkg/kcp/provider/gcp/client" @@ -29,7 +30,7 @@ func removeFinalizer(ctx context.Context, st composed.State) (error, context.Con Run(ctx, state) } - modified, err := st.PatchObjRemoveFinalizer(ctx, cloudresourcesv1beta1.Finalizer) + modified, err := st.PatchObjRemoveFinalizer(ctx, api.CommonFinalizerDeletionHook) if err != nil { return composed.LogErrorAndReturn(err, "Error saving SKR GcpNfsVolumeRestore after finalizer remove", composed.StopWithRequeue, ctx) } diff --git a/pkg/skr/gcpnfsvolumerestore/state_test.go b/pkg/skr/gcpnfsvolumerestore/state_test.go index 7acb58fda..9a89a1e5f 100644 --- a/pkg/skr/gcpnfsvolumerestore/state_test.go +++ b/pkg/skr/gcpnfsvolumerestore/state_test.go @@ -2,6 +2,7 @@ package gcpnfsvolumerestore import ( "context" + "github.com/kyma-project/cloud-manager/api" cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1" cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/common/abstractions" @@ -125,7 +126,7 @@ var deletingGcpNfsVolumeRestore = cloudresourcesv1beta1.GcpNfsVolumeRestore{ Name: "test-gcp-nfs-volume-restore", Namespace: "test", DeletionTimestamp: &v1.Time{Time: time.Now()}, - Finalizers: []string{cloudresourcesv1beta1.Finalizer}, + Finalizers: []string{api.CommonFinalizerDeletionHook}, }, Spec: cloudresourcesv1beta1.GcpNfsVolumeRestoreSpec{ Destination: cloudresourcesv1beta1.GcpNfsVolumeRestoreDestination{ diff --git a/pkg/skr/gcpredisinstance/createAuthSecret.go b/pkg/skr/gcpredisinstance/createAuthSecret.go index 7d6b70932..326d1a995 100644 --- a/pkg/skr/gcpredisinstance/createAuthSecret.go +++ b/pkg/skr/gcpredisinstance/createAuthSecret.go @@ -2,8 +2,8 @@ package gcpredisinstance import ( "context" + "github.com/kyma-project/cloud-manager/api" - "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -24,7 +24,7 @@ func createAuthSecret(ctx context.Context, st composed.State) (error, context.Co Labels: getAuthSecretLabels(state.ObjAsGcpRedisInstance()), Annotations: getAuthSecretAnnotations(state.ObjAsGcpRedisInstance()), Finalizers: []string{ - v1beta1.Finalizer, + api.CommonFinalizerDeletionHook, }, }, Data: state.GetAuthSecretData(), diff --git a/pkg/skr/gcpredisinstance/reconciler.go b/pkg/skr/gcpredisinstance/reconciler.go index e17ded51b..5c34c579b 100644 --- a/pkg/skr/gcpredisinstance/reconciler.go +++ b/pkg/skr/gcpredisinstance/reconciler.go @@ -55,7 +55,7 @@ func (r *reconciler) newAction() composed.Action { composed.IfElse(composed.Not(composed.MarkedForDeletionPredicate), composed.ComposeActions( "gcpRedisInstance-create", - actions.AddFinalizer, + actions.AddCommonFinalizer(), createKcpRedisInstance, modifyKcpRedisInstance, waitKcpStatusUpdate, @@ -71,7 +71,8 @@ func (r *reconciler) newAction() composed.Action { waitAuthSecretDeleted, deleteKcpRedisInstance, waitKcpRedisInstanceDeleted, - actions.RemoveFinalizer, + actions.RemoveCommonFinalizer(), + composed.StopAndForgetAction, ), ), diff --git a/pkg/skr/gcpredisinstance/removeAuthSecretFinalizer.go b/pkg/skr/gcpredisinstance/removeAuthSecretFinalizer.go index dc03f7c4e..958320340 100644 --- a/pkg/skr/gcpredisinstance/removeAuthSecretFinalizer.go +++ b/pkg/skr/gcpredisinstance/removeAuthSecretFinalizer.go @@ -2,8 +2,8 @@ package gcpredisinstance import ( "context" + "github.com/kyma-project/cloud-manager/api" - "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -15,11 +15,11 @@ func removeAuthSecretFinalizer(ctx context.Context, st composed.State) (error, c return nil, nil } - if !controllerutil.ContainsFinalizer(state.AuthSecret, v1beta1.Finalizer) { + if !controllerutil.ContainsFinalizer(state.AuthSecret, api.CommonFinalizerDeletionHook) { return nil, nil } - controllerutil.RemoveFinalizer(state.AuthSecret, v1beta1.Finalizer) + controllerutil.RemoveFinalizer(state.AuthSecret, api.CommonFinalizerDeletionHook) err := state.Cluster().K8sClient().Update(ctx, state.AuthSecret) if err != nil { return composed.LogErrorAndReturn(err, "Error saving SKR Secret after finalizer removal", composed.StopWithRequeue, ctx) diff --git a/pkg/skr/gcpvpcpeering/reconciler.go b/pkg/skr/gcpvpcpeering/reconciler.go index 8ede58204..8fa78718e 100644 --- a/pkg/skr/gcpvpcpeering/reconciler.go +++ b/pkg/skr/gcpvpcpeering/reconciler.go @@ -46,7 +46,7 @@ func (r *reconciler) newAction() composed.Action { composed.IfElse(composed.Not(composed.MarkedForDeletionPredicate), composed.ComposeActions( "gcpVpcPeering-create", - actions.AddFinalizer, + actions.AddCommonFinalizer(), createKcpRemoteNetwork, waitRemoteNetworkCreation, createKcpVpcPeering, @@ -58,7 +58,8 @@ func (r *reconciler) newAction() composed.Action { "gcpVpcPeering-delete", deleteKcpVpcPeering, deleteKcpRemoteNetwork, - actions.RemoveFinalizer, + actions.RemoveCommonFinalizer(), + composed.StopAndForgetAction, ), ), composed.StopAndForgetAction, diff --git a/pkg/skr/iprange/addFinalizer.go b/pkg/skr/iprange/addFinalizer.go index bb9b7e959..bae76b61c 100644 --- a/pkg/skr/iprange/addFinalizer.go +++ b/pkg/skr/iprange/addFinalizer.go @@ -2,7 +2,7 @@ package iprange import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -15,7 +15,7 @@ func addFinalizer(ctx context.Context, st composed.State) (error, context.Contex return nil, nil } - added := controllerutil.AddFinalizer(state.Obj(), cloudresourcesv1beta1.Finalizer) + added := controllerutil.AddFinalizer(state.Obj(), api.CommonFinalizerDeletionHook) if !added { // finalizer already added return nil, nil diff --git a/pkg/skr/iprange/removeFinalizer.go b/pkg/skr/iprange/removeFinalizer.go index 52b823023..29d274651 100644 --- a/pkg/skr/iprange/removeFinalizer.go +++ b/pkg/skr/iprange/removeFinalizer.go @@ -2,7 +2,7 @@ package iprange import ( "context" - cloudresourcesv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-resources/v1beta1" + "github.com/kyma-project/cloud-manager/api" "github.com/kyma-project/cloud-manager/pkg/composed" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -23,7 +23,7 @@ func removeFinalizer(ctx context.Context, st composed.State) (error, context.Con logger.Info("Removing IpRange finalizer") // KCP IpRange does not exist, remove the finalizer so SKR IpRange is also deleted - controllerutil.RemoveFinalizer(state.Obj(), cloudresourcesv1beta1.Finalizer) + controllerutil.RemoveFinalizer(state.Obj(), api.CommonFinalizerDeletionHook) err := state.UpdateObj(ctx) if err != nil { return composed.LogErrorAndReturn(err, "Error saving SKR IpRange after finalizer remove", composed.StopWithRequeue, ctx)