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.
2 Answers
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.
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!
Related Questions
How To: Running Codex CLI on Windows with Azure OpenAI
Set Wordpress Featured Image Using Javascript
How To Fix PHP Random Being The Same
Why no WebP Support with Wordpress
Replace Wordpress Cron With Linux Cron
Customize Yoast Canonical URL Programmatically