Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Helm Values NavigatorNew to Visual Studio Code? Get it now.
Helm Values Navigator

Helm Values Navigator

Michal Hajny

|
32 installs
| (0) | Free
Hover over .Values in Helm templates to see resolved values across environments. Orphan detection for unused keys and unresolved refs.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Helm Values Navigator

VS Code extension for inspecting Helm values across environments. Hover, go-to-definition, and completion for .Values references; template definition hover and go-to-definition for include calls. Orphan diagnostics for unresolved refs and unused keys.

Screenshot

Features

  • Values hover: Hover over .Values.x.y.z or $.Values.x.y.z in templates/**/*.{yaml,yml,tpl} → inline table of resolved values across all environments. Works in {{ .Values.x }}, {{ $.Values.x }}, {{ index .Values "key" }} (static keys), {{ coalesce .Values.a .Values.b "default" }}, {{ or .Values.a .Values.b }}, {{ default "x" .Values.foo }}, {{ .Values.foo | default .Values.bar }}, {{ ternary .Values.a .Values.b .Values.flag }}, etc. Values that differ from the base are bold; missing keys show ⚠ not set.
  • Go to definition: Ctrl+click (or F12) on .Values.x.y.z → jumps to the key in values files. Ctrl+click on {{ include "template.name" . }} → jumps to the define block.
  • Completion: Type . after .Values or inside include " → suggests value paths and template names.
  • Template definition hover: Hover over {{ include "template.name" . }} → shows the define block source (file + full definition).
  • Orphan diagnostics: Errors for .Values paths not defined in any values file. Hint (blue dotted underline) instead of error when: (1) the reference uses a non-literal default ({{ .Values.foo | default (randAlphaNum 8) }}, etc.), or (2) it appears only in an {{ if … }} / {{ else if … }} condition (unset keys are falsy, so the branch is skipped). Quoted defaults and | default .Values.other still suppress the diagnostic entirely. References in the if body (other lines or later {{ }} blocks) stay errors. Information-level squiggles for value keys not referenced in templates. Right-click any orphan diagnostic → Add 'prefix' to orphan exclude list to add to helmValues.excludeOrphanPrefixes (e.g. secrets for .Values.secrets.*). Values passed to dependency charts are considered used if the subchart's templates reference them. When Chart.yaml lists dependencies not found in charts/, an informational diagnostic appears with a Quick Fix to run helm dependency update. Command palette: Helm: Refresh Diagnostics, Helm: Update Dependencies.

Supported layouts

  • Helmfile: helmfile.yaml at workspace root with explicit environments. Value layers: chart base → env values → secrets → system.
  • Override-folder: helm/*/values.yaml + helm/*/overrides/*.yaml. Environments inferred from override filenames.
  • Standalone: Plain chart with values.yaml only. Single "default" environment.
  • Custom: Set helmValues.environments and helmValues.valuesFilePattern to use explicit env list and a pattern like values/values-{env}.yml. Base path via helmValues.valuesBasePath. Takes precedence over helmfile/override-folder when both are set.

Implementation

Hover “effective value” and orphan rules for default / coalesce / or / ternary use src/templateAction.ts: it parses one template action (text inside {{ … }}) as pipelines (|), function calls, parenthesized sub-expressions, string literals, .Values… and $.Values…, bare ., and static index .Values "key" … chains. This is not a full Go text/Sprig evaluator; unknown or very dynamic expressions are treated conservatively.

See also my other work!

  • Kustomize Navigator — Navigate and manage Kustomize references in Kubernetes manifests

Settings

Setting Description
helmValues.helmfilePath Path to helmfile.yaml (default: helmfile.yaml)
helmValues.chartPath Override chart path when multiple charts exist (e.g. nolo or helm/sample-gitops-2)
helmValues.baseValuesFile Base values filename relative to chart root (default: values.yaml)
helmValues.overridesDir Overrides directory relative to chart root (override-folder layout, default: overrides)
helmValues.secretsFilePath Override for git-ignored secrets file
helmValues.environments Explicit env list. With valuesFilePattern, enables custom layout
helmValues.valuesBasePath Base path for value files (default: .). Used with custom layout
helmValues.valuesFilePattern Pattern with {env} placeholder (e.g. values/values-{env}.yml)
helmValues.excludeOrphanPrefixes Path prefixes to exclude. Use * for one segment (e.g. secrets.*). Examples: ["global.images","secrets"]
helmValues.orphanDiagnosticsEnabled Enable/disable orphan diagnostics (default: true)

Version history

Current release: 0.6.0 — template parser supports $.Values, bare ., and static index .Values …; missing .Values keys used only in an {{ if }} / {{ else if }} condition are still Hints (falsy when unset), not errors. Full notes: CHANGELOG.md.

Roadmap: associate .Values refs with multi-line blocks (if / range / with across lines); expand whitelisted functions beyond what templateAction + valuesFallback cover today.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft