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]
paths = [
"[configHome]/argocd/config",
"~/.argocd/config",
]
secret = []
side_effect = false
[[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"]