YAML Vergleich

Vergleichen Sie zwei YAML-Dateien nebeneinander. Automatisch formatiert, sortiert und Unterschiede hervorgehoben.

Anleitung

  1. Paste your first YAML into the left panel
  2. Paste your second YAML into the right panel
  3. Click Compare — both sides are auto-formatted and sorted
  4. Differences are highlighted: red for removed lines, green for added lines

Häufig gestellte Fragen

  • Does key order matter?

    No. Both YAML files are sorted by keys before comparing, so differences in key order are ignored.

  • Can I compare nested YAML?

    Yes. Nested objects and lists are fully compared after formatting.

  • What do the colors mean?

    Red lines exist only in the left input. Green lines exist only in the right input. Unchanged lines have no highlight.

  • Is my data sent to a server?

    No. All processing happens entirely in your browser.

YAML-Diff in modernen DevOps-Workflows

YAML ist die Standardsprache für Infrastruktur-Konfiguration — Kubernetes-Manifeste, Helm-Charts, Ansible-Playbooks, GitHub-Actions-Workflows und Docker-Compose-Dateien sind alle in YAML geschrieben. Mit zunehmender Komplexität der Infrastruktur steigt auch der Bedarf, YAML-Dateien systematisch zu vergleichen.

Warum Text-Diff für YAML unzureichend ist

YAML hat dieselben Herausforderungen wie JSON: Die Reihenfolge von Schlüsseln in Mappings (Objekten) ist semantisch irrelevant. Außerdem gibt es weitere YAML-spezifische Fallstricke:

  • Einrückungsänderungen: Ein Block kann denselben Inhalt haben, aber anders eingerückt sein
  • Kommentarunterschede: Kommentare sind für den Datengehalt irrelevant, tauchen aber im Text-Diff auf
  • Implizite Typkonvertierungen: true und yes sind in YAML identisch, würden aber als Unterschiede erscheinen
  • Anker und Aliase: Aufgelöste Anker sehen im Text anders aus als Alias-Referenzen, sind aber semantisch gleich

Ein semantisch korrekter YAML-Diff parst beide Dokumente vollständig, normalisiert die Darstellung und vergleicht dann erst den serialisierten Output.

Kubernetes-Workflows: Der wichtigste YAML-Diff-Anwendungsfall

In Kubernetes-Umgebungen sind YAML-Diffs alltäglich:

Vor dem Deployment prüfen

Bevor kubectl apply ausgeführt wird, ist es sinnvoll, den aktuellen Zustand eines Deployments mit der neuen Konfiguration zu vergleichen:

kubectl get deployment my-app -o yaml > current.yaml
# Vergleiche current.yaml mit new-deployment.yaml

So werden unerwartete Änderungen — etwa eine versehentlich entfernte Umgebungsvariable — vor dem Deployment erkannt.

GitOps und Pull-Request-Reviews

In GitOps-Workflows (Flux, ArgoCD) werden Infrastrukturänderungen als Git-Commits verwaltet. Ein YAML-Diff im Pull Request zeigt genau, welche Konfigurationsänderungen ein Merge einführen würde — ein wesentlicher Teil des Review-Prozesses.

Helm-Chart-Upgrades

Helm rendert Kubernetes-Manifeste aus Templates. Mit helm diff upgrade (Helm-Plugin) oder durch manuellen Vergleich des gerenderten YAMLs kann man überprüfen, was sich bei einem Chart-Upgrade ändert, ohne den Cluster zu verändern.

Ansible und andere Konfigurations-Management-Tools

Ansible-Playbooks und -Rollen sind in YAML definiert. Wenn ein Playbook aktualisiert wird, hilft ein Diff dabei zu verstehen, welche Tasks und Variablen sich geändert haben — besonders wichtig bei großen Playbooks mit vielen Variablen und Bedingungen.

YAML-Diff auf der Kommandozeile

Für automatisierte Workflows gibt es spezialisierte Tools:

  • dyff: Visualisiert strukturelle YAML-Unterschiede mit farbiger Ausgabe
  • yamldiff: Einfaches Python-Tool für YAML-Vergleiche
  • kubectl diff: Zeigt den Unterschied zwischen lokalem Manifest und aktuellem Cluster-Zustand

Diese Tools eignen sich für CI/CD-Pipelines und automatisierte Validierungen.

Häufige YAML-Diff-Szenarien in der Praxis

  1. Konfigurationsdrift erkennen: Vergleichen, ob die Live-Konfiguration noch der Soll-Konfiguration entspricht
  2. Upgrade-Auswirkungen prüfen: Was ändert sich bei einem Framework-Update an der Konfiguration?
  3. Multi-Environment-Vergleich: Unterschiede zwischen Dev-, Staging- und Prod-Konfigurationen visualisieren
  4. Security-Review: Prüfen, ob sicherheitsrelevante Einstellungen unverändert geblieben sind