-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Authentication when retrieving a Helm chart value files via HTTP #7983
Comments
As for me, I have the same issue. I have to have separate values set for different environments. And yes, I need to set some auth on it. |
I was wondering whether this enhancement becomes superfluous once #2789 is implemented, which allows storing values file for Helm charts in a Git repository. This way, Argo CD would just use the credentials configured for the Git repository where the values file is stored. |
Indeed. Passing values via a Url is more like a workaround until 2789 gets implemented (just saw it was shifted by a release), but with no authent plus the need to regenerate the url so to "refresh" the app is a bit of a bricolage. |
I also saw some request for enhancement on appset side to add "function"... associated with a git file generator you could cover #2789 (Loosing the commit track though) |
@jannfis I would say that having #2789 could unblock us. But I don't think that would fill the gap for all our needs. let me elaborate why. As of today, we have a separate repository that contains all our environment files. This is because:
Since there is a templating mechanism and that value files are generated:
In some cases, we could store the value file flat in the git repository and that would already be a good start. Even if I wonder which way is the easiest for us:
|
This should be addressed with #10432 |
That's excellent news ! I suppose I just need to wait for 2.6 to confirm that (we just installed 2.5 in the last days). But in any case that will unblock us 😄 Thanks for the great support |
Hello @blakepettersson, I'm a bit confused as how to implement the initial example shared by @fabricepipart1a with multi-sources applications. Can you please share a sample implementation? As for the requirement: we want to version independently both the Helm chart and the value file(s). Any altermative solution is welcome. Thanks! |
Hi @gaspard-armagnat does this guide help? |
Hello @blakepettersson, in the initial example the value file is not from a git repository but from a DML / artifact repository. |
@gaspard-armagnat sure but in the example below that it shows an example using values files from a git repository: apiVersion: argoproj.io/v1alpha1
kind: Application
spec:
sources:
- repoURL: 'https://prometheus-community.github.io/helm-charts'
chart: prometheus
targetRevision: 15.7.1
helm:
valueFiles:
- $values/charts/prometheus/values.yaml
- repoURL: 'https://git.example.gom/org/value-files.git'
targetRevision: dev
ref: values |
@blakepettersson thanks for the example. But what if the value file is not in a git repository but only hosted on a web server? |
Summary
When a Argo CD
Application
orApplicationSet
references a value file via HTTP the file must be accessible without any authentication. It would be preferable to be able to use some authentication for the cases when the file is stored in a repository that is protected by authentication.Motivation
In some cases, we want to store the value files separately from the repository that generates the Helm chart. It is a different team that is in charge of maintaining the value files. Those value files pass a validation process before they are considered valid and published. As a consequence, we prefer to reference the value files by URL in Argo's
Application
orApplicationSet
.Please note that referencing the value file by URL is something that is not documented but actually works ;-)
For convenience, we store the value files of a chart next to the chart itself. The problem is that credentials are not managed to download the value files. This is something we would like to see addressed to be able to secure the access to the Helm chart repository.
Proposal
The best solution IMHO would be to reuse the same authentication mechanism that is used for the Helm chart repositories. In my case, the value files would be stored alongside the Chart. So the same mechanism could apply.
Regarding the syntax, I see two possibilities. Either we keep the same yaml syntax and Argo detects that it is an existing HTTP repository path and uses the relevant credentials to connect:
Or we define an alternative syntax
But I have the feeling that's more complex.
The text was updated successfully, but these errors were encountered: