Apps can be deleted with or without a cascade option. A cascade delete, deletes both the app and its resources, rather than only the app.
To perform a non-cascade delete:
argocd app delete APPNAME --cascade=falseTo perform a cascade delete:
argocd app delete APPNAME --cascadeor
argocd app delete APPNAMETo perform a non-cascade delete, make sure the finalizer is unset and then delete the app:
kubectl patch app APPNAME -p '{"metadata": {"finalizers": null}}' --type merge
kubectl delete app APPNAMETo perform a cascade delete set the finalizer, e.g. using kubectl patch:
kubectl patch app APPNAME -p '{"metadata": {"finalizers": ["resources-finalizer.argocd.argoproj.io"]}}' --type merge
kubectl delete app APPNAMEmetadata:
finalizers:
# The default behaviour is foreground cascading deletion
- resources-finalizer.argocd.argoproj.io
# Alternatively, you can use background cascading deletion
# - resources-finalizer.argocd.argoproj.io/backgroundWhen deleting an Application with this finalizer, the Argo CD application controller will perform a cascading delete of the Application's resources.
Adding the finalizer enables cascading deletes when implementing the App of Apps pattern.
The default propagation policy for cascading deletion is foreground cascading deletion.
Argo CD performs background cascading deletion when resources-finalizer.argocd.argoproj.io/background is set.
When you invoke argocd app delete with --cascade, the finalizer is added automatically.
You can set the propagation policy with --propagation-policy <foreground|background>.