~/ nmadiraju.com Amazon EKS · GitOps at fleet scale
arrow_back Back to nmadiraju
Decision Tool · Delivery and operations

GitOps at Fleet Scale: Hundreds of EKS Clusters Without Losing Control

An Argo CD hub, Flux in every cluster, or both? Answer five questions to see which fits, then follow one app's releases across 320 clusters.

Fleet GitOps in 60 seconds

  • GitOps: Git holds what each cluster should run, and a controller keeps the cluster matching it.
  • Push or pull. An Argo CD hub pushes to every cluster: one dashboard, shared outages. Flux in each cluster pulls, even with no way in.
  • Keep the hub healthy. Run several controller replicas, and split instances before the UI slows, often around 1,500 apps (one per app per cluster).
  • Or let AWS run it. The EKS Capability for Argo CD runs the hub and reaches private and cross-account EKS clusters.
  • The hybrid needs a hard line. Flux for add-ons and policies, Argo CD for apps, in separate repos, so no resource has two owners.

1Make the call

GitOps for a fleet of EKS clusters: Git, Terraform, an Argo CD hub and four groups of spoke clusters Left, Git with repos fleet-infra and fleet-apps, and Terraform. Middle, the hub cluster with the Argo CD application controller, ApplicationSet checkout, the cluster Secrets and the Argo CD UI. Right, four groups of spoke clusters (canary, wave-1, wave-2 and air-gapped edge stores), each with Deployment checkout and Flux controllers. The hub pushes to each spoke's API; Flux pulls from Git inside each cluster. GIT · DESIRED STATE repo fleet-infra clusters/, infrastructure/ repo fleet-apps Terraform creates each spoke cluster, then writes its cluster Secret EKS CLUSTER hub · argocd Argo CD application controller syncs, self-heals, prunes ApplicationSet checkout cluster generator: 1 App per Secret Cluster Secrets labels: tier, env · from Terraform Argo CD UI and its server SPOKES tier=canary · 3 EKS clusters Deployment checkout Flux controllers SPOKES tier=wave-1 · 120 EKS clusters Deployment checkout Flux controllers SPOKES tier=wave-2 · 157 EKS clusters Deployment checkout Flux controllers EDGE STORES · 40 non-EKS clusters · air-gapped Deployment checkout Flux controllers

    2Choose or diagnose: check yourself

    Check yourself