@@ -470,10 +470,20 @@ func (r *HCPVaultSecretsAppReconciler) handleDeletion(ctx context.Context, o *se
470470 objKey := client .ObjectKeyFromObject (o )
471471 r .referenceCache .Remove (SecretTransformation , objKey )
472472 r .BackOffRegistry .Delete (objKey )
473- shadowObjKey := makeShadowObjKey (o )
474- if err := helpers .DeleteSecret (ctx , r .Client , shadowObjKey ); err != nil {
475- logger .Error (err , "Failed to delete shadow secret" , "shadow secret" , shadowObjKey )
476- }
473+ // retrieve all shadow secrets that belong to the HCPVaultSecretsApp, remove their finalizers, and delete them
474+ secrets := secretsv1beta1.VaultDynamicSecretList {}
475+ if err := r .List (ctx , & secrets ,
476+ client .InNamespace (common .OperatorNamespace ),
477+ client.MatchingLabels {helpers .LabelOwnerRefUID : string (o .GetUID ())}); err != nil {
478+ return fmt .Errorf ("failed to list secrets in namespace %s: %w" , o .GetNamespace (), err )
479+ }
480+ removeFinalizers (ctx , r .Client , logger , & secrets )
481+ if err := r .DeleteAllOf (ctx , & secretsv1beta1.VaultDynamicSecret {},
482+ client .InNamespace (common .OperatorNamespace ),
483+ client.MatchingLabels {helpers .LabelOwnerRefUID : string (o .GetUID ())}); err != nil {
484+ return fmt .Errorf ("failed to delete secrets in namespace %s: %w" , o .GetNamespace (), err )
485+ }
486+ // then remove the finalizer from the HCPVaultSecretsApp and delete it
477487 if controllerutil .ContainsFinalizer (o , hcpVaultSecretsAppFinalizer ) {
478488 logger .Info ("Removing finalizer" )
479489 if controllerutil .RemoveFinalizer (o , hcpVaultSecretsAppFinalizer ) {
@@ -484,6 +494,9 @@ func (r *HCPVaultSecretsAppReconciler) handleDeletion(ctx context.Context, o *se
484494 logger .Info ("Successfully removed the finalizer" )
485495 }
486496 }
497+ if err := r .Delete (ctx , o ); err != nil {
498+ return fmt .Errorf ("failed to delete HCPVaultSecretsApp %s: %w" , o .Spec .AppName , err )
499+ }
487500 return nil
488501}
489502
0 commit comments