Helm est le gestionnaire de packages de Kubernetes. Vous définissez vos déploiements dans des charts (templates YAML + values), et Helm génère les manifests, gère les versions, et permet les rollbacks en une commande. Résultat : des déploiements reproductibles, versionnables, et automatisables en CI/CD — au lieu de kubectl apply manuel avec des fichiers éparpillés.
Ce parcours vous rend autonome en 3 étapes progressives : utiliser des charts existants, créer vos propres charts, puis publier et automatiser en production. Chaque module combine théorie, commandes commentées et labs pratiques.
Au terme de ce parcours, vous serez capable de
Section intitulée « Au terme de ce parcours, vous serez capable de »- Installer des applications via
helm installavec des values personnalisés - Gérer le lifecycle : upgrade, rollback, historique des révisions
- Déboguer les problèmes de charts avec
helm lint,helm template,--debug - Créer un chart maintenable avec helpers, schema et documentation
- Composer des stacks avec dépendances et charts umbrella
- Publier sur un registry OCI (Harbor, GHCR, ECR)
- Automatiser le packaging et la promotion via CI/CD
Prérequis : Kubernetes (Pods, Deployments, Services, namespaces), YAML (syntaxe), accès à un cluster (kind, k3d, minikube).
Qu’est-ce que Helm ?
Section intitulée « Qu’est-ce que Helm ? »L’analogie du chef cuisinier
Section intitulée « L’analogie du chef cuisinier »Imaginez que vous devez préparer un plat complexe — disons, un bœuf bourguignon. Vous avez deux options :
- Sans recette : vous improvisez, dosez au feeling, oubliez des ingrédients, et chaque fois le résultat est différent
- Avec une recette : vous suivez des instructions précises, avec les quantités exactes, et le plat est reproductible à chaque fois
Helm fonctionne comme une recette de cuisine pour Kubernetes :
| Cuisine | Helm |
|---|---|
| Recette | Chart — template de déploiement |
| Ingrédients | Values — paramètres personnalisables |
| Plat préparé | Release — instance déployée |
| Livre de recettes | Repository — catalogue de charts |
Pourquoi Helm plutôt que kubectl apply ?
Section intitulée « Pourquoi Helm plutôt que kubectl apply ? »| Sans Helm | Avec Helm |
|---|---|
| Fichiers YAML éparpillés, copiés-collés | Un chart versionné, un helm install |
| ”Quelle version est en prod ?” → grep dans les logs | helm list → version, date, statut |
| Rollback = retrouver les anciens fichiers, les réappliquer | helm rollback myapp 2 |
| Config dev/prod = dupliquer tous les YAML | Un chart + values-dev.yaml / values-prod.yaml |
| Mise à jour = modifier 10 fichiers, risque d’oubli | helm upgrade avec les nouveaux values |
Helm en une phrase
Section intitulée « Helm en une phrase »Helm est un gestionnaire de packages pour Kubernetes : vous installez des applications complexes en une commande, vous les configurez via des fichiers values, et vous gérez leur cycle de vie (upgrade, rollback) de manière reproductible.
Parcours A — Utiliser Helm (Débutant → Intermédiaire)
Section intitulée « Parcours A — Utiliser Helm (Débutant → Intermédiaire) »Objectif : installer, configurer et mettre à jour des charts existants avec confiance.
Parcours B — Écrire des charts (Intermédiaire)
Section intitulée « Parcours B — Écrire des charts (Intermédiaire) »Objectif : créer des charts maintenables, testés et documentés.
Parcours C — Helm en production (Avancé)
Section intitulée « Parcours C — Helm en production (Avancé) »Objectif : publier, signer et automatiser les charts en CI/CD.
Labs pratiques
Section intitulée « Labs pratiques »Chaque module inclut un lab guidé. Voici les compétences validées :
| Lab | Module | Ce que vous pratiquez | Durée |
|---|---|---|---|
| A1 | H1-01 | Install/uninstall d’un chart public | 15 min |
| A2 | H1-02 | Ajouter des repos, pinner une version | 20 min |
| A3 | H1-03 | Multi-env avec fichiers values | 25 min |
| A4 | H1-04 | Upgrade, history, rollback | 30 min |
| A5 | H1-05 | Diagnostiquer 3 erreurs injectées | 30 min |
| B1 | H2-01 | Créer un chart minimal | 30 min |
| B2 | H2-02 | Chart prod-ready (probes, security) | 45 min |
| B3 | H2-03 | Chart umbrella avec dépendances | 45 min |
| C1 | H3-01 | Publish/pull sur registry OCI | 30 min |
| C2 | H3-02 | Signer et vérifier un chart | 30 min |
| C3 | H3-03 | Pipeline CI/CD complète | 45 min |
Durée totale des labs : ~5h30
Erreurs fréquentes et dépannage
Section intitulée « Erreurs fréquentes et dépannage »| Erreur | Symptôme | Solution rapide |
|---|---|---|
| Chart introuvable | Error: chart not found | helm repo update |
| Release existe déjà | cannot re-use a name | Changer le nom ou helm upgrade --install |
| Values ignorés | Config non appliquée | Vérifier le chemin YAML, utiliser -f |
| Pods en Pending | Conteneurs ne démarrent pas | Vérifier resources, PVC, nodeSelector |
| Template error | nil pointer | Ajouter required ou default |
Pour un diagnostic complet, consultez le module Debug et validation.
À retenir
Section intitulée « À retenir »- Helm = gestionnaire de packages Kubernetes (chart + values → release)
- Chart = template réutilisable de déploiement
- Values = paramètres personnalisables (un fichier par environnement)
- Release = instance déployée, versionnée, avec historique
- Workflow de base :
repo add→install→upgrade→rollback - Création de chart :
helm create→ nettoyer → templater → tester aveclint+template - Production : publier sur OCI, signer, automatiser en CI/CD