Francisco Giraldo

Argo CD Cheat Sheet

Published Sun, 11 Oct 2026 00:00:00 GMT 8 min read

Quick reference for everyday Argo CD commands.

Login & Context

argocd version --client              # CLI version
argocd login <server>
argocd login <server> --sso
argocd login <server> --username admin --grpc-web
argocd login localhost:8080 --username admin --password <password> --insecure
argocd login --core                  # Skip the API server
argocd relogin                       # Refresh an expired token
argocd account get-user-info
argocd context                       # List Argo CD contexts
argocd context <name>                # Switch context
argocd logout <server>

Initial admin password after a fresh install:

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
kubectl -n argocd port-forward svc/argocd-server 8080:443

Applications

argocd app list
argocd app list -o wide
argocd app list -o name
argocd app list --project <project>
argocd app list -l env=prod
argocd app get <app>
argocd app get <app> -o yaml
argocd app get <app> --refresh           # Refresh app data
argocd app get <app> --hard-refresh      # Also refresh the manifest cache
argocd app get <app> --show-operation
argocd app resources <app>
argocd app manifests <app>
argocd app logs <app>
argocd app logs <app> -f
argocd app logs <app> --tail 100
argocd app wait <app>                    # Wait until synced and healthy
argocd app wait <app> --timeout 300

Sync

argocd app sync <app>
argocd app sync <app> --prune            # Delete resources removed from Git
argocd app sync <app> --dry-run
argocd app sync <app> --preview-changes
argocd app sync <app> --force
argocd app sync <app> --async
argocd app sync <app> --revision <git-sha-or-branch>
argocd app sync <app> --apply-out-of-sync-only
argocd app sync <app> --local ./manifests
argocd app sync <app> --timeout 180
argocd app terminate-op <app>            # Stop a running sync

Sync one resource. Format is GROUP:KIND:NAME. Leave group empty for core resources.

argocd app sync <app> --resource :Service:<name>
argocd app sync <app> --resource apps:Deployment:<name>
argocd app sync -l app.kubernetes.io/instance=<parent-app>
Flag Use
--prune Remove resources no longer in Git
--dry-run Preview the apply
--force Force apply, replace fields normally ignored
--replace kubectl replace instead of apply
--server-side Server-side apply
--local ./path Sync from a local directory, skip Git
--revision Sync a specific commit, tag, or branch

Diff, History & Rollback

argocd app diff <app>
argocd app diff <app> --local ./manifests
argocd app history <app>
argocd app rollback <app>               # Previous successful deploy
argocd app rollback <app> <history-id>

Create & Update

argocd app create <app> \
  --repo https://github.com/org/repo.git \
  --path manifests \
  --dest-server https://kubernetes.default.svc \
  --dest-namespace <namespace> \
  --revision main

argocd app create <app> \
  --repo https://github.com/org/repo.git \
  --helm-chart my-chart \
  --revision 1.2.3 \
  --dest-server https://kubernetes.default.svc \
  --dest-namespace <namespace>

argocd app set <app> --revision main
argocd app set <app> --path manifests
argocd app set <app> --sync-policy automated --auto-prune --self-heal
argocd app set <app> --sync-policy manual
argocd app set <app> --sync-option CreateNamespace=true
argocd app set <app> -p image.tag=1.4.0
argocd app edit <app>                   # Edit the Application manifest

Delete

argocd app delete <app>
argocd app delete <app> --cascade --yes # Also delete managed resources

Repositories

argocd repo list
argocd repo add https://github.com/org/repo.git
argocd repo add https://github.com/org/private.git --username <user> --password <token>
argocd repo add git@github.com:org/repo.git --ssh-private-key-path ~/.ssh/id_rsa
argocd repo add https://charts.example.com --type helm --name my-charts
argocd repo get https://github.com/org/repo.git
argocd repo rm https://github.com/org/repo.git

Clusters

argocd cluster list
argocd cluster add <kube-context>
argocd cluster add <kube-context> --name prod --yes
argocd cluster get <server-or-name>
argocd cluster rm <server-or-name>

In-cluster destination used by most apps:

https://kubernetes.default.svc

Projects

argocd proj list
argocd proj get <project>
argocd proj create <project>
argocd proj add-source <project> https://github.com/org/repo.git
argocd proj add-destination <project> https://kubernetes.default.svc <namespace>
argocd proj add-destination <project> https://kubernetes.default.svc '*'

ApplicationSets

argocd appset list
argocd appset get <name>
argocd appset create applicationset.yaml
argocd appset delete <name>

Application Manifest

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: my-app
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/org/repo.git
    targetRevision: main
    path: manifests
  destination:
    server: https://kubernetes.default.svc
    namespace: my-app
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
      - CreateNamespace=true
Sync option Effect
CreateNamespace=true Create the destination namespace
PruneLast=true Prune only after the rest of the sync succeeds
ApplyOutOfSyncOnly=true Skip resources that are already synced
ServerSideApply=true Use server-side apply
Replace=true Replace resources instead of applying a patch

kubectl Shortcuts

kubectl get applications -n argocd
kubectl get applicationsets -n argocd
kubectl get appprojects -n argocd
kubectl get applications -n argocd -o wide
kubectl describe application <app> -n argocd
kubectl delete application <app> -n argocd
kubectl logs -n argocd deploy/argocd-server
kubectl logs -n argocd deploy/argocd-repo-server
kubectl logs -n argocd statefulset/argocd-application-controller

Common Debugging Flow

# 1. Is it out of sync or unhealthy?
argocd app list
argocd app get <app> --refresh

# 2. What would change?
argocd app diff <app>

# 3. Deploy, and remove drift
argocd app sync <app> --prune
argocd app wait <app>

# 4. Why is a resource failing?
argocd app resources <app>
argocd app logs <app> --tail 100
kubectl describe application <app> -n argocd

# 5. Recover
argocd app history <app>
argocd app rollback <app>
argocd app terminate-op <app>

Useful Links




Keep reading other of my blog posts!