Un archivo de YAML puede contener varios documentos independientes separados por la línea especial ---
. Cada bloque funciona como un documento distinto, lo que ayuda a agrupar configuraciones relacionadas sin dividirlas en múltiples archivos.
---
producto:
codigo: 1
descripcion: Teclado
precio: 15000
---
producto:
codigo: 2
descripcion: Mouse
precio: 9000
Cada bloque separado por ---
representa un documento distinto. Algunos parsers leerán solo el primero, mientras que otros procesarán todos.
En Kubernetes es habitual definir varios recursos en una sola entrega.
---
apiVersion: v1
kind: ConfigMap
metadata:
name: mi-config
data:
DB_HOST: localhost
DB_PORT: "5432"
---
apiVersion: v1
kind: Service
metadata:
name: mi-servicio
spec:
selector:
app: mi-app
ports:
- port: 80
targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mi-app
spec:
replicas: 2
selector:
matchLabels:
app: mi-app
template:
metadata:
labels:
app: mi-app
spec:
containers:
- name: mi-app
image: mi-app:1.0
ports:
- containerPort: 8080
De esta forma podemos aplicar todo con un solo comando: kubectl apply -f recursos.yaml
.
Además de ---
, YAML define ...
para indicar explícitamente el final de un documento. Aunque es opcional, puede ser útil en flujos donde se encadenan múltiples documentos.
---
nombre: Juan
edad: 30
...
---
nombre: Laura
edad: 25
...
---
para separar documentos relacionados manteniendo un orden lógico (ej.: ConfigMaps → Services → Deployments).apply
o carga.En resumen, con ---
podemos gestionar varios documentos en un mismo archivo YAML, una técnica clave en Kubernetes, Docker Compose avanzado y pipelines CI/CD donde conviene centralizar configuraciones.