Multi-Cluster GitOps with Argo CD and Crossplane: Application Lifecycle at Scale

The Multi-Cluster Coordination Problem

As organizations adopt Kubernetes at scale, a single cluster rarely suffices. Teams run separate clusters per environment (staging, production), per region (EU, US, APAC), or per compliance boundary (PCI, HIPAA). Managing applications and infrastructure independently across these clusters leads to configuration drift, slow rollouts, and operational toil.

GitOps addresses this by treating the desired state of systems as version-controlled configuration. Multi-cluster GitOps extends that model so one control plane or one Git repository coordinates delivery across many clusters.

Argo CD for Application Delivery

Argo CD implements the application layer of GitOps. It watches Git repositories containing Kubernetes manifests, Helm charts, or Kustomize overlays, and continuously reconciles target clusters to match. Key capabilities include:

  • ApplicationSets: Generate Argo CD Applications from templates, enabling one definition to deploy the same microservice to dozens of clusters.
  • App-of-apps pattern: Parent applications reference child applications, organizing delivery by environment, team, or region.
  • Sync waves and hooks: Order resource creation (namespaces before deployments, database migrations before app pods).

Clusters are onboarded as Argo CD managed destinations via cluster secrets or service accounts.

Crossplane for Infrastructure Provisioning

While Argo CD manages Kubernetes-native resources, Crossplane extends Kubernetes APIs to provision cloud infrastructure: databases, object storage, DNS records, VPCs, and IAM roles. Crossplane treats infrastructure as Kubernetes resources via Custom Resource Definitions (CRDs) and providers.

In a multi-cluster GitOps flow, Crossplane can run in a management cluster and provision resources into workload clusters, while Argo CD deploys applications that consume those resources. This keeps both infrastructure and application lifecycle under version control.

Operational Tradeoffs

Concern Single-Cluster GitOps Multi-Cluster GitOps
Control plane blast radius One cluster, one blast radius Management cluster outage affects coordination
Configuration drift Easier to detect Requires centralized drift detection across clusters
Secret management Cluster-scoped secrets Requires secret syncing or external secret stores
Rollout velocity Fast, simple Staged, region-aware promotions

The right pattern depends on team size, compliance requirements, and failure-domain tolerance. Start with App-of-apps for a few clusters, then adopt ApplicationSets as the fleet grows.

References