jarvisbox

YAML 语义比较 — Helm 与 Kubernetes 专用

专为 Kubernetes 和 Helm 设计的语义 YAML 差异比较工具。多文档流以 kind+name 为键、自动展开锚点、ConfigMap base64 解码 — 完全在浏览器运行。

100% client-side · no upload · works offline

Semantic diff Added Removed Changed

Paste YAML above and click Compare to see the semantic diff…

How to use

  1. Paste your original YAML — Helm values.yaml, K8s manifests, or any multi-document stream — into Before, and the updated version into After.
  2. Enable Key docs by kind+name for Kubernetes streams — resources are matched by kind/metadata.name rather than by position, so reordered documents still diff correctly.
  3. Click Compare to see the semantic diff. Use Copy as kubectl patch to export a JSON Merge Patch you can apply with kubectl patch.

Related use cases

Related tools

常见问题

Does my YAML data leave my device?
No. All parsing and comparison happens entirely in your browser — no server, no upload, no account required. Your Kubernetes manifests, Helm values, and secrets never leave your device.
What makes this tool Kubernetes and Helm aware?
When "Key docs by kind+name" is enabled, multi-document YAML streams (separated by ---) are matched by their kind + metadata.name pair. A Deployment named "api" in the left side is always compared against the Deployment named "api" in the right side, even if document order changes — exactly how helm diff upgrade and kubectl diff work.
Does it support YAML anchors and aliases?
Yes. js-yaml automatically expands anchors (&anchor) and aliases (*alias) before comparing, so you see fully-resolved values rather than symbolic tokens. This is important for Helm values files that use anchors for DRY configuration.
What does the base64 auto-decode option do?
When enabled, values inside ConfigMap and Secret .data fields are decoded from base64 before display. This lets you see the actual content — connection strings, certificates, config files — rather than the encoded blob. Useful when reviewing changes in Sealed Secrets or Helm-generated Secrets.
What is the kubectl patch output?
After comparing, click "Copy as kubectl patch" to copy a JSON Merge Patch of the changed fields. Apply it with kubectl patch -f <file> --type=merge, or use it as a Kustomize strategic merge patch. Removed keys are set to null per RFC 7396.

Last updated:

反馈这个工具的问题