@@ -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
850870func (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