¿Que es YAML? . Cada día vemos mas sitios en donde se puede usar YAML (YAML no es un lenguaje de Marcado) . Es un lenguaje que se encarga de simplificar los conceptos de configuración eliminando marcado y simbolos como < o > y las clásicas llaves {} definiendo un formato más neutro y legible para el día a día . Vamos a ver varios ejemplos sencillos de YAML .
--- #comentario #estructura clave valor usuario: nombre: pedro apellidos: gomez edad: 20
Este es un fichero relativamente sencillo de YAML como vemos no usa ningún marcado especial y usa espacios para definir anidamiento entre elementos . En este caso tenemos un usuario que contiene tres propiedad clave: valor en donde se define el nombre apellidos y edad de este. Ademas contiene (—) guiones que definen el inicio del documento así como # que añaden comentarios.
Una vez que tenemos la primera estructura podemos anidar otros elementos como puede ser la dirección .Todos irán anidados a través del usa de espacios y se separarán los pares de clave valor a traves de dos puntos (:) .
usuario:
nombre: pedro
apellidos: gomez
edad: 20
direccion:
calle: micalle
numero: minumero Flexibilidad y Listas
YAML es bastante flexible y nos permite también ubicar listas de elementos que comparten el mismo nivel de forma rápida y sencilla
usuario:
nombre: pedro
apellidos: gomez
edad: 20
direccion:
calle: micalle
numero: minumero
cursos:
- Java
- PHP
- WordPress Flexibilidad
La flexibilidad del lenguaje es alta ya que las propias listas pueden por ejemplo contener parejas de clave valor :
usuario:
nombre: pedro
apellidos: gomez
edad: 20
direccion:
calle: micalle
numero: minumero
cursos:
- Java:
nivel: 1
duracion: 30
- PHP:
nivel: 2
duracion: 30
- WordPress:
nivel: 3
duracion: 20 En este caso tenemos un usuario que contiene sus datos que contiene anidada una dirección .
Spring Boot YAML
Podemos configurar nuestras aplicaciones de Spring Boot con YAML y evitar el uso de properties.
spring:
datasource:
password: password
url: jdbc:h2:dev
username: SA Otra de las tecnologías donde YAML brilla es en Kubernetes y sus ficheros de configuración 🙂
apiVersion: v1
kind: Pod
metadata:
name: mi-nginx
labels:
tipo: web
spec:
containers:
- name: nginx
image: nginx Este es un ejemplo de como desplegar un contenedor nginx dentro de Kubernetes