
Kubernetes : valider Deployment, Service et Ingress YAML en ligne
Deployment, Service, Ingress : validez la structure YAML avant `kubectl apply` — contrôle local dans le navigateur, sans cluster ni kubectl.
Pourquoi valider du YAML Kubernetes avant `kubectl apply` ?
Une faute de frappe dans apiVersion, un Deployment sans spec.selector.matchLabels, ou un Ingress sans pathType apparaît souvent trop tard — quand la CI, un collègue ou l'API server rejette le manifest. FastMinify n'exécute pas kubectl, ne contacte pas un cluster, et n'est pas kubeconform. Le validateur YAML Kubernetes applique des contrôles structurels dans le navigateur : couche A (apiVersion, kind, metadata) plus des règles par kind pour Deployment, Service, Ingress, et d'autres. Couplez-le avec le formateur de manifests Kubernetes pour un YAML multi-documents lisible. Le cluster complet vit sur le hub Kubernetes, voisin du hub DevOps (Compose, Terraform, Dockerfile).
Erreurs fréquentes et workflow pré-apply
Quelques erreurs reviennent constamment dans les manifests collés, la sortie Helm et les snippets de tutoriels.
Un déploiement Kubernetes ne voyage rarement seul. Validez les manifests, puis lintez le build d'image et l'IaC qui provisionne le cluster.
Valider vs formater vs kubeconform vs kubectl
Validation navigateur, formatage, outils OpenAPI et dry-runs cluster répondent à des questions différentes. Les confondre produit un check vert ici et une CI rouge ensuite.
Outil / couche
Ce que ça prouve
Une séquence simple attrape la plupart des typos avant tout contact avec un cluster.
Quand l'outil navigateur suffit
Vous n'avez pas besoin d'un cluster ni d'un kubeconfig pour attraper trois erreurs structurelles sur un manifest reçu dans un ticket.
Limites : ce que le navigateur ne remplace pas
Dès que vous avez besoin de validation schéma OpenAPI contre une version Kubernetes précise, de schémas CRD, ou de politiques admission webhook, les outils CLI et l'apiserver restent obligatoires.
Le validateur lit uniquement le YAML collé. Il ne résout pas les charts Helm, n'expand pas les overlays Kustomize, et ne valide pas que le nom de Service référencé par un Ingress existe dans un autre document.
CLI et écosystème
kubeconform, kubectl et yamllint restent la norme en CI. FastMinify complète l'exploration et les one-shots.
kubeconform
Valide les manifests contre les schémas OpenAPI Kubernetes (version épinglée).
Avantages :
Inconvénients :
kubectl apply --dry-run=client
Dry-run côté client avec validation schéma locale (dépend de la version kubectl).
Avantages :
Inconvénients :
yamllint
Linter YAML générique pour indentation et style.
Avantages :
Inconvénients :
Manifests courants : Deployment, Service et Ingress
Chaque manifest est un mapping YAML avec apiVersion, kind et metadata (name ou generateName). FastMinify vérifie l'appariement : par exemple Deployment attend apps/v1, Service attend v1, Ingress attend networking.k8s.io/v1. Les groupes d'API dépréciés comme extensions/v1beta1 déclenchent un avertissement — pas un blocage dur.
Un Deployment nécessite spec.selector.matchLabels (non vide), spec.template.spec.containers (tableau non vide), et chaque container doit avoir name et image. FastMinify vérifie aussi que les valeurs de spec.selector.matchLabels correspondent à spec.template.metadata.labels — une erreur classique de copier-coller qui passe le lint YAML mais casse en production.
Avant
Après
Un Service doit déclarer un tableau spec.ports non vide ; chaque port nécessite port (nombre ou chaîne IntOrString). Un Ingress (networking.k8s.io/v1) nécessite spec.rules avec http.paths, chaque path exigeant path, pathType (Prefix, Exact ou ImplementationSpecific), et backend.service.name plus backend.service.port.number ou port.name.
Formater, valider, générer : un workflow concret
Ouvrez l'outil valider Kubernetes, collez ou uploadez un fichier .yaml / .yml (max 512 Kio), et attendez le debounce (~300 ms). Le panneau de résultats liste les issues par niveau (erreur, avertissement, info) avec path, docIndex optionnel pour les fichiers multi-doc, et une ligne quand disponible. Valide avec avertissements affiche quand même les issues — lisez-les avant de merger.
L'outil formater Kubernetes met en forme des manifests multi-documents via js-yaml (indent 2 ou 4 espaces). Collage, upload ou exemple : auto-format ; après édition manuelle, bouton Formater (⌘↵). Les commentaires YAML # sont perdus au round-trip — copiez-les d'abord si vous en dépendez.
Vous migrez de networking.k8s.io/v1beta1 vers v1. Le YAML parse encore, mais chaque path nécessite un pathType explicite. Le validateur signale invalid_path_type avant de gaspiller une étape de pipeline sur kubectl apply.
Conclusion
Valider la structure des manifests Kubernetes avant kubectl apply évite de gaspiller des minutes de CI sur des typos attrapables dans le navigateur. Utilisez FastMinify comme filtre structurel rapide — formater pour la lisibilité, valider pour GVK et règles par kind — puis kubeconform ou dry-run cluster quand la vérité schéma compte. Continuez sur le hub Kubernetes pour les générateurs, values Helm, et le cluster DevOps pour Compose et Terraform.
Articles connexes

Tour d'horizon des clusters FastMinify, intentions SEO et workflows — minify, DevOps, API et SVG dans le navigateur, sans compte.

Source maps absentes : retrouvez du JS et du CSS lisibles dans le navigateur avec unminify et beautify — formatage seul, noms mangled perdus.

Désérialisez `wp_postmeta`, sessions PHP et caches Laravel en JSON lisible dans le navigateur — tableaux et scalaires uniquement, sans script local.