Overview
ApplicationSet is a Kubernetes Custom Resource that automatically generates Argo CD Applications based on defined generators and templates.Basic ApplicationSet
Generators
Generators provide parameters that are rendered into the Application template. ApplicationSet supports multiple generator types:List Generator
Provides a fixed list of parameters:Cluster Generator
Automatically discovers clusters registered in Argo CD:Git Generator
Generates Applications based on Git repository contents:- Directory-based
- File-based
SCM Provider Generator
Automatically discovers repositories from SCM providers (GitHub, GitLab, Bitbucket, etc.):Pull Request Generator
Creates temporary preview environments for pull requests:Matrix Generator
Generates the cartesian product of two generators:Merge Generator
Merges parameters from multiple generators:Template Configuration
The template defines the Application structure:Go Template Support
Enable Go templating for advanced use cases:Sync Policy
Control how ApplicationSet manages generated Applications:| Policy | Create | Update | Delete |
|---|---|---|---|
create-only | ✓ | ✗ | ✗ |
create-update | ✓ | ✓ | ✗ |
create-delete | ✓ | ✗ | ✓ |
sync (default) | ✓ | ✓ | ✓ |
Progressive Sync (Rollout Strategy)
Deploy Applications in a controlled sequence:Ignore Application Differences
Prevent ApplicationSet from overwriting certain Application fields:Preserved Fields
Preserve annotations and labels on generated Applications:Template Patch
Apply patches to the base template:Selectors
Filter generator output using label selectors:Multi-Tenancy with ApplicationSets
ApplicationSets enable self-service application creation:Status and Conditions
ApplicationSet maintains status information:Example Use Cases
Deploy to multiple clusters
Deploy to multiple clusters
Use the Cluster generator to deploy the same application to all clusters matching a label selector.
Monorepo multi-app deployment
Monorepo multi-app deployment
Use the Git directory generator to automatically create Applications for each directory in a repository.
PR preview environments
PR preview environments
Use the Pull Request generator to automatically create preview environments for each pull request.
Multi-tenant application management
Multi-tenant application management
Combine Git file generator with team configurations to allow teams to self-manage their applications.
Best Practices
Use specific generators
Choose the most appropriate generator for your use case to simplify configuration
Enable Go templates
Use
goTemplate: true for advanced templating capabilitiesImplement progressive sync
Use rollout strategies for production deployments
Set sync policies
Configure appropriate sync policies to control Application lifecycle
Next Steps
Learn about AppProjects for multi-tenancy and access control