argoproj/argo-cd
Applications
Argo CD ships as a single Go binary (cmd/main.go) that masquerades as eleven different programs depending on os.Args[0] (or the ARGOCD_BINARY_NAME env var). Each program has its own command package under cmd/. This section documents each one.
| Page | Binary | Source | Role |
|---|---|---|---|
| argocd CLI | argocd |
cmd/argocd/commands/ |
The user/CI CLI. |
| argocd-server | argocd-server |
cmd/argocd-server/commands/ + server/ |
API server, gRPC + REST + UI. |
| Application controller | argocd-application-controller |
cmd/argocd-application-controller/commands/ + controller/ |
The reconciliation loop. |
| Repo server | argocd-repo-server |
cmd/argocd-repo-server/commands/ + reposerver/ |
Renders manifests from sources. |
| ApplicationSet controller | argocd-applicationset-controller |
cmd/argocd-applicationset-controller/commands/ + applicationset/ |
Generates Apps from generators. |
| Commit server | argocd-commit-server |
cmd/argocd-commit-server/commands/ + commitserver/ |
Commits hydrated manifests to Git. |
| CMP server | argocd-cmp-server |
cmd/argocd-cmp-server/commands/ + cmpserver/ |
Sidecar Config Management Plugin gRPC server. |
| Notifications controller | argocd-notifications |
cmd/argocd-notification/commands/ + notification_controller/ |
Sends notifications. |
| Dex bridge | argocd-dex |
cmd/argocd-dex/commands/ |
OIDC gateway around dexidp/dex. |
| Helper binaries | argocd-git-ask-pass, argocd-k8s-auth |
cmd/argocd-git-ask-pass/, cmd/argocd-k8s-auth/ |
Tiny helpers wired into git/kubectl. |
graph LR
subgraph cmd[cmd/main.go]
Dispatcher{binaryName}
end
Dispatcher --> CLI[argocd]
Dispatcher --> Server[argocd-server]
Dispatcher --> AppCtrl[argocd-application-controller]
Dispatcher --> Repo[argocd-repo-server]
Dispatcher --> AppSet[argocd-applicationset-controller]
Dispatcher --> Commit[argocd-commit-server]
Dispatcher --> CMP[argocd-cmp-server]
Dispatcher --> Notif[argocd-notifications]
Dispatcher --> Dex[argocd-dex]
Dispatcher --> AskPass[argocd-git-ask-pass]
Dispatcher --> K8sAuth[argocd-k8s-auth]The dispatcher is in cmd/main.go:
switch binaryName {
case common.CommandCLI:
command = cli.NewCommand()
isArgocdCLI = true
case common.CommandServer:
command = apiserver.NewCommand()
case common.CommandApplicationController:
command = appcontroller.NewCommand()
case common.CommandRepoServer:
command = reposerver.NewCommand()
// ...
}The constants used as the case values live in common/. Container images set ARGOCD_BINARY_NAME (or symlink the entrypoint) so the same image reuses the binary as a different process.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.