ArgoCD › Multi-cluster

How do you deploy the same application to many clusters efficiently?

Advanced

Answer

Use an ApplicationSet with a cluster generator, which creates one Application per registered cluster from a single template, keeping them consistent and auto-adding new clusters. Combine with cluster labels to target subsets (e.g., only prod clusters) and per-cluster values for regional differences.
generators:
  - clusters:
      selector:
        matchLabels: { env: prod }
template:
  spec:
    destination: { server: '{{server}}', namespace: app }
Real-world example Adding a new prod cluster automatically gets the app deployed to it via the cluster-generator ApplicationSet.

Common follow-ups: How do you target only some clusters? | How are per-cluster values applied?