← Back to Helm Values Schema Check
helm lint
helm lint is Helm's own built-in validator. It checks chart structure,
required metadata, template syntax, and -- since Helm 3.5 -- a chart's values.yaml
against its values.schema.json, if the chart ships one. It needs the Helm binary
installed and, for full coverage, a chart directory it can actually render.
This checker validates only one relationship -- values.yaml against
values.schema.json -- with no Helm install required, and closes one specific gap:
most real schemas leave additionalProperties unset, so a field values.yaml
sets that the schema never mentions is not a schema violation and helm lint says
nothing about it. This checker flags it anyway, as informational, because that is very often exactly
what a typo looks like.
| What you are trying to do | Where to do it |
|---|---|
Check chart structure, required metadata (Chart.yaml), and template syntax. |
helm lint -- this checker does not read templates at all. |
| Render templates and check the actual output against a live or simulated cluster. | helm template / helm install --dry-run -- this checker never renders anything. |
Enforce a schema that already sets additionalProperties: false. |
Either -- both reject an undeclared field the same way once the schema forbids it. |
Catch a typo'd values.yaml key when the schema does not set additionalProperties: false (most charts). |
This checker -- helm lint is silent here by design, since JSON Schema treats an undeclared field as allowed unless told otherwise. |
Validate values.yaml against a schema with no Helm binary installed at all -- a script, a pre-commit hook, a CI job that should not depend on it. |
This checker -- node cli.mjs check values.yaml values.schema.json, nothing to install. |
| Get a pass/fail on the values/schema relationship alone, separate from template or chart-metadata errors muddying the result. | This checker -- it only ever reports on values.yaml vs. values.schema.json. |
These compose rather than compete. Keep helm lint (and helm template) as
the tool of record for chart structure and rendering -- this checker does not touch either. Add this
checker where you specifically want the undeclared-field case caught without depending on a
schema author having remembered additionalProperties: false, or where the Helm binary
is not available at all (a lightweight CI job, a pre-commit hook, a script bundled with a values-file
generator).
Use both — they overlap but are not the same check. helm lint validates chart structure and templates, and applies values.schema.json if the chart has one and Helm is installed. This checker validates only values.yaml against values.schema.json, with no Helm install required, and — the specific gap — flags a field values.yaml sets that the schema never mentions even when additionalProperties is not set to false, which is the common case and the one a typo actually produces. helm lint stays the tool of record for template rendering, chart metadata, and anything this checker does not claim to cover.
Yes, if the chart has one — Helm has supported values.schema.json validation since 3.5. What it enforces depends on the schema's own additionalProperties setting: with additionalProperties: false, an undeclared field is rejected exactly the way this checker's "high severity" finding reports it. Without that setting — the JSON Schema default, and what most real charts actually ship — an undeclared field is not a schema violation, so helm lint says nothing about it. This checker flags it anyway, as an informational finding, because in practice it is very often a typo rather than an intentional omission.
Two reasons. First, no Helm install: this is one dependency-free JavaScript file plus a browser page, useful in a script or CI job that should not depend on the Helm binary being present. Second, the undeclared-field gap above — if your chart's schema does not set additionalProperties: false (most don't), helm lint will not tell you about a typo'd values.yaml key, and this checker will. It does not replace helm lint's template rendering and chart-metadata checks; it is narrower and catches one specific thing more of the time.
No. This site is not affiliated with, endorsed by, or sponsored by the Helm project, the CNCF, or the Helm maintainers. Helm is named here only to describe what this checker is and is not, and to compare against helm lint's own values.schema.json support, described on Helm's own documentation site.
Only point either tool at a chart you own or are authorised to test. That rule is unchanged by which one you pick.