Skip to main content

Helm Chart Validator

Validate Helm chart templates and values.yaml without the Helm CLI. Checks Go template syntax, brace balance, parameterization, resource constraints, and Kubernetes best practices. Nothing is sent to any server — runs entirely in your browser.

✓ Template brace balance ✓ Parameterization checks ✓ values.yaml best practices

Frequently Asked Questions

What is the difference between Helm chart validation and linting?▼

Helm linting (helm lint) checks Chart.yaml structure and basic YAML syntax. Validation goes deeper: it checks template logic, parameterization best practices, brace balance in Go templates, and values.yaml structural correctness. This tool helps you catch issues before running helm template or helm install, without needing the Helm CLI installed.

What are Helm template directives?▼

Helm templates use Go's text/template syntax with double curly braces: {{ .Values.myValue }}, {{ include "chart.name" . }}, {{- if .Values.enabled -}}. The leading dash {{- removes preceding whitespace, and the trailing dash -}} removes following whitespace. Proper use of dashes prevents unexpected blank lines in rendered manifests.

What does 'nindent' do in Helm templates?▼

nindent N prepends a newline and then indents each line by N spaces. It's used when including a multi-line helper (like a labels block) inside an existing indented block. For example: {{- include "mychart.labels" . | nindent 4 }} ensures the labels are properly indented within the metadata section, preventing invalid YAML indentation in the rendered output.

Should image tags be hardcoded in templates?▼

No. Image tags should always come from values.yaml via {{ .Values.image.tag }}. Hardcoding image tags in templates makes it impossible to override them at deploy time with helm install --set or -f custom-values.yaml. The best practice is to use {{ .Values.image.tag | default .Chart.AppVersion }} so the chart falls back to the app version if no tag is specified.

Why should I set resource requests and limits in Kubernetes?▼

Resource requests tell the Kubernetes scheduler how much CPU/memory a Pod needs to be placed on a node. Resource limits cap the maximum usage. Without requests, the scheduler may place Pods on overloaded nodes. Without limits, a runaway container can consume all node resources and evict other Pods (OOM kill). Always set both requests and limits for production workloads.

Does this tool run helm template or connect to a cluster?▼

No. All validation runs entirely in your browser using JavaScript. Your template YAML never leaves your machine. For full rendering validation, run 'helm template my-release ./chart' locally with the Helm CLI.

Share this tool: X / Twitter LinkedIn
✓ 60,000+ developers use DevPlaybook ★★★★★ 4.8 / 5 on Gumroad ✓ MIT licensed · Instant download ✓ No login required

Related Products

on Gumroad

You Might Also Need

More Free Tools

Enjoying this tool? Get more like it.

Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.

DevPlaybook Pro 7 days free

Unlock AI-Powered Dev Tools

  • ⚡ AI Code Review, Doc Generator & SQL Builder
  • ⚡ All premium templates & early access
  • ⚡ Member discounts on Gumroad products
Start Free Trial →

$9/mo after trial · Cancel anytime

Want the full toolkit?

Get DevPlaybook Pro

Every template, guide, boilerplate, and automation script in one bundle. 13 premium products — grab them all at once and save big.

$79
$241 separately Save $162 (67% off)
Get DevPlaybook Pro — $79 →

MIT licensed · Instant download · No subscription

See what's included → Browse all deals →