Open-Source Wikis

/

Argo CD

/

Deployment

argoproj/argo-cd

Deployment

How Argo CD itself gets installed into a cluster, and how releases are cut.

Installation bundles

The repo ships several install bundles under manifests/. They are all generated artifacts; the source of truth is the Kustomize bases in manifests/base/.

Bundle What it installs
manifests/install.yaml Standard cluster-wide install (the file the README's quick-start uses).
manifests/namespace-install.yaml Namespace-scoped install (only manages Apps in its own namespace).
manifests/core-install.yaml "Core" install with no API server / UI / Dex — controller-only, for users running argocd app … in --core mode.
manifests/install-with-hydrator.yaml Same as install.yaml but adds the commit server and enables the manifest hydrator.
manifests/core-install-with-hydrator.yaml Core install + hydrator.
manifests/namespace-install-with-hydrator.yaml Namespace + hydrator.
manifests/cluster-install/ Kustomize overlay for cluster-wide install.
manifests/cluster-install-with-hydrator/ Cluster + hydrator overlay.
manifests/ha/ HA install with Redis Sentinel + multiple replicas.
manifests/dev-tilt/ Local-development overlay used by Tiltfile.

The CRDs live under manifests/crds/ and are referenced by every bundle.

Building the bundles

hack/update-manifests.sh (invoked by make manifests) re-renders all of the bundle YAMLs using kustomize build. Never edit the rendered YAMLs by hand — the next make manifests will overwrite them.

CRD size and --server-side

The Application CRD with all the annotations and OpenAPI schema is large enough that kubectl apply -f install.yaml fails the default client-side annotation size limit. The README directs users to use:

kubectl apply -n argocd --server-side --force-conflicts -f manifests/install.yaml

This limitation is also called out in manifests/install.yaml's README.

HA install

manifests/ha/ ships:

  • A Redis Sentinel cluster (HAProxy + Redis pods) instead of a single Redis Deployment.
  • Multiple replicas of the API server with anti-affinity rules.
  • Multiple replicas of the application controller with sharding flags.
  • Optional resource requests/limits sized for production.

Release pipeline

.github/workflows/release.yaml plus the helper workflows (init-release.yaml, image.yaml, image-reuse.yaml) cut releases from a tag. goreleaser (.goreleaser.yaml) builds the CLI cross-platform binaries. Container images are built via the image.yaml workflow and pushed to quay.io/argoproj/argocd and ghcr.io/argoproj/argocd.

Backports

Patches to active release branches go through the cherry-pick workflows (.github/workflows/cherry-pick.yml, cherry-pick-single.yml). Maintainers trigger them by commenting on a merged PR.

Helm chart

The official Helm chart lives in the sibling repo argoproj/argo-helm, not in this one. The chart consumes the same manifests/ artifacts.

Running locally

For dev, the Procfile + goreman start workflow is the fastest way (no real cluster needed for most paths). For cluster-style local development, Tiltfile brings everything up inside a k3d/kind cluster.

See also

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Deployment – Argo CD wiki | Factory