Skip to content

Helm chart + values files from Git #2789

@evgf

Description

@evgf

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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,

Metadata

Metadata

Labels

component:coreIssues on core functionalities such as tracking, reconciling, managing resources, etc.enhancementNew feature or requesttype:usabilityEnhancement of an existing featureworkaroundThere's a workaround, might not be great, but exists

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions