Open-Source Wikis

/

Argo CD

/

Applications

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.

Applications – Argo CD wiki | Factory