Skip to content

Commit 0a1d433

Browse files
Add deny-list for extra delete check
1 parent afea411 commit 0a1d433

File tree

1 file changed

+30
-5
lines changed

1 file changed

+30
-5
lines changed

v2/internal/reconcilers/arm/azure_generic_arm_reconciler_instance.go

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"github.com/go-logr/logr"
1818
"github.com/rotisserie/eris"
1919
v1 "k8s.io/api/core/v1"
20+
"k8s.io/apimachinery/pkg/util/sets"
2021
"k8s.io/client-go/tools/record"
2122
ctrl "sigs.k8s.io/controller-runtime"
2223
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -845,6 +846,25 @@ func (r *azureDeploymentReconcilerInstance) GetAPIVersion() (string, error) {
845846
return genruntime.GetAPIVersion(metaObject, scheme)
846847
}
847848

849+
var skipDeletionPrecheck = sets.NewString(
850+
"cdn",
851+
"cognitiveservices",
852+
"compute",
853+
"containerregistry",
854+
"containerservice",
855+
"dbformariadb",
856+
"dbforpostgresql",
857+
"dataprotection",
858+
"documentdb",
859+
"insights",
860+
"keyvault",
861+
"kubernetesconfiguration",
862+
"machinelearningservices",
863+
"managedidentity",
864+
"redhatopenshift",
865+
"subscription",
866+
)
867+
848868
// deleteResource deletes a resource in ARM. This function is used as the default deletion handler and can
849869
// have its behavior modified by resources implementing the genruntime.Deleter extension
850870
func (r *azureDeploymentReconcilerInstance) deleteResource(
@@ -866,11 +886,16 @@ func (r *azureDeploymentReconcilerInstance) deleteResource(
866886
return ctrl.Result{}, err
867887
}
868888

869-
// Check to see if the resource has already been deleted from Azure - if so, we're done
870-
if _, _, err := r.getStatus(ctx, resourceID); err != nil {
871-
if genericarmclient.IsNotFoundError(err) {
872-
// Resource no longer exists
873-
return ctrl.Result{}, nil
889+
// Check to see if the resource has already been deleted from Azure - if so, we're done.
890+
// But, first check to see if this resource is in a deny group, and skip the check if so.
891+
// This is to allow us to fix up remaining issues one by one instead of all at once.
892+
group := obj.GetObjectKind().GroupVersionKind().Group
893+
if !skipDeletionPrecheck.Has(group) {
894+
if _, _, err := r.getStatus(ctx, resourceID); err != nil {
895+
if genericarmclient.IsNotFoundError(err) {
896+
// Resource no longer exists
897+
return ctrl.Result{}, nil
898+
}
874899
}
875900
}
876901

0 commit comments

Comments
 (0)