Argo CD GitOps repo design options

  • Argo CD is flexible about how you organize your Git repos
  • Assume YAML is in a different repo from app code (a 12-Factor principle) and many other reasons
  • Repo design often/should reflect org structure (Conway’s Law)

Minimal: Shared ownership

  • 1 ring repo to rule them all: Kustomize + Helm + Argo CD App + Argo CD Config

Scalable: Split app configs from Argo CD configs 👈 my favorite

  • 1 Kustomize/Helm repo per solution: (Dev and DevOps share ownership)
  • 1 Argo CD repo: Argo CD App + Argo CD Config (DevOps or Ops team owns)
  • Optional: involves DevOps/Ops PR approval when first adding an app to Argo CD (since they own repo)
  • ApplicationSet now enables Ops cluster control while Devs add/remove apps at will
  • Day to day, Devs can PR to their own Kustomize/Helm repos w/o Ops involvement
slide 121 (click 0 of 11)