id = "argocd" name = "Argo CD" homepage = "https://argo-cd.readthedocs.io" description = "Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes." executables = ["argocd"] [dotfiles] # https://argo-cd.readthedocs.io/en/latest/user-guide/commands/argocd/ documents # the CLI config as $XDG_CONFIG_HOME/argocd/config (default ~/.config/argocd/config); # the environment-variable reference also documents the legacy ~/.argocd path # when it already exists. [configHome] follows the XDG config variable and its # platform spelling; both paths are retained because the legacy file is still # read by the CLI. paths = [ "[configHome]/argocd/config", "~/.argocd/config", ] secret = [] side_effect = false # `util/localconfig` writes users with auth-token and refresh-token fields in # the YAML config (https://github.com/argoproj/argo-cd/blob/master/cmd/argocd/commands/login.go). # Both config locations need the same rule so a token is not copied in clear # from one of the supported locations. [[dotfiles.secret_paths]] file = ["[configHome]/argocd/config", "~/.argocd/config"] format = "yaml" match = { key_path = ["users.*.auth-token", "users.*.refresh-token"] } [commands] format = 1 label = "Argo CD" description = "Common Argo CD application jobs. The sync form leaves out multi-source, retry-backoff and server-side-diff tuning options." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand]] path = ["app", "sync"] label = "Sync an application" [[commands.subcommand.source]] id = "help" kind = "manual" url = "https://argo-cd.readthedocs.io/en/latest/user-guide/commands/argocd_app_sync/" evidence = """ argocd app sync [APPNAME... | -l selector | --project project-name] [flags] --apply-out-of-sync-only Sync only out-of-sync resources --async Do not wait for application to sync before continuing --dry-run Preview apply without affecting cluster --force Use a force apply --preview-changes Preview difference against the target and live state before syncing app and wait for user confirmation --prune Allow deleting unexpected resources --replace Use a kubectl create/replace instead apply --resource stringArray Sync only specific resources as GROUP:KIND:NAME or !GROUP:KIND:NAME. --revision string Sync to a specific revision. Preserves parameter overrides -l, --selector string Sync apps that match this label. --server-side Use server-side apply while syncing the application --timeout uint Time out after this many seconds """ [[commands.subcommand.field]] id = "apps" label = "Applications" type = "string" position = 0 multiple = true sources = ["help"] [[commands.subcommand.field]] id = "selector" label = "Label selector" description = "Sync apps matching this label instead of naming them." type = "string" option = ["--selector", "-l"] sources = ["help"] [[commands.subcommand.field]] id = "revision" label = "Revision" type = "string" option = ["--revision"] sources = ["help"] [[commands.subcommand.field]] id = "resource" label = "Resource" description = "GROUP:KIND:NAME, or !GROUP:KIND:NAME to exclude." type = "string" option = ["--resource"] multiple = true sources = ["help"] [[commands.subcommand.field]] id = "dry_run" label = "Dry run" type = "boolean" option = ["--dry-run"] sources = ["help"] [[commands.subcommand.field]] id = "preview_changes" label = "Preview changes" type = "boolean" option = ["--preview-changes"] sources = ["help"] [[commands.subcommand.field]] id = "prune" label = "Prune" description = "Allow deleting unexpected resources." type = "boolean" option = ["--prune"] effect = "delete" sources = ["help"] [[commands.subcommand.field]] id = "force" label = "Force apply" type = "boolean" option = ["--force"] effect = "overwrite" sources = ["help"] [[commands.subcommand.field]] id = "replace" label = "Replace instead of apply" type = "boolean" option = ["--replace"] effect = "overwrite" sources = ["help"] [[commands.subcommand.field]] id = "server_side" label = "Server-side apply" type = "boolean" option = ["--server-side"] sources = ["help"] [[commands.subcommand.field]] id = "apply_out_of_sync_only" label = "Only out-of-sync resources" type = "boolean" option = ["--apply-out-of-sync-only"] sources = ["help"] [[commands.subcommand.field]] id = "async" label = "Do not wait" type = "boolean" option = ["--async"] sources = ["help"] [[commands.subcommand.field]] id = "timeout" label = "Timeout (seconds)" type = "integer" option = ["--timeout"] sources = ["help"] [[commands.subcommand.task]] id = "sync" label = "Sync an app" fields = ["apps", "revision", "prune", "apply_out_of_sync_only", "async", "timeout"] required = ["apps"] [[commands.subcommand.task]] id = "preview" label = "Dry-run sync" set = { dry_run = [true] } fields = ["apps", "dry_run", "revision", "resource"] required = ["apps"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["apps", "selector", "revision", "dry_run", "prune", "async", "timeout"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["resource", "preview_changes", "force", "replace", "server_side", "apply_out_of_sync_only"]