ChartScan is a command-line tool for validating Helm charts before they ship. It walks a directory, finds every chart, renders the templates with the values you give it, and reports anything that fails to lint, fails to render, or references a value that is not defined.
- Recursively discovers Helm charts under any directory.
- Renders charts with one or more values files and
--setoverrides. - Detects undefined
.Valuesreferences in templates. - Four output formats:
pretty,json,yaml,junit. - YAML configuration with named environments (
test,staging,production, …). - Automatically loads
chartscan.yamlfrom the root of the current Git repository. - Renders charts to stdout or to a file via
chartscan template.
Download the binary for your platform from the Releases page:
| Platform | Asset |
|---|---|
| Linux x86_64 | chartscan-amd64 |
| Linux ARM64 | chartscan-arm64 |
| Linux x86 (32) | chartscan-386 |
Move it into your PATH:
chmod +x chartscan-amd64
sudo mv chartscan-amd64 /usr/local/bin/chartscango install github.com/Jaydee94/chartscan/cmd/chartscan@latestRequires Go 1.26 or newer (see go.mod).
- Helm on your
PATH. ChartScan shells out tohelm lint,helm templateandhelm dependency update.
Scan a single chart:
chartscan scan ./charts/my-chart -f values.yamlScan every chart under a directory and emit JUnit for CI:
chartscan scan ./charts -o junit > report.xmlRender a chart with helm template:
chartscan template ./charts/my-chart -f values.yaml -o rendered.yamlUse a config file:
chartscan scan -c chartscan.yamlWhen you run ChartScan inside a Git repository that has a chartscan.yaml at its root, the file is picked up automatically — no -c needed.
- Usage reference — every command, flag, and example.
- Configuration —
chartscan.yamlschema, environments, auto-discovery. - Contributing — local setup, tests, PR workflow.
Released under the terms of the LICENSE file in this repository.
