
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.
Validar YAML de Kubernetes antes de `kubectl apply`
Un error tipográfico en apiVersion, un Deployment sin spec.selector.matchLabels o un Ingress sin pathType suele aparecer demasiado tarde, cuando la CI, un compañero o el servidor de la API rechaza el manifiesto. FastMinify no ejecuta kubectl, no habla con un clúster y no es kubeconform. El validador YAML Kubernetes aplica comprobaciones estructurales en el navegador: capa A (apiVersion, kind, metadata) más reglas propias de cada kind para Deployment, Service, Ingress y más. Combínalo con el formateador de manifiestos Kubernetes para un YAML de varios documentos legible. Toda la familia de herramientas está en el hub de herramientas Kubernetes, junto al hub DevOps de Compose, Terraform y Dockerfile.
Errores habituales y flujo antes de apply
Algunos errores aparecen constantemente en manifiestos pegados, en la salida de Helm y en fragmentos de tutoriales.
Un despliegue de Kubernetes rara vez viaja solo. Comprueba los manifiestos y pasa después el lint al build de la imagen y a la IaC que aprovisiona el clúster.
Qué cambia entre validar, formatear, kubeconform y kubectl
La validación en el navegador, el formateo, las herramientas de esquema OpenAPI y los dry-runs de clúster responden a preguntas distintas. Mezclarlos da una marca verde aquí y un job de CI en rojo después.
Herramienta / capa
Qué demuestra
Una secuencia sencilla detecta la mayoría de los errores tipográficos antes de que algo toque un clúster.
Cuándo basta la herramienta del navegador
No necesitas clúster ni kubeconfig para detectar tres errores estructurales en un manifiesto recibido en un ticket.
Los límites de la herramienta del navegador y lo que no sustituye
Las herramientas CLI y el apiserver siguen siendo obligatorios en cuanto necesites validación de esquema OpenAPI contra una versión concreta de Kubernetes, esquemas CRD o políticas de admission webhook.
El validador lee solo el YAML pegado. No resuelve charts de Helm ni expande overlays de Kustomize. Tampoco comprueba 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 la CI. FastMinify complementa la exploración y los usos puntuales.
kubeconform
Comprueba manifiestos contra los esquemas OpenAPI de Kubernetes (con versión fijada).
Ventajas:
Inconvenientes:
kubectl apply --dry-run=client
Dry-run en el cliente con validación local del esquema (depende de la versión de kubectl).
Ventajas:
Inconvenientes:
yamllint
Linter YAML genérico para indentación y estilo.
Ventajas:
Inconvenientes:
Los manifiestos habituales, como Deployment, Service e Ingress
Cada manifiesto es un mapping YAML con apiVersion, kind y metadata (name o generateName). FastMinify comprueba ese emparejamiento. Por ejemplo, Deployment espera apps/v1 y Service espera v1, mientras que Ingress espera networking.k8s.io/v1. Los grupos de API obsoletos como extensions/v1beta1 generan una advertencia, no un bloqueo.
Un Deployment necesita un spec.selector.matchLabels no vacío y un array spec.template.spec.containers no vacío, y cada container debe declarar tanto name como image. FastMinify también comprueba que los valores de spec.selector.matchLabels coincidan con spec.template.metadata.labels. Es un error clásico de copiar y pegar que pasa el lint YAML, pero falla en ejecución.
Antes
Después
Un Service debe declarar un array spec.ports no vacío, y cada puerto necesita port como número o como cadena IntOrString. Un Ingress con 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.
Un flujo concreto para formatear, validar y generar
Abre la herramienta validar Kubernetes, pega o sube un archivo .yaml o .yml (máx. 512 KiB) y espera el debounce (~300 ms). El panel de resultados lista los problemas por nivel (error, advertencia, info) con path, un docIndex opcional para archivos de varios documentos y una línea cuando existe. Un resultado Válido con advertencias sigue mostrando problemas: lee las advertencias antes de fusionar.
La herramienta formatear Kubernetes reescribe manifiestos de varios documentos con js-yaml y una indentación de 2 o 4 espacios. Al pegar, subir o cargar el ejemplo, formatea sola. Tras una edición manual, usa el botón Formatear (⌘↵). Los comentarios YAML con # se pierden en la ida y vuelta: cópialos antes si los necesitas.
Pasas de networking.k8s.io/v1beta1 a v1. El YAML se sigue analizando, pero cada path necesita un pathType explícito. El validador marca invalid_path_type antes de que desperdicies un paso de pipeline en kubectl apply.
Conclusión
Validar la estructura de los manifiestos de Kubernetes antes de kubectl apply evita desperdiciar minutos de CI en errores tipográficos que el navegador puede detectar. Usa FastMinify como filtro estructural rápido: formatea para la legibilidad y comprueba después el GVK y las reglas por kind. Añade kubeconform o un dry-run en un clúster cuando importe el esquema real. Sigue en el hub de Kubernetes para generadores y values de Helm, y en el hub DevOps para Compose y Terraform.
Comprueba ahora tu YAML de Kubernetes
Artículos relacionados

HTTP/2 y HTTP/3 cambian el trayecto de los archivos, no su peso. Mediciones de tamaño, compilación y bundling muestran lo que la minificación aún aporta.

Convierte un epoch Unix en una fecha legible y al revés, distingue segundos de milisegundos y evita las trampas de zona horaria, JWT y cambio de hora.

Lee una expresión cron campo a campo, comprueba sus próximas ejecuciones en UTC o en hora local y evita las trampas de pasos, zonas horarias y dialectos.