jx: Boot fails with Helm 3
Summary
When using Helm 3, the jx boot
command fails. It should be specified as a requirement that only Helm 3 is supported and the error message should be clearer, at least until jx
is adapted to use it.
Steps to reproduce the behavior
Install Helm 3
jx boot
The output:
...
error: initializing helm with config: {jx true false true false }: failed to run 'helm init --client-only' command in directory '', output: 'Error: unknown flag: --client-only'
Expected behavior
jx boot
works
Actual behavior
jx boot
fails
Jx version
The output of jx version
is:
NAME VERSION
jx 2.0.979
Kubernetes cluster v1.13.11-gke.14
kubectl v1.16.2
git 2.20.1 (Apple Git-117)
Operating System Mac OS X 10.14.6 build 18G1012
Jenkins type
- Serverless Jenkins X Pipelines (Tekton + Prow)
- Classic Jenkins
Kubernetes cluster
Any
Operating system / Environment
MacOS
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Reactions: 19
- Comments: 18 (7 by maintainers)
Would be great to have Helm3 support sooner rather than later. It seems like it would solve some big problems with Helm2 due to tiller and JX’s home grown tillerless option, which has problems with custom CRDs and deploying to multiple namespaces.
Running into the same thing. Any temporary workarounds for this other than downgrading?
here’s the way you can use helm 3 with boot: https://jenkins-x.io/docs/labs/boot/
@ankitm123 @deanesmith although I found the proposal really great, I think that for now we should just be able to skip the helm init when using helm 3. This clearly a blocking issue for a lot of folks.
Hi @ankitm123, please review the aforementioned proposal document. I believe this is WIP right now and your feedback in comments could prove useful. There may be tasks where your development contributions could become quite valuable.
This is going to be investigated. We’re not ready to support Helm 3 so better handling is needed. Described here - https://github.com/jenkins-x/jx/issues/6181
The issues with a helm version 3.0.0 that I saw:
existing resource conflict: kind: XXX, namespace: XXX, name: XXX
If jx need to support version 2 and 3 of the helm, there could be an option to create 2 versions of helm_cli.go. Maybe extending Environment with helmVersion could help with defining the helm version or users could leverage helmMajorVersion in jx-requirement.yaml to adjust jx behavior. I think the best option could be to stick to the templating of charts.