YAML Vergleich
Vergleichen Sie zwei YAML-Dateien nebeneinander. Automatisch formatiert, sortiert und Unterschiede hervorgehoben.
Anleitung
- Paste your first YAML into the left panel
- Paste your second YAML into the right panel
- Click Compare — both sides are auto-formatted and sorted
- 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:
trueundyessind 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 Ausgabeyamldiff: Einfaches Python-Tool für YAML-Vergleichekubectl 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
- Konfigurationsdrift erkennen: Vergleichen, ob die Live-Konfiguration noch der Soll-Konfiguration entspricht
- Upgrade-Auswirkungen prüfen: Was ändert sich bei einem Framework-Update an der Konfiguration?
- Multi-Environment-Vergleich: Unterschiede zwischen Dev-, Staging- und Prod-Konfigurationen visualisieren
- Security-Review: Prüfen, ob sicherheitsrelevante Einstellungen unverändert geblieben sind