Helmfile: feat: Experimental Helm v3 mode

Created on 10 Jun 2019  路  17Comments  路  Source: roboll/helmfile

Extracted from https://github.com/roboll/helmfile/issues/122#issuecomment-499310848

I believe we need it to start real-world testing with helm 3.

Most helpful comment

I appreciate the great work you're doing, @mumoshu! Will definitely give this a try, given that we're currently using helmfile in tillerless mode, but we experience occasional freezes (timeouts when doing a sync)... probably has something to do with the helm-tiller plugin. We hope helmv3 will prove to be more robust over the time.

By the way, I wrote an article with our experience in using helmfile (we're using it at Adobe for a few projects) and the feedback has been great (both internally and externally). Hope it leads to an increased adoption of helmfile so keep up the good work. The article is on medium if you're curious - https://itnext.io/setup-your-kubernetes-cluster-with-helmfile-809828bc0a9f

All 17 comments

Would love to see. @mumoshu how involved is this to implement?

I guess you already know but beta.2 is available :)

beta.3 available

841 is the first implementation for this!

Assuming you have helm v3 binary ~/bin/helm3b3, try it like:

HELMFILE_HELM3=1 helmfile --log-level=debug --helm-binary ~/bin/helm3b3 sync

// You don't need --helm-binary ~/bin/helm3b3 if you've fully migrated to helm v3 i.e. just running helm runs helm 3.

build, list, sync, lint, template, test, repos, charts, status, delete, destroy should just work. diff and apply won't work as they both use helm-diff which doesn't support helm 3 yet.

deps is tested but not working at least for stable/mysql chart. Any clue to this?

Updating dependency /var/folders/lx/53d8_kgd26vf5_drrg89wkvc0000gp/T/800498063
exec: /Users/mumoshu/bin/helm3b3 dependency update /var/folders/lx/53d8_kgd26vf5_drrg89wkvc0000gp/T/800498063
exec: /Users/mumoshu/bin/helm3b3 dependency update /var/folders/lx/53d8_kgd26vf5_drrg89wkvc0000gp/T/800498063:
err: unable to update deps: unable to resolve 1 deps: helm3b3 exited with status 1:
  Error: validation: chart.metadata.version is required
in ./helmfile.yaml: unable to update deps: unable to resolve 1 deps: helm3b3 exited with status 1:
  Error: validation: chart.metadata.version is required

841 has been released as v0.83.0

helm-3.0.0-beta.3 has a regression that makes helm diff upgrade --detailed-exitcode unable to work correctly https://github.com/helm/helm/issues/6384

Update: The fix on helm v3 is in-progress at https://github.com/helm/helm/pull/6385

Update: https://github.com/helm/helm/pull/6385 has been merged

The minimal change on helm-diff is at https://github.com/databus23/helm-diff/pull/149. Clone it and run HELM_HOME=$HOME/Library/helm make install in the project root for testing with helm3 and #841.

Note that the plugins directory has changed from $HOME/.helm/plugins to $HOME/Library/helm/plugins in Helm 3 which requires you to set HELM_HOME=$HOME/Library/helm.

Also try running helm env w/ Helm 3 to see other additional Helm envvars that helps you understand where various confgiuration directories are located at.

Probably we may need to set api version in the temporary Chart.yaml generated in helmfile deps to v1 once helm v3 becomes generally available: https://github.com/helm/helm/issues/5907

helmfile deps should work w/ helm 3 after #842

Two things has been addressed in the PR:

  1. Moved the contents of requirements.yaml to Chart.yaml
  2. requirements.lock is now Chart.lock

I appreciate the great work you're doing, @mumoshu! Will definitely give this a try, given that we're currently using helmfile in tillerless mode, but we experience occasional freezes (timeouts when doing a sync)... probably has something to do with the helm-tiller plugin. We hope helmv3 will prove to be more robust over the time.

By the way, I wrote an article with our experience in using helmfile (we're using it at Adobe for a few projects) and the feedback has been great (both internally and externally). Hope it leads to an increased adoption of helmfile so keep up the good work. The article is on medium if you're curious - https://itnext.io/setup-your-kubernetes-cluster-with-helmfile-809828bc0a9f

What is the current status of helm 3 support?

@cdunford It's fully supported by default. Just provide a helm binary of v3 and it should just work. Please note though that some charts are broken in terms of helm v3 compatibility as revealed in #1000

@cdunford It's fully supported by default. Just provide a helm binary of v3 and it should just work. Please note though that some charts are broken in terms of helm v3 compatibility as revealed in #1000

how about things like tiller namespace in helmfile? could you provide a working example of helmfile for helm 3, please?

Lots of example Helm Charts in the official Helm Chart repo at https://github.com/helm/charts/tree/master/stable. Also, the helmfile readme has examples: https://github.com/roboll/helmfile

from readme:
#default values to set for args along with dedicated keys that can be set by contributers, cli args take precedence over these helmDefaults: tillerNamespace: tiller-namespace #dedicated default key for tiller-namespace tillerless: false #dedicated default key for tillerless

is it also valid for helm3?

Tiller doesn't exist in Helm 3 so probably don't use any of these if you are using Helm 3.

Thanks! Yes, that's correct. tiller-namespace is ignored for Helmfile + Helm 3.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ppawiggers picture ppawiggers  路  3Comments

mumoshu picture mumoshu  路  4Comments

GoldenMouse picture GoldenMouse  路  3Comments

aslafy-z picture aslafy-z  路  4Comments

sstarcher picture sstarcher  路  3Comments