logo

Manage More Clusters with Less Hassle, with Argo CD Application Sets

2021-10-13

Authors:   Jonathan West, Kshama Jain


Summary

Argo CD Application Sets can manage multiple Kubernetes clusters and deploy large numbers of applications from multiple repositories using templates and parameterization.
  • Argo CD and GitOps workflow are used to manage Kubernetes clusters with Git repositories as the source of truth.
  • Managing deployments of large numbers of applications/clusters with Argo CD requires complex custom scripting.
  • Argo CD ApplicationSet controller works alongside Argo CD to automatically generate Application deployments using templates and parameterization.
  • Application Sets can manage multiple Kubernetes clusters and deploy large numbers of applications from multiple repositories using templates and parameterization.
  • Application Sets are based on Argo CD applications and can be customized using data from external data sources.
Application Sets allow you to deploy from many different Git repositories to many different clusters. It starts with the Application Set custom resource, which has fields that correspond to the two major concepts of Application Sets. You specify a template and a generator, and the Application Set creates applications based on the template and generator combination you specified. This lets you manage all those deployment combinations using Argo CD applications within an Argo CD Application Set as a single unit. As you scale up to add new clusters, git repositories, or applications, those will automatically be detected by Application Sets and deployed to your cluster using the template. Application Sets are a factory for Argo CD applications, and they can be customized using data from external data sources.

Abstract

Many organizations have discovered the advantages of using Argo CD and a GitOps workflow to manage their Kubernetes clusters, with Git repositories as the source of truth for defining the desired application state, and Argo CD responsible for keeping the cluster synchronized with those repositories. However, managing deployments of large numbers of applications/clusters with Argo CD requires complex custom scripting to keep those Applications in sync. The newly released Argo CD ApplicationSet controller aims to solve this problem, by working alongside Argo CD to automatically generate Application deployments using templates and parameterization: manage multiple Kubernetes clusters at once, deploy large numbers of applications from multiples respositories, and more. Best of all, the entire deployment is managed by only a single ApplicationSet Kubernetes custom resource, which means no more juggling of numerous Argo CD Application resources to target those multiple clusters/repos.

Materials: