GitOps made simple: Using Argo CD ApplicationSet to deploy apps across clusters

Deploying a single application to one Kubernetes cluster is straightforward. The friction appears when you need to deploy many apps to many clusters, or keep a monorepo of application definitions synchronized across environments. Argo CD’s ApplicationSet controller simplifies that problem by turning a single declarative resource into many Argo CD Application objects, using templating and data-driven “generators” to automate the work. This article explains what ApplicationSet does, how its main generators work, and shows a compact example (Git + Cluster via a Matrix generator) so you can see the pattern in a single glance.

What problem ApplicationSet solves

What an ApplicationSet is (conceptually)

Generators: the data sources that drive creation Generators produce parameter dictionaries that feed into the Application template. Common generator types include:

There are also SCM-provider, pull-request, merge, plugin, and cluster-decision-resource generators for advanced automation and integrations. The generator model is the key idea: separate parameter discovery from template rendering so a single declarative spec can produce many Applications. (argo-cd.readthedocs.io)

A compact example: Git directory + Cluster with Matrix Below is a minimal, focused ApplicationSet that demonstrates the common pattern: discover application folders in Git, enumerate clusters known to Argo CD, and generate an Application per (app, cluster) pair.

apiVersion: argoproj.io/v1alpha1 kind: ApplicationSet metadata: name: apps-to-clusters namespace: argocd spec: goTemplate: true generators:

Key notes about the snippet (what the template fields mean)

How ApplicationSet interacts with Argo CD (what it does and doesn’t do)

Practical considerations and cautions

Observability and troubleshooting (concise)

When ApplicationSet makes sense (summary of fit)

Final note (short) ApplicationSet is a natural extension to Argo CD’s GitOps model: it removes repetitive Application definition work and maps parameter sources (Git, clusters, SCM) into Argo CD Applications using a declarative, templated approach. Understanding the available generators (List, Cluster, Git, Matrix, etc.) and how the controller integrates with Argo CD clarifies when and why to adopt ApplicationSet for multi-app, multi-cluster deployment scenarios. (argo-cd.readthedocs.io)

References