DevTools Hub

Search tools

Search for a developer tool

Kubernetes

Helm Values Viewer

Merge and flatten one or more values.yaml files the way Helm actually does — deep merge, arrays replaced not merged, null deletes a key.

Part of the Kubernetes Toolkit
  • "010" was read as octal and became 8 — a leading zero followed by only digits 0-7 is interpreted as an octal number in YAML 1.1. Quote it if the literal digits were intended.
    revisionHistoryLimit
  • "yes" was read as the boolean true — Helm's YAML parser treats unquoted yes/no/on/off/true/false as booleans, not text. Quote it (e.g. "yes") if a literal string was intended.
    ingress.enabled
  • Set to null in file 2 — this deletes the key entirely (reverting to nothing, not to a null value) rather than clearing it.
    image.pullPolicy
  • Set as an array in files 1, 2 — the last one (file 2) fully replaces the earlier ones. Arrays are never merged element-by-element in Helm.
    service.ports
  • Set as an array in files 1, 2 — the last one (file 2) fully replaces the earlier ones. Arrays are never merged element-by-element in Helm.
    ingress.hosts
PathValueTypeFrom
image.repositorymyappstringvalues.yaml (base)
image.tag1.26.1stringOverride 1
ingress.enabledtruebooleanOverride 1
ingress.hosts["myapp.prod.example.com"]arrayOverride 1
nodeSelector.disktypessdstringvalues.yaml (base)
replicaCount3numberOverride 1
resources.limits.cpu2stringOverride 1
resources.limits.memory256Mistringvalues.yaml (base)
revisionHistoryLimit8numbervalues.yaml (base)
service.ports[80,443]arrayOverride 1
service.typeClusterIPstringvalues.yaml (base)

What this computes

Paste a values.yaml, add as many override files as you actually pass to helm install -f base.yaml -f override.yaml, and see the exact merged result — flattened into every leaf path, its final value, and which file it came from. This replicates Helm's real merge algorithm, not a naive object merge: verified against a real helm template run, not assumed from documentation.

What gets flagged

What this isn't

This merges values files exactly the way Helm does — it doesn't render chart templates, doesn't know a chart's own default values.yaml unless you paste it as the base file, and doesn't validate values against a chart's values.schema.json. For validating a rendered Kubernetes manifest itself, see Kubernetes YAML Validator.

FAQ

What order should I paste my files in?

Same order as your -f flags on the command line — the base chart values.yaml first, each override after it in the order it's applied. Later files win, exactly like Helm's own -f flag order. One exception, verified directly (this tool doesn't model it): --set always outranks every -f file, no matter where --set falls on the command line — --set image.tag=x -f override.yaml and -f override.yaml --set image.tag=x resolve identically, with --set winning both times.

Why does Docker Compose not have this same yes/no problem?

Different tools, different YAML parsers, verified separately rather than assumed to match: Helm's uses YAML 1.1 boolean rules, current Docker Compose's doesn't. Never assume one YAML-consuming tool's quirks apply to another without checking.

How is this different from Helm Values Diff?

This shows one configuration's full computed result. To compare two — say, what actually differs between a staging and production deployment — see Helm Values Diff.

Is my values data uploaded anywhere?

No — parsing and merging happen entirely in your browser.

Want the full write-up, not just the checks?

See Helm Values Explained for all of the above plus the difference between helm show values and helm get values for reading back what's actually deployed.

Related tools