ArgoCD › Applications

How do you handle resources that ArgoCD should create but not manage/delete?

Intermediate

Answer

Use sync-options annotations: `Prune=false` stops deletion, and for out-of-band or one-time resources you can annotate to skip dry-run or apply behavior. For resources you want created if absent but not overwritten, options like `Replace=false` and selective ignoreDifferences help. This balances declarative ownership with pragmatic exceptions.
metadata:
  annotations:
    argocd.argoproj.io/sync-options: Prune=false
Real-world example A shared ConfigMap seeded once is annotated Prune=false so removing it from Git doesn't delete the live data.

Common follow-ups: What sync-options exist? | When would you set Replace=false?