Pré-vérification YAML inter-environnements
Collez un document YAML — workflow GitHub Actions, fichier Docker Compose, manifeste Kubernetes ou YAML générique — pour repérer les éléments structurels et valeurs ambiguës qui changent selon l'outil lecteur. Cette pré-vérification réutilise intégralement la détection YAML 1.1/1.2 du vérificateur sémantique (« problème de la Norvège » et cas apparentés) et ajoute les contrôles structurels importants pour les consommateurs YAML réels : ancres/alias, clés de fusion, tabulations, clés dupliquées et style flow.
Traitement effectué localement dans votre navigateur. Votre fichier n’est jamais téléversé.
Comment utiliser cet outil outil
- Collez votre YAML ou chargez un fichier .yaml/.yml ; rien ne quitte votre navigateur.
- Sélectionnez « Vérifier le YAML ».
- Examinez chaque problème signalé : environnements ou outils concernés, et pourquoi.
- Appliquez la réécriture portable proposée (tabulations converties en espaces, scalaires ambigus mis entre guillemets). Les ancres, clés de fusion et clés dupliquées ne sont que signalées, car une correction automatique pourrait modifier la structure.
Hypothèses
- La détection d'ambiguïtés scalaires (règle 1) reprend à l'identique la logique du vérificateur sémantique YAML : comparaison YAML 1.1/Core Schema YAML 1.2, réutilisée et présentée selon sa pertinence pour des environnements comme `flag: on` dans une matrice GitHub Actions.
- Les vérifications structurelles (ancres/alias, clés de fusion, tabulations, clés dupliquées, style flow) sont fondées sur des motifs et l'indentation dans le périmètre limité des correspondances de blocs ; ce n'est pas un analyseur YAML complet.
- Les environnements « concernés » reflètent des contraintes réelles documentées (par exemple, suppression du support des clés de fusion dans Kubernetes et restrictions d'alias de kubectl), pas un audit exhaustif de toutes les versions.
Sources et données de référence
Méthodologie
Le document est analysé en deux niveaux. D'abord, chaque scalaire non cité est résolu selon YAML 1.1 et Core Schema YAML 1.2 (logique identique au vérificateur sémantique) ; toute divergence est signalée et expliquée selon sa pertinence pour les environnements. Ensuite, le document est recherché pour les divergences structurelles connues : ancres/alias (avertissement : restrictions pour prévenir l'épuisement de ressources par expansion récursive), clés de fusion (erreur : extension YAML 1.1 hors spécification YAML 1.2, non prise en charge par Kubernetes et plusieurs analyseurs stricts), indentation par tabulations (erreur : interdite par la spécification YAML), clés dupliquées dans une correspondance (avertissement : comportement non spécifié, dernière occurrence généralement conservée silencieusement) et collections flow dans un document en blocs (information, indice à faible confiance, pas problème avéré).
Exemple détaillé
Valeur de matrice GitHub Actions ressemblant à un indicateur
Données d’entrée: flag: on
Résultat: Reprend la détection du problème de la Norvège : YAML 1.1 lit "on" comme booléen true, YAML 1.2 comme chaîne "on". Dans une matrice ou une valeur env GitHub Actions, cette valeur devait probablement rester une chaîne.
Clé de fusion Docker Compose
Données d’entrée: <<: *defaults
Résultat: Erreur : les clés de fusion sont une extension YAML 1.1, hors spécification YAML 1.2, non prises en charge par le traitement YAML de Kubernetes et plusieurs analyseurs stricts. Aucune réécriture automatique ; développez manuellement le contenu de l'ancre référencée pour une version portable.
Manifeste Kubernetes indenté par tabulations
Données d’entrée: \tname: demo
Résultat: Erreur : les tabulations sont interdites par la spécification YAML, pas seulement déconseillées. Réécriture proposée : remplacer chaque tabulation initiale par deux espaces.
Conseils pratiques
- Traitez les clés de fusion et tabulations comme des corrections indispensables : la spécification les interdit ou des outils courants comme Kubernetes/analyseurs stricts les rejettent.
- Revérifiez les ancres/alias si le document passe par kubectl ou un chargeur YAML sensible à la sécurité : certains limitent leur expansion pour prévenir l'épuisement de ressources de type bombe YAML.
- Revérifiez chaque valeur signalée par la règle d'ambiguïté scalaire reprise comme avec l'outil sémantique YAML ; mettez-la entre guillemets si elle doit rester une chaîne.
Erreurs fréquentes
- Supposer qu'une clé de fusion fonctionnant dans Docker Compose fonctionnera dans un manifeste Kubernetes : Kubernetes a supprimé son support il y a des années.
- Copier un bloc sans retirer ni renommer l'ancienne clé, créant une clé dupliquée silencieuse que la plupart des analyseurs résolvent en ne gardant que la dernière.
- Mélanger tabulations et espaces après un copier-coller depuis une source indentée par tabulations : certains analyseurs tolèrent cela, la plupart non, et le rendu peut sembler identique dans l'éditeur.
Questions fréquentes
Pourquoi cet outil recoupe-t-il le vérificateur de différences sémantiques YAML ?
Il ne duplique pas sa logique, il la réutilise. La règle 1 appelle directement sa résolution des scalaires, puis ajoute les contrôles structurels (ancres, clés de fusion, tabulations, clés dupliquées, style flow) que l'outil sémantique exclut.
Pourquoi les clés de fusion sont-elles une erreur et les ancres/alias un avertissement ?
Les clés de fusion sont entièrement hors spécification YAML 1.2 et explicitement non prises en charge par des outils comme le traitement YAML de Kubernetes : l'échec est très probable. Ancres et alias sont valides dans YAML de base, mais certaines outils les restreignent pour des raisons de sécurité ; le risque est réel mais moins certain.
Pourquoi l'outil ne corrige-t-il pas automatiquement ancres, clés de fusion ou clés dupliquées ?
Ces cas exigent de comprendre le sens du document (contenu développé d'une ancre, occurrence dupliquée voulue), pas une modification textuelle mécanique. L'outil les signale et explique la correction manuelle sans deviner.
Dernière vérification : 2026-09-26
Contrôles structurels ciblés fondés sur des motifs et comparaison d'ambiguïtés scalaires réutilisée ; pas analyseur YAML complet ni validateur du comportement exact d'un outil. Les valeurs internes de collections flow ne sont pas contrôlées pour les ambiguïtés scalaires ; les clés dupliquées sont repérées par niveau d'indentation, sans arbre complet du document.
Les préférences de thème et d’outils, ainsi que les listes enregistrées et récemment utilisées, sont stockées uniquement dans ce navigateur.