-
Notifications
You must be signed in to change notification settings - Fork 558
Description
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