Skip to content

Lint Rules

The Helm lexicon provides 25 rules: 4 lint rules and 21 post-synth checks.

IDSeverityCategoryDescription
WHM001errorcorrectnessChart Metadata Required
WHM002warningsecurityValues Should Not Contain Bare Secrets
WHM003warningcorrectnessContainer Images Should Use Values References
WHM004warningcorrectnessHelmTpl Expression Has No Effect in Values Constructor

Post-synth checks validate the serialized output after the build pipeline completes.

IDDescription
WHM005Chart with sub-chart dependencies but no templates should deploy upstream chart directly
WHM101Chart.yaml must have required fields (apiVersion v2, name, version)
WHM102values.schema.json should be present when Values are non-empty
WHM103Go template syntax must be valid (balanced braces)
WHM104NOTES.txt should exist for application charts
WHM105_helpers.tpl must exist in templates/
WHM201K8s resources should include standard Helm labels
WHM202Hook weights should be defined when multiple hooks exist
WHM203Values entries should be documented via schema or comments
WHM204Chart dependencies should use semver ranges, not pinned versions
WHM301Application charts should include at least one Helm test
WHM302Container resources (limits/requests) should be set via values or defaults
WHM401Container images should not use :latest tag or omit tag entirely
WHM402Containers should set runAsNonRoot in security context
WHM403Containers should set readOnlyRootFilesystem in security context
WHM404Containers must not run in privileged mode
WHM405Resource specs should include cpu and memory in limits/requests
WHM406CRDs in crds/ directory are never upgraded or deleted by Helm
WHM407Secrets with inline data should use ExternalSecret or SealedSecret
WHM501Detect values keys that are defined but never referenced in templates
WHM502Detect deprecated or invalid Kubernetes API versions