Ad space (728×90)

Helm Values Diff

Free Helm values diff tool. See the effective result of Helm-merging a base values.yaml with an override file.

← Back to all tools

The array-replacement rule is the part people miss

Helm's values merging is intuitive for maps — nested keys merge recursively, so overriding `image.tag` alone leaves `image.repository` untouched — but arrays don't follow that same logic at all. If a base values file defines a list of five ingress hosts and an override file defines a list of two, the result is exactly those two, not a combined seven or any kind of element-by-element merge. This surprises people who reasonably (but incorrectly) expect array merging to behave like map merging, and it's exactly the kind of thing that's much easier to get right by seeing the actual merged output than by reasoning through the rule in the abstract — which is the entire reason this tool renders the effective merged result rather than just describing the rule.

Why seeing the diff matters as much as seeing the merge

A merged values file on its own doesn't tell you what the override actually changed — you'd have to compare it against the base by eye. Listing exactly which paths changed, and what they changed from/to, answers the question that actually matters before running `helm upgrade`: not "what does the final config look like" but "what is this override file about to change relative to what's already deployed." That's a materially different (and usually more useful) question, especially for a large values file where only a handful of an override's many lines represent an actual change from the base.