How to determine which files are ignored by a .helmignore file?
-
I'm installing a local Helm chart; however, I keep getting an error
Error: UPGRADE FAILED: create: failed to create: Request entity too large: limit is 3145728
. From searching other SO/Stack Exchange questions, this is typically caused by unnecessary files mistakenly included in the chart. The way to resolve this, is to add those entries to a https://helm.sh/docs/chart_template_guide/helm_ignore_file/ .My chart has a
.helmignore
file, which should be excluding all unnecessary artifacts within my chart, but I'm still getting the error. So my thought is that my.helmignore
entries aren't quite targeting the files that they should be.I've tried running them with the
--debug
flag (didn't show anything more interesting):upgrade.go:139: [debug] preparing upgrade for chartname upgrade.go:520: [debug] copying values from chartname (v11) to new release. upgrade.go:147: [debug] performing update for chartname upgrade.go:319: [debug] creating upgraded release for chartname Error: UPGRADE FAILED: create: failed to create: Request entity too large: limit is 3145728 helm.go:88: [debug] Request entity too large: limit is 3145728ffff create: failed to create helm.sh/helm/v3/pkg/storage/driver.(*Secrets).Create helm.sh/helm/v3/pkg/storage/driver/secrets.go:164 helm.sh/helm/v3/pkg/storage.(*Storage).Create helm.sh/helm/v3/pkg/storage/storage.go:69 helm.sh/helm/v3/pkg/action.(*Upgrade).performUpgrade helm.sh/helm/v3/pkg/action/upgrade.go:320 helm.sh/helm/v3/pkg/action.(*Upgrade).RunWithContext helm.sh/helm/v3/pkg/action/upgrade.go:148 main.newUpgradeCmd.func2 helm.sh/helm/v3/cmd/helm/upgrade.go:200 github.com/spf13/cobra.(*Command).execute github.com/spf13/cobra@v1.2.1/command.go:856 github.com/spf13/cobra.(*Command).ExecuteC github.com/spf13/cobra@v1.2.1/command.go:974 github.com/spf13/cobra.(*Command).Execute github.com/spf13/cobra@v1.2.1/command.go:902 main.main helm.sh/helm/v3/cmd/helm/helm.go:87 runtime.main runtime/proc.go:255 runtime.goexit runtime/asm_arm64.s:1133 UPGRADE FAILED main.newUpgradeCmd.func2 helm.sh/helm/v3/cmd/helm/upgrade.go:202 github.com/spf13/cobra.(*Command).execute github.com/spf13/cobra@v1.2.1/command.go:856 github.com/spf13/cobra.(*Command).ExecuteC github.com/spf13/cobra@v1.2.1/command.go:974 github.com/spf13/cobra.(*Command).Execute github.com/spf13/cobra@v1.2.1/command.go:902 main.main helm.sh/helm/v3/cmd/helm/helm.go:87 runtime.main runtime/proc.go:255 runtime.goexit runtime/asm_arm64.s:1133
I also tried it with the
--dry-run
flag and the chart succeeded. So at this point I'm not sure how to find what's bloating my chart.How can I tell which files are actually getting ignored (or which are included) when I run a
helm install
orhelm upgrade
?
-
Figured out a way, but it might not be the most elegant.
First, we render the chart locally and then use
tree
to print out the subdirectories with their sizes in a human-readable format.helm template . --output-dir=file-size-test tree --du -h file-size-test
This produces an output similar to:
[340M] testing123 └── [340M] chart_name ├── [ 91K] charts │ ├── [ 58K] sub-chart │ │ └── [ 58K] templates │ │ ├── [1.3K] deployment.yaml │ │ ├── [ 411] config.yaml │ │ ├── [ 579] service.yaml │ │ └── [ 359] serviceaccount.yaml └── [340M] templates ├── [ 68M] deployment.yaml ├── [136M] config1.yaml ├── [136M] config2.yaml └── [1.3K] ingress.yaml
So now I've found that the issue seems to be the massive
config1.yaml
andconfig2.yaml
files.While this doesn't exactly answer the question of how to find which have been ignored, it at least points to which might not have been ignored.