Skip to content

Commit a89add2

Browse files
committed
update handleDeletion to remove vault dynamic secrets from hvsapp
1 parent c8051a4 commit a89add2

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

controllers/hcpvaultsecretsapp_controller.go

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)