Comparar YAML: diff entre dos ficheros
Pega el YAML original y el modificado. YAMLTools compara los datos, no el texto: reordenar claves, cambiar comillas o editar comentarios no es un cambio. Lo que sí cambió sale por ruta —services.db.image: postgres:15 → postgres:16— y, en Docker Compose y Kubernetes, resumido en sus propios términos. Todo ocurre en tu navegador.
Original
Modificado
Pega un fichero YAML en cada lado para ver qué ha cambiado.
Cómo funciona el diff de YAML
Datos, no líneas
Los dos ficheros se parsean y se comparan como datos. Una clave que se movió, un comentario que editaste o un valor que pasó de comillas simples a dobles son los mismos datos, así que no salen como cambio.
Cambios por ruta
Cada cambio lleva su ruta exacta —spec.template.spec.containers[name=api].image— y su valor anterior y nuevo. Las listas de elementos con nombre (contenedores, variables de entorno, puertos con nombre) se emparejan por nombre, así que reordenarlas tampoco es un cambio.
Resumido para tu tecnología
Si los dos ficheros son Docker Compose o Kubernetes, el diff se resume en sus términos: un servicio nuevo, una imagen que sube de versión, réplicas 2 → 3, un contenedor nuevo en un Deployment, un Service que pasa a LoadBalancer.
Qué cuenta como cambio
Cuenta: valores añadidos, eliminados o cambiados; elementos de lista que entran o salen; una lista cuyo orden cambió; un valor que cambia de tipo (8080 frente a "8080").
Se ignora: el orden de las claves, los comentarios, las líneas en blanco, el ancho de la indentación, el tipo de comillas, el estilo flow o bloque ([1, 2] frente a una lista con guiones) y las anclas una vez expandidas.
Cuándo usarlo
Revisar una actualización de Docker Compose
Pega el docker-compose.yml antiguo y el nuevo para ver qué servicios cambian de imagen, puertos o entorno antes de lanzar docker compose up.
Revisar un despliegue de Kubernetes
Compara los manifiestos de dos versiones aunque kubectl o Helm hayan reordenado los documentos: los recursos se emparejan por kind y nombre.
Encontrar diferencias entre entornos
Compara la configuración de staging y producción y obtén una lista limpia de lo que es distinto, lista para pegar en una pull request como Markdown.
Preguntas frecuentes
¿En qué se diferencia de un diff de texto normal?
Un diff de texto compara líneas, así que reordenar claves o reformatear un fichero da decenas de cambios falsos. Este diff de YAML compara los datos ya parseados: solo salen los cambios reales, cada uno con su ruta y su valor anterior y nuevo. La vista lado a lado sigue ahí cuando quieres ver el texto.
¿Ignora el orden de las claves y los comentarios?
Sí. En YAML el orden de las claves de un mapa no significa nada y los comentarios no son datos, así que ninguno cuenta como cambio. El orden de los elementos de una lista sí importa, por eso una lista reordenada sale como reordenada.
¿Compara manifiestos de Kubernetes con varios documentos?
Sí. Los documentos separados por --- se emparejan por kind y metadata.name (y namespace), así que un Deployment se compara con el mismo Deployment aunque los ficheros listen los recursos en otro orden. El resto de ficheros con varios documentos se emparejan por posición.
¿Puedo comparar YAML con JSON?
Sí. JSON es YAML 1.2 válido: puedes pegar un JSON en un lado y un YAML en el otro y solo verás las diferencias de datos.
¿Se sube mi YAML a algún sitio?
No. La comparación ocurre entera en tu navegador. El enlace para compartir lleva los dos ficheros comprimidos dentro del fragmento de la URL (#), que los navegadores nunca envían al servidor.