Helmfile: Helmfile fails to add chart repository in terms of helm-git plugin with helm 3.0.0 and helm-git 0.4.2

Created on 18 Nov 2019  路  4Comments  路  Source: roboll/helmfile

I am trying to migrate an EKS cluster (running Kubernetes 1.16) from Helm 2 (v2.16.1, tiller-less) to Helm 3 (3.0.). I'm running helm on a mac running latest Mojave (10.14.6)

I see that the correct version is installed and plugins present:

$ which helm
/usr/local/bin/helm

$ helm version
version.BuildInfo{Version:"v3.0.0", GitCommit:"e29ce2a54e96cd02ccfce88bee4f58bb6e2a28b6", GitTreeState:"clean", GoVersion:"go1.13.4"}

$ helm plugin list
NAME        VERSION     DESCRIPTION
2to3        0.2.0       migrate and cleanup Helm v2 configuration and releases in-place to Helm v3
diff        2.11.0+5    Preview helm upgrade changes as a diff
helm-git    0.4.2       Get non-packaged Charts directly from Git.
secrets     2.0.2       This plugin provides secrets values encryption for Helm charts secure storing
registry    0.7.0       This plugin provides app-registry client to Helm.
                        usage:
                          $ helm registry i...

My master helmfile is implemented in terms of multiple sub-helmfiles, the first of which gets its charts from a git repo.

helmDefaults:
  tillerless: true
  tillerNamespace: kube-system
  wait: true

repositories:
  - name: coresvcs-charts
    url: git+https://bitbucket.org/sambatv/coresvcs-charts@?ref=master

releases:
  - chart: coresvcs-charts/traefik
    name: traefik
    namespace: kube-system
    values:
      - image:
          tag: 2.0.5
        logs:
          loglevel: INFO
        service:
          externalTrafficPolicy: Cluster
        ssl:
          enabled: true
        acme:
          email: {{ .Environment.Values.traefik.acme.email }}
          staging: {{ .Environment.Values.traefik.acme.staging }}
        aws:
          credentials:
            access_key_id: {{ .Environment.Values.aws.credentials.master_account.access_key_id }}
            secret_access_key: {{ .Environment.Values.aws.credentials.master_account.secret_access_key }}
          region:      {{ .Environment.Values.aws.region }}

When I try to run a helmfile diff I see the following error:

$ helmfile diff
Adding repo coresvcs-charts git+https://bitbucket.org/sambatv/coresvcs-charts@?ref=master
in ./helmfile.yaml: in .helmfiles[0]: in helmfiles/cluster-utils.yaml: helm exited with status 1:
  Error: unknown flag: --home
  helm.go:76: [debug] unknown flag: --home
  Error: looks like "git+https://bitbucket.org/sambatv/coresvcs-charts@?ref=master" is not a valid chart repository or cannot be reached: plugin "helm-git" exited with error

I have no idea where the unknown flag --home mentioned in the error is coming from, as it does not exist in any of my project artifacts.

Does latest release of helmfile's helmfile diff command not work with Helm 3, or is the problem with the helm-diff or helm-git plugin?

Any and all theories or hypotheses are appreciated. Many thanks in advance!

Most helpful comment

With v0.5.0 everything works as expected. Thanks to everyone involved for fixing and releasing this so quickly!

All 4 comments

@mojochao Thanks for the detailed report!

As the error message seems to indicate that it is failing while Helmfile was running helm repo add which calls helm downloader plugins, I believe this is an issue in helm-git.

Probably helm-git does not support Helm 3 yet?
If so, would you mind opening an issue in the helm-git repo?

Related: https://github.com/aslafy-z/helm-git/issues/49
Fixed with: https://github.com/aslafy-z/helm-git/pull/50

Released with v0.5.0. Thanks for reporting :tada:

@aslafy-z You're so quick! Thanks for the fix 鈽猴笍

With v0.5.0 everything works as expected. Thanks to everyone involved for fixing and releasing this so quickly!

Was this page helpful?
0 / 5 - 0 ratings