Skip to content

helmfile template fails when requirements.yaml specifies local path #1341

@sirianni

Description

@sirianni

We are unable to run several helmfile commands (hemfile template, helmfile lint). These commands all error with:

ARGS:
  0: helm (4 bytes)
  1: --kube-context (14 bytes)
  2: k8s-mz-monitoring-eks (21 bytes)
  3: dependency (10 bytes)
  4: build (5 bytes)
  5: /tmp/214786334/... (99 bytes)

ERROR:
  exit status 1

EXIT STATUS
  1

STDERR:
  Error: directory /tmp/214786334/.../... not found

We have a monorepo and are using a relative path in requirements.yaml. The issue appears to be that helmfile is downloading the chart from the repo into /tmp and running helm dependency build inside that directory. This is unnecessary since our chart already includes the subcharts in the /charts directory (via the --dependency-update option to helm package. Our chart otherwise works fine with helm so this seems to be a quirk of how helmfile operates.

Why can't helmfile template just run helm template? Why does it need to download the chart first and run helm dependency build in a temp dir?

I can't find any references other than this but I think it is a best practice to include all requirements in the chart TGZ package. If so, then running helm dependency build is unnecessary.

EDIT: I see that it needs to download the chart first because helm template (with helm 2) is not capable of operating against remote charts (see helm/helm#4401). Is the dependency build needed or can this be skipped if the subcharts are already packaged in the ./charts directory?

Seems similar to #1002

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions