
Kubernetes: validar Deployment, Service e Ingress YAML en línea
Deployment, Service e Ingress: valida la estructura YAML antes de `kubectl apply` — comprobación local en el navegador, sin cluster ni kubectl.
¿Por qué validar YAML Kubernetes antes de `kubectl apply`?
Un typo en apiVersion, un Deployment sin spec.selector.matchLabels o un Ingress sin pathType suele aparecer demasiado tarde — cuando CI, un compañero o el API server rechaza el manifiesto. FastMinify no ejecuta kubectl, no habla con un cluster y no es kubeconform. El validador YAML Kubernetes aplica comprobaciones estructurales en el navegador: capa A (apiVersion, kind, metadata) más reglas por kind para Deployment, Service, Ingress y más. Combínalo con el formateador de manifiestos Kubernetes para YAML multi-documento legible. El cluster completo está en el hub de herramientas Kubernetes, hermano del hub DevOps (Compose, Terraform, Dockerfile).
Errores habituales y workflow pre-apply
Algunos errores aparecen constantemente en manifiestos pegados, salida Helm y snippets de tutoriales.
Un rollout Kubernetes rara vez viaja solo. Valida manifiestos, luego lintea el build de imagen y la IaC que provisiona el cluster.
Validar vs formatear vs kubeconform vs kubectl
Validación en navegador, formateo, herramientas OpenAPI y dry-runs de cluster responden a preguntas distintas. Mezclarlas produce un check verde aquí y un job CI rojo después.
Herramienta / capa
Qué demuestra
Una secuencia simple atrapa la mayoría de typos antes de que algo toque un cluster.
Cuando basta la herramienta del navegador
No necesitas cluster ni kubeconfig para pillar tres errores estructurales en un manifiesto de un ticket.
Límites: lo que el navegador no sustituye
En cuanto necesites validación de esquema OpenAPI contra una versión Kubernetes concreta, esquemas CRD o políticas admission webhook, las herramientas CLI y el apiserver siguen siendo obligatorios.
El validador lee solo el YAML pegado. No resuelve charts Helm, no expande overlays Kustomize y no valida que un nombre de Service referenciado por un Ingress exista en otro documento.
CLI y ecosistema
kubeconform, kubectl y yamllint siguen siendo el estándar en CI. FastMinify complementa exploración y one-shots.
kubeconform
Valida manifiestos contra esquemas OpenAPI Kubernetes (versión fijada).
Ventajas:
Inconvenientes:
kubectl apply --dry-run=client
Dry-run cliente con validación de esquema local (depende de la versión kubectl).
Ventajas:
Inconvenientes:
yamllint
Linter YAML genérico para indentación y estilo.
Ventajas:
Inconvenientes:
Manifiestos habituales: Deployment, Service e Ingress
Cada manifiesto es un mapping YAML con apiVersion, kind y metadata (name o generateName). FastMinify comprueba el emparejamiento: por ejemplo Deployment espera apps/v1, Service espera v1, Ingress espera networking.k8s.io/v1. Grupos de API obsoletos como extensions/v1beta1 generan una advertencia — no un bloqueo duro.
Un Deployment necesita spec.selector.matchLabels (no vacío), spec.template.spec.containers (array no vacío), y cada container debe tener name e image. FastMinify también comprueba que los valores de spec.selector.matchLabels coincidan con spec.template.metadata.labels — un error clásico de copiar-pegar que pasa el lint YAML pero falla en runtime.
Antes
Después
Un Service debe declarar un array spec.ports no vacío; cada puerto necesita port (número o cadena IntOrString). Un Ingress (networking.k8s.io/v1) necesita spec.rules con http.paths; cada path requiere path, pathType (Prefix, Exact o ImplementationSpecific) y backend.service.name más backend.service.port.number o port.name.
Formatear, validar, generar: un workflow concreto
Abre la herramienta validar Kubernetes, pega o sube un archivo .yaml / .yml (máx. 512 KiB) y espera el debounce (~300 ms). El panel de resultados lista issues por nivel (error, advertencia, info) con path, docIndex opcional para archivos multi-doc y una línea cuando esté disponible. Válido con advertencias sigue mostrando issues — léelas antes de hacer merge.
La herramienta formatear Kubernetes hace pretty-print de manifiestos multi-documento vía js-yaml (indentación 2 o 4 espacios). Pegar, subir o ejemplo: auto-formato; tras edición manual, botón Formatear (⌘↵). Los comentarios YAML # se pierden en el round-trip — cópialos primero si dependes de ellos.
Migras de networking.k8s.io/v1beta1 a v1. El YAML sigue parseando, pero cada path necesita un pathType explícito. El validador marca invalid_path_type antes de desperdiciar un paso de pipeline en kubectl apply.
Conclusión
Validar la estructura de manifiestos Kubernetes antes de kubectl apply evita desperdiciar minutos de CI en typos que podrías pillar en el navegador. Usa FastMinify como filtro estructural rápido — formatear para legibilidad, validar para GVK y reglas por kind — luego kubeconform o dry-run de cluster cuando importa la verdad del esquema. Continúa en el hub Kubernetes para generadores, values Helm y el cluster DevOps para Compose y Terraform.
Artículos relacionados

Recorrido por los clusters FastMinify, intenciones de búsqueda y flujos — minify, DevOps, API y SVG en el navegador, sin cuenta.

Traces ilegibles y maps ausentes: JS y CSS legibles en el navegador con unminify y beautify — solo formato, nombres mangled perdidos.

Deserializa `wp_postmeta` de WordPress, sesiones PHP y caches Laravel a JSON legible en el navegador — solo arrays y escalares, sin script local.