LinuxCommandLibrary

argocd-app

Manage Argo CD applications

TLDR

List applications

$ argocd app list --output [json|yaml|wide]
copy

Get application details
$ argocd app get [app_name] --output [json|yaml|wide]
copy

Deploy application internally (to the same cluster that Argo CD is running in)
$ argocd app create [app_name] --repo [git_repo_url] --path [path/to/repo] --dest-server https://kubernetes.default.svc --dest-namespace [ns]
copy

Delete an application
$ argocd app delete [app_name]
copy

Enable application auto-sync
$ argocd app set [app_name] --sync-policy auto --auto-prune --self-heal
copy

Preview app synchronization without affecting cluster
$ argocd app sync [app_name] --dry-run --prune
copy

Show application deployment history
$ argocd app history [app_name] --output [wide|id]
copy

Rollback application to a previous deployed version by history ID (deleting unexpected resources)
$ argocd app rollback [app_name] [history_id] --prune
copy

SYNOPSIS

argocd app <ACTION> [<NAME>] [flags]

PARAMETERS

actions
    Show available actions for an application

create
    Create an application from Git repo

delete
    Delete an application or resources

diff
    Diff live state vs. Git or commit

get
    Display detailed application info

list
    List all or filtered applications

logs
    Fetch logs from app resources

manifests
    Print application manifests

patch
    Patch application specification

prune
    Prune extraneous cluster resources

refresh
    Refresh app state from cluster/Git

resources
    List child resources of app

rollback
    Rollback to previous sync revision

set
    Update application parameters

sync
    Sync app to desired Git state

terminate-op
    Stop a running sync/prune operation

wait
    Wait until app reaches desired state

DESCRIPTION

The argocd app command is a core subcommand of the Argo CD CLI, a declarative GitOps tool for Kubernetes continuous delivery. It enables users to create, manage, observe, and deploy Kubernetes applications defined as Argo CD Application custom resources.

Applications declare desired state by referencing Git repositories with manifests (YAML, Helm, Kustomize, Jsonnet), target clusters/namespaces, sync policies (auto/manual), and revision (branch/tag/SHA). Key operations include syncing to match Git state, health checks, drift detection via diffs, rollbacks, pruning unused resources, and operation termination.

Supports multi-tenancy via projects, resource hooks, ignore differences, and integrations with Argo Rollouts for progressive delivery or Argo Workflows. Ideal for teams practicing GitOps, ensuring cluster state matches repo declaratively. Requires Argo CD server; CLI authenticates via tokens, OIDC, or kubeconfig.

Usage streamlines CI/CD pipelines, reducing manual kubectl/helm deploys. (178 words)

CAVEATS

Requires Argo CD API server access and valid auth.
Actions like sync, prune, delete modify live clusters—use --dry-run first.
Not all flags apply to every action; check argocd app <action> --help.
Port-forwarding (--port-forward) needed if no direct server access.

KEY FLAGS

--repo <URL>: Git repository
--path <dir>: Path in repo
--dest-server <server>: Target K8s server
--dest-namespace <ns>: Target namespace
--project <name>: Argo project
--dry-run: Preview changes

EXAMPLES

argocd app create myapp --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --dest-server https://kubernetes.default.svc --dest-namespace default
argocd app sync myapp
argocd app get myapp --output yaml

INSTALL

brew install argocd (macOS)
curl -sSL -o argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64 && sudo mv argocd /usr/local/bin/
See argocd version.

HISTORY

Argo CD launched in 2018 by Intuit as open-source GitOps CD for Kubernetes. argocd app debuted in v0.1.0 with basic CRUD/sync. Evolved through v1.x (multi-source apps, Helm3) to v2.x (ApplicationSets, plugins, Rollouts integration). Active CNCF incubating project; CLI mirrors server features.

SEE ALSO

argocd(1), kubectl(1), helm(1), kustomize(1), git(1)

Copied to clipboard