-
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
Choose version of helm (between helm-2.x, helm-3.0.x, helm-3.1.x and so on...) #4058
Comments
Hello, However, there is no distinction between possible versions of For this issue, there are 2 points of view. 2/ you explicitely do not support it (too bad for all those who are still working with older versions of Kubernetes and have already deployed newer versions of Kubernetes : there is no version of Helm that both support K13 and K17 for example but there are people who are working with both versions). I guess you can close this issue 👎 Maybe you can add some other code than |
Hi, If I am not mistaken helm v2 and v3 is inserted to the Docker image where the respective versions of Helm is specified. Then in the code it is referred to with either 'helm' and 'helm2'. Maybe it could be an option for yourself to bake in another version of helm to the image and we could make the 'binaryName' field to be overridable ? I could fix that if it's a good enough solution, what do you all think and @alexmt ? (or I could miss the point completly :) ) The '--helm-version' flag could then instead be the 'binaryName' or keep it and just add a '--helm-binary' flag for overriding the binary. |
Hello,
If I understand your meaning, this can be a nice idea. However when you mention Here are my new thaughts (using your idea to override the binary name) : I would define
Note 1 : I'm not using Helm2. I won't be able to describe a use case for helm2. Do not forget it if you want to support it. Note 2 : With the ability to import my own binaries of helm (https://argoproj.github.io/argo-cd/operator-manual/custom_tools/#adding-tools-via-volume-mounts) I will probably use my tools and load as many subversions of helm3 as I need. So (thanks to PR #4111 ) the use case can now be simplified as : how do I specify the helm3 binary I want to use for a destination server ? |
I think it would be good to keep the ability to specify v2 or v3 as already done in #4111 because v2 or v3 does not share the same options on the cmdline. But we could introduce
The Something like: spec:
source:
helm:
version: v3
binary: helm3.0whatever
This would most likely also be supported in what i suggest above.
Look at my answer above :) |
LGTM |
@jessesuen or @alexmt if OK I can take this one if you think this sounds like a good solution? |
Hi, I have more or less implemented the ability to set the Helm binary to use. But I can see that there are (of course) differences between the different versions of Helm and not sure if it is feasible to be able to override each and every option that differs between versions. For instance, when testing with Helm 3.0.3, the current struct for Helm 3.2.0 in ArgoCD is not compatible with that Helm version as it is adding '--include-crds' as additional template arg and Helm 3.0.3 bails out. It is entirely possible to fix this, by adding an additional parameter/flag that handles the additional template args in some way so it works with other Helm versions than 3.2.0. I am just not sure if it is something that is needed by a lot a of people? It would be nice to get some of the maintainers view on how they look at supporting elder versions of Helm. |
@loxley - with the proposed spec, I'm assuming that you have to install or mount the specific binary to argocd using the custom tooling method? If the binary is not found, will it error or default to the installed version? I guess for each version you'd have to maintain a list of args that are allowed to be passed to the binary? Unless you can run the binary, parse the available args and only pass in ones that are allowed by that binary? I personally think that this type of feature might become a rabbit hole of potential issues. But it would really be worth having some statement of supported versions with ArgoCD eg k8s 1.X to 1.XX, helm v2.X & v3.X. kustomise etc. |
Hi, I'm facing currently the issue that I would need to specify Helm version 3.7.2 to be compatible with the oci repository we are using. With newer Helm versions the indexing of tags changed and breaks the helm dependency build (update). For other installation not depending on an oci repository we would like to use the latest Helm version. |
Problem
The following use-case is not exactly my use-case, but I'm trying to define it as much possible as it can.
I have 5 clusters K8S :
I have 2 helm charts to deploy :
hc1
is defined withapiversion: v1
hc2
is defined withapiversion: v2
(requires helm version 3.x)The helm version I'm running with ArgoCD is 3.2.0 (from the argoproj/argocd:v1.6.1 image)
What do I expect
What do I expect ? And what can I do with the
helm
CLI ?hc1
only because helm-3.x is needed forhc2
hc1
andhc2
.What do I have with ArgoCD 1.6 ?
hc1
with success. (and not thehc2
but that is normal, see above)hc2
. And forhc1
it will require Tiller and Tiller is not installed on that cluster !hc1
. But failed forhc2
for the same reason as above with cluster-k13h3.hc2
with success. But what happens withhc1
? Because ofapiversion: v1
it will require Tiller and Tiller is not installed on that cluster !hc2
with success. But what happens withhc1
? Because ofapiversion: v1
it will require Tiller and Tiller is not installed on that cluster !Notice that I have added cluster-k15 and cluster-k17 that have the same behaviour here. But if you prefer a binary helm-3.0.x to make it work on cluster-k13h3 and cluster-k13h23, it will work on cluster-k15 and fail on cluster-k17
More doc :
Question
How can we specify the version of helm we want to use ?
This issue may be linked to issue #3872
The text was updated successfully, but these errors were encountered: