Skip to content
Latchkey

helmfile template: Render Manifests Locally

helmfile template renders every release to plain Kubernetes YAML locally, with no cluster connection required.

For offline validation, policy checks, or committing rendered manifests, template turns your helmfile into static YAML you can lint and scan.

What it does

helmfile template runs helm template for every release and prints the combined Kubernetes manifests. It does not contact the cluster, so it is safe in untrusted CI and useful for piping into validators like kubeconform or conftest.

Common usage

Terminal
helmfile -e production template > rendered.yaml
# render each release into its own directory
helmfile template --output-dir ./out --include-crds
# validate the rendered output
helmfile template | kubeconform -strict -summary

Options

FlagWhat it does
--output-dir <dir>Write each release to a separate directory
--include-crdsInclude CRDs from charts in the output
--skip-testsOmit chart test hooks from the output
--selector key=valueRender only matching releases

In CI

template needs no kubeconfig, so it runs in pull-request checks without cluster credentials. Pipe its output into a schema validator (kubeconform) or a policy engine (conftest) to catch bad manifests before they ever reach apply.

Common errors in CI

"Error: template: ... executing ... at <...>: nil pointer evaluating ..." is a chart templating bug, usually a value the chart expects that your values file omits. "Error: found in Chart.yaml, but missing in charts/ directory" means a dependency was not fetched; run helm dependency build or helmfile deps first.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →