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=false
To perform a cascade delete:
argocd app delete APPNAME --cascade
or
argocd app delete APPNAME
To 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 APPNAME
To 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 APPNAME
metadata:
finalizers:
- resources-finalizer.argocd.argoproj.io
When 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.
When you invoke argocd app delete
with --cascade
, the finalizer is added automatically.