☸️ Certification Helm : Examen Final (30 Questions)

Instructions

Pour chaque question, réfléchissez à la réponse avant de cliquer sur “Correction & Explication”. Chaque erreur est expliquée pour approfondir la logique Kubernetes/Helm.


📂 Section 1 : Architecture & Structure

Q1 : Quel est le rôle principal du fichier Chart.yaml ?

  1. Définir les variables utilisateur.

  2. Stocker les métadonnées et la version du Chart.

  3. Contenir les fonctions Go Template.

Q2 : Où doit obligatoirement se trouver le fichier _helpers.tpl ?

  1. À la racine du Chart.

  2. Dans le dossier templates/.

  3. Dans le dossier charts/.

Q3 : Que signifie l’underscore (_) au début du fichier _helpers.tpl ?

  1. Il indique à Helm de ne pas déployer ce fichier comme une ressource K8s.

  2. C’est un fichier caché pour le système.

  3. Il sert à indiquer que le fichier est crypté.

Q4 : À quoi sert le dossier charts/ à la racine ?

  1. À stocker les images Docker.

  2. À stocker les dépendances (sous-charts).

  3. À archiver les anciennes versions.


🔧 Section 2 : Fonctions & Logique Go Template

Q5 : Quelle fonction permet de définir une valeur de secours si une variable est absente ?

  1. fallback

  2. default

  3. required

Q6 : Quelle fonction est indispensable pour transformer une donnée en format Secret Kubernetes ?

  1. quote

  2. b64enc

  3. toYaml

Q7 : Quelle est la syntaxe correcte pour vérifier si .Values.env est égal à "prod" ?

  1. {{ if eq .Values.env "prod" }}

  2. {{ if .Values.env == "prod" }}

  3. {{ if equals .Values.env "prod" }}

Q8 : Dans une boucle range, que représente le symbole $ ?

  1. La fin de la boucle.

  2. Le contexte racine (global).

  3. Une variable temporaire.

Q9 : Comment forcer un champ à être une chaîne de caractères (pour éviter que 01 devienne 1) ?

  1. string()

  2. quote

  3. asString

Q10 : Quelle fonction permet d’insérer un bloc YAML avec le bon décalage d’espaces ?

  1. indent

  2. nindent

  3. align


🚀 Section 3 : Commandes & Gestion des Releases

Q11 : Quelle commande permet de simuler un déploiement et de voir le YAML généré ?

  1. helm install --dry-run --debug

  2. helm lint

  3. helm preview

Q12 : Comment appelle-t-on une instance d’un Chart installée sur un cluster ?

  1. Un Chart déployé.

  2. Une Release.

  3. Un Snapshot.

Q13 : À quoi sert le plugin helm-diff ?

  1. À comparer deux fichiers localement.

  2. À voir les changements réels sur le cluster avant un upgrade.

  3. À corriger les erreurs.

Q14 : Quelle commande annule un déploiement et revient à la version précédente ?

  1. helm undo

  2. helm rollback

  3. helm back

Q15 : Que fait helm dependency update ?

  1. Met à jour la version de Helm.

  2. Télécharge les charts listés dans dependencies.

  3. Met à jour Kubernetes.


🧪 Section 4 : Logique Avancée & Types de Charts

Q16 : Qu’est-ce qu’un “Library Chart” ?

  1. Un chart qui installe une base de données.

  2. Un chart qui ne contient que des helpers réutilisables.

  3. Un chart qui contient de la documentation.

Q17 : Quel est l’intérêt d’un “Umbrella Chart” ?

  1. Protéger le serveur contre la pluie (blague).

  2. Déployer plusieurs micro-services via un seul point d’entrée.

  3. Augmenter la sécurité du cluster.

Q18 : Que se passe-t-il si j’écris {{ if "" }} ?

  1. Le bloc est exécuté.

  2. Le bloc est ignoré.

  3. Erreur de syntaxe.

Q19 : Quelle fonction arrête le rendu si une variable critique est absente ?

  1. stop

  2. fail

  3. required

Q20 : Comment passer plusieurs variables à un template nommé (helper) ?

  1. Avec des virgules.

  2. En utilisant la fonction dict.

  3. On ne peut pas.


🛡️ Section 5 : Sécurité & Bonnes Pratiques

Q21 : Où Helm stocke-t-il les informations de ses Releases par défaut ?

  1. Dans un fichier sur votre PC.

  2. Dans des Secrets Kubernetes au sein du cluster.

  3. Dans une base SQL externe.

Q22 : Quelle est la limite DNS de caractères pour un nom de ressource K8s ?

  1. 32

  2. 63

  3. 256

Q23 : À quoi sert le champ appVersion dans Chart.yaml ?

  1. À définir la version du Chart Helm.

  2. À définir la version du logiciel interne (ex: nginx 1.21).

  3. À définir la version de Kubernetes compatible.

Q24 : Que fait la fonction trimSuffix "-" .Name ?

  1. Supprime tous les tirets du nom.

  2. Supprime le tirets seulement s’il est à la fin du nom.

  3. Ajoute un tiret à la fin.

Q25 : Peut-on utiliser des fonctions mathématiques (add, sub) dans Helm ?

  1. Oui, via les fonctions Sprig.

  2. Non, Helm ne fait que du texte.

  3. Seulement pour les réplicas.


🏁 Section 6 : Questions de Synthèse

Q26 : Quel est le moteur de template utilisé par Helm ?

  1. Jinja2

  2. Go Templates

  3. Mustache

Q27 : Que fait toYaml ?

  1. Transforme une liste/dictionnaire en format YAML lisible.

  2. Traduit du Python en YAML.

  3. Vérifie si le YAML est valide.

Q28 : Quel est le rôle de printf ?

  1. Imprimer sur la console de debug.

  2. Formater une chaîne de caractères complexe.

  3. Envoyer des logs à Kubernetes.

Q29 : Le fichier values.yaml est-il modifiable lors de l’installation ?

  1. Non, il est figé dans le chart.

  2. Oui, via le flag -f ou --set.

  3. Seulement par l’administrateur du cluster.

Q30 : Quelle commande permet de voir l’historique d’une release ?

  1. helm history [NOM]

  2. helm log

  3. helm list --all


💡 Un dernier conseil pour Obsidian

Si tu veux un rendu encore plus visuel, tu peux installer le plugin “Obsidian Charts” ou simplement utiliser des blocs de code pour illustrer la structure des fichiers à côté de ce quiz.

Veux-tu que je fasse le même travail de correction détaillée pour ton quiz Git/Terraform ?