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
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 -summaryOptions
| Flag | What it does |
|---|---|
| --output-dir <dir> | Write each release to a separate directory |
| --include-crds | Include CRDs from charts in the output |
| --skip-tests | Omit chart test hooks from the output |
| --selector key=value | Render 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.