Analizador YAML
YAML (YAML No Es Lenguaje de Marcado) es un formato de serialización de datos legible para humanos, popular para archivos de configuración. Esta herramienta analiza YAML con soporte completo de la especificación 1.2 incluyendo anclas, alias y flujos multi-documento, luego muestra el resultado en una vista de árbol interactiva.
Especificaciones
Casos de uso comunes
- Analizar y validar manifiestos de Kubernetes (Deployments, Services, ConfigMaps)
- Leer archivos Docker Compose y docker-compose.yml
- Depurar flujos de trabajo de GitHub Actions, GitLab CI o CircleCI
- Convertir playbooks de Ansible a JSON para procesamiento programático
- Validar archivos de valores de charts Helm
Funcionalidades
- Soporte completo de la especificación YAML 1.2
- Manejar anclas (&) y alias (*) para contenido reutilizable
- Analizar flujos multi-documento (separadores ---)
- Convertir a JSON, TOML o XML
- Validación de sintaxis con mensajes de error específicos por línea
- Vista de árbol interactiva para estructuras anidadas
Ejemplos
Deployment de Kubernetes
Pruébalo →Un manifiesto de Deployment de Kubernetes que define un pod nginx replicado.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginxDocker Compose
Pruébalo →Un archivo Docker Compose que define servicios web y de base de datos.
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "80:80"
db:
image: postgres:15
environment:
POSTGRES_PASSWORD: secretConsejos
- YAML es sensible a la indentación. Use espacios, no tabulaciones.
- Las cadenas no requieren comillas a menos que contengan caracteres especiales.
- Use anclas (&nombre) y alias (*nombre) para evitar repetir contenido.
- Las cadenas multilínea pueden usar | (literal) o > (plegado) como escalares de bloque.
Comprender Analizador YAML
YAML (YAML No Es Lenguaje de Marcado) es un formato de serialización de datos legible para humanos ampliamente utilizado en DevOps, infraestructura en la nube y configuración de aplicaciones. Su sintaxis basada en indentación elimina el ruido visual de corchetes y llaves, convirtiéndolo en el formato preferido para herramientas de infraestructura como código, pipelines de CI/CD y orquestación de contenedores.
La principal fortaleza de YAML es la legibilidad. Un manifiesto de Deployment de Kubernetes, un flujo de trabajo de GitHub Actions o un archivo Docker Compose en YAML puede entenderse de un vistazo. El formato soporta escalares (cadenas, números, booleanos, null, fechas), secuencias (arrays) y mapeos (pares clave-valor). Las cadenas generalmente no requieren comillas, el contenido multilínea puede usar bloques literales (|) o bloques plegados (>), y las anclas (&) con alias (*) le permiten definir un valor una vez y referenciarlo múltiples veces, reduciendo la repetición en archivos de configuración grandes.
YAML 1.2, la especificación actual, es un superconjunto estricto de JSON: todo documento JSON válido también es YAML válido. Esto significa que puede mezclar sintaxis YAML y JSON dentro del mismo archivo. El soporte multi-documento mediante el separador --- le permite incrustar varios documentos independientes en un solo archivo, común en manifiestos de Kubernetes y plantillas Helm.
El principal problema de YAML es su sensibilidad a los espacios en blanco. Las tabulaciones no están permitidas para indentación (solo espacios), y una clave mal alineada puede cambiar silenciosamente la estructura del documento. El "problema de Noruega" — donde valores sin comillas como "no", "yes", "on" y "off" se interpretan como booleanos — es otra fuente notoria de errores. YAML 1.2 abordó algunos de estos problemas, pero muchos analizadores aún usan reglas de YAML 1.1 por defecto.
YAML 1.1 define un amplio conjunto de literales booleanos incluyendo yes/no, on/off, true/false y sus variantes en mayúsculas. Un código de país como NO se analiza como booleano false, y la cadena "on" se convierte en true — el infame "problema de Noruega". YAML 1.2 restringe los booleanos solo a true y false, pero muchos analizadores populares (incluyendo PyYAML) aún usan reglas de YAML 1.1 por defecto. La solución segura es siempre entrecomillar las cadenas que podrían ser mal interpretadas. Los caracteres de tabulación también están estrictamente prohibidos para indentación; solo se permiten espacios, y una tabulación en la indentación causará un error de análisis. Dos espacios por nivel es la convención más común.
YAML proporciona dos estilos de escalares de bloque para cadenas multilínea. El escalar de bloque literal (|) preserva los saltos de línea exactamente como están escritos, haciéndolo ideal para scripts incrustados o consultas SQL. El escalar de bloque plegado (>) une líneas consecutivas con espacios, lo que funciona bien para descripciones largas o párrafos. Ambos estilos soportan modificadores: |- y >- eliminan la nueva línea final, mientras que |+ y >+ preservan todas las nuevas líneas finales.
Las anclas y los alias son el mecanismo de YAML para reutilizar contenido. Un ancla (&nombre) marca un nodo para referencia posterior, y un alias (*nombre) inserta ese nodo en otra parte del documento. Combinado con la clave de fusión (<<: *defaults), este patrón le permite definir configuraciones compartidas una vez y fusionarlas en múltiples mapeos. Es particularmente útil en configuraciones de CI/CD donde muchos trabajos comparten variables de entorno, reglas de caché o pasos de despliegue comunes.