-
Notifications
You must be signed in to change notification settings - Fork 6.4k
Description
Hello everyone,
we are trying to migrate our CD processes to ArgoCD and faced an issue where I really need some input. (Checked the official documentation and threads here but seems like there is no answer.)
Our typical scenario is:
- Helm charts available via Git or as a remote Hem Repo
- values-file or files, specific to the service & stage, available in Git.
What we want to achieve:
- When the values-file gets updated, ArgoCD synchronises the environment using the Helm chart + this values files.
Should be pretty common scenario, I believe.
Here are the issues that we're facing when implementing it using ArgoCD:
-
There is no way (or at least we did not find any) to use two Repos - one for the Chart and one for the values file. Although we only need to monitor the changes in the values-file(s) and not in the chart.
-
If we fully rely on Git and store the charts & values for all stages in a single repo, there is no way to separate the chart versioning per stage. So I cannot deploy the "UAT" stage using the chart v. 1.1.1 while retaining the "Prod" stage using the chart v. 1.0.0.
-
If we use separate Git branches to store charts + values for individual stages, there is no single Repo for the chart (all charts are stored per-stage) so no process of testing one chart version in Stage and then moving it to Prod.
-
If we rely on Helm support in ArgoCD 1.3 (looks promising) and pack the values files inside the Helm Repo, we need to re-index it every time the values file changes (Git push + WebHook + CI/CD re-index - exactly what we want to avoid when moving to ArgoCD). Also, the repository server seems not re-indexing the Helm-Repo with the existing "targetRevision" and we need to re-start it to get the latest Helm Repo downloaded. If we increment the Helm Repo version for every change of the values-file, we need to adjust the targetVersion field in the Application + this is sort of against the Helm philosophy to include & version the values-files in the Helm Repo.
Am I missing something in this picture?
How would / do you implement such a scenario?
Kind Regards,