How to Customize ArgoCD ApplicationSet for Different App Settings?
Asked by
UniqueUsername42
I'm working with an ArgoCD ApplicationSet that generates application definitions based on a Git repository structure. Essentially, I've got a directory setup for different environments like dev, test, and prod, with each environment containing various applications. So far, I've managed to get it working well with a basic setup. However, I'm facing a challenge: some applications need different settings within the Application. For instance, the syncPolicy might differ where some apps want pruning and others don't. Additionally, some might require ServerSideApply while others prefer ClientSideApply. I'm exploring options here. Could adding an .app-config.yaml file to each app's directory be the solution? I've done some research but I'm unsure if that approach would work, especially in conjunction with a merge generator along with Git and plugins.
Answers
We do something similar! We have one ApplicationSet that uses a Git generator to look for "appconfig.yaml" files. These files contain the specific customizations for each application, which makes it easy to adjust things like the sync policies. I can share more details if you're interested!
Reply to this answer
I actually use ApplicationSet similarly to what you've described. My approach is to utilize an umbrella Helm chart with a values file that contains all the necessary overrides for deployments. This way, you won't need to modify the ApplicationSet, and ArgoCD can automatically detect the Helm chart settings. You can check out examples of my setup in this GitHub repo: https://github.com/myspotontheweb/argocd-workloads-demo?tab=readme-ov-file#application-configuration.
Reply to this answer
Add your answer
Answers are reviewed before publication.
Related Discussions