YAML : Base64

Convertissez vos configurations YAML en Base64 et inversement.

YAML

Conversion

Options

Résultat

Base64

Guide de la conversion YAML/Base64

Pourquoi encoder YAML en Base64

YAML est le format de choix pour les configurations Kubernetes, Docker Compose, et CI/CD. Mais parfois, je dois intégrer du YAML dans des systèmes qui ne le supportent pas nativement. L'encodage Base64 permet de stocker des configs YAML complètes dans des variables d'environnement, des secrets Kubernetes, ou des champs de base de données.

Cas d'utilisation

Secrets Kubernetes

Les secrets K8s stockent les données en Base64. Encoder du YAML permet d'intégrer des configs complexes comme secrets.

Variables d'environnement

Passer des configs YAML multi-lignes via env vars. Impossible sans encodage.

GitOps et ArgoCD

Certaines configurations GitOps nécessitent des valeurs Base64 pour les données sensibles.

APIs et webhooks

Transmettre des configurations YAML via JSON API sans conflits de format.

Bonnes pratiques

  • Validez avant d'encoder : Une erreur YAML en Base64 est difficile à diagnostiquer
  • Documentez l'encodage : Indiquez clairement que la valeur est en Base64
  • Attention aux secrets : Base64 n'est pas un chiffrement, les données restent lisibles

Questions fréquentes

L'indentation YAML est-elle préservée ?

Oui, parfaitement. Base64 encode le YAML comme texte brut : chaque espace et retour à la ligne est préservé. Au décodage, vous retrouvez l'indentation exacte. C'est crucial car l'indentation définit la structure en YAML.

Puis-je utiliser ce Base64 directement dans kubectl ?

Oui, pour les secrets Kubernetes. Créez votre YAML de secret avec le champ data contenant vos valeurs Base64. kubectl create secret aussi accepte --from-literal avec des valeurs qu'il encode automatiquement. Pour les configs encodées manuellement, vérifiez qu'il n'y a pas de retours à la ligne dans le Base64.

Quelle différence avec le champ stringData de K8s ?

stringData accepte du texte brut que K8s encode automatiquement. data nécessite du Base64 pré-encodé. stringData est plus pratique pour les valeurs simples. Pour les configs YAML multi-lignes, data + Base64 est souvent plus fiable car vous contrôlez l'encodage exact.

Comment encoder des ancres et aliases YAML ?

Les ancres (&nom) et aliases (*nom) sont préservés tels quels : c'est du texte. Cependant, si la validation YAML est activée, nous parsons puis re-sérialisé le YAML, ce qui résout les références. Désactivez la validation pour préserver les ancres telles quelles.