Aller au contenu
English
Conteneurs & Orchestration high

Formation Helm : déployer des charts sur Kubernetes

16 min de lecture

logo helm

Helm est le gestionnaire de paquets de Kubernetes : vous décrivez un déploiement dans un chart, un ensemble de gabarits YAML pilotés par des values, et Helm génère les manifestes, versionne chaque installation et permet de revenir en arrière en une commande. Cette formation gratuite mène du premier chart installé à la distribution de charts signés : 7 modules, 18 leçons, environ 18 heures de travail. Elle s'adresse aux profils DevOps et aux développeurs qui déploient déjà sur Kubernetes avec kubectl apply et veulent des déploiements reproductibles. Les seize guides ont été rejoués sur Helm v4.3.0 contre un cluster Kubernetes 1.37, et un module reste dédié à la migration depuis Helm v3.

Qu'est-ce que Helm et à quoi sert-il sur Kubernetes ?

Section intitulée « Qu'est-ce que Helm et à quoi sert-il sur Kubernetes ? »

Helm remplace un dossier de manifestes YAML copiés d'un environnement à l'autre par un paquet unique et versionné, installé et mis à jour en une commande. Trois notions suffisent à comprendre le modèle, et elles reviennent dans toutes les leçons.

Un chart est le paquet : des gabarits YAML, un fichier values.yaml qui porte les paramètres par défaut, et un Chart.yaml qui le décrit et le versionne. Les values sont les paramètres que vous surchargez pour votre contexte, avec -f values-prod.yaml ou --set replicaCount=3. Une release est le résultat : une instance nommée du chart, déployée avec des values précises, dont Helm conserve l'historique des révisions. C'est cet historique qui rend helm rollback myapp 2 possible, là où un kubectl apply ne laisse aucune trace de l'état précédent.

Sans HelmAvec Helm
Fichiers YAML éparpillés, copiés-collésUn chart versionné, un helm install
« Quelle version est en prod ? », il faut chercher dans les journauxhelm list donne version, date et statut
Rollback : retrouver les anciens fichiers, les réappliquerhelm rollback myapp 2
Config dev/prod : dupliquer tous les YAMLUn chart plus values-dev.yaml et values-prod.yaml
Mise à jour : modifier dix fichiers, risque d'oublihelm upgrade avec les nouvelles values

Helm n'est pas la seule réponse. Kustomize superpose des patches sur des manifestes existants, sans langage de gabarit ni notion de release. Le choix se joue là : si vous distribuez une application à d'autres équipes, Helm gagne, parce qu'il livre un paquet paramétrable et versionné. Si vous adaptez vos propres manifestes à trois environnements, Kustomize fait le travail avec moins de machinerie.

Que contient la formation Helm et combien de temps demande-t-elle ?

Section intitulée « Que contient la formation Helm et combien de temps demande-t-elle ? »

La formation compte 7 modules et 18 leçons, pour environ 18 heures de travail, manipulations sur cluster comprises. Elle est gratuite et accessible sans inscription.

Ce que vous suivezVolume
Modules pédagogiques7
Leçons18
Durée estiméeenviron 18 heures
Version de référence des guidesHelm v4.3.0
Cluster de vérificationKubernetes 1.37, sur kind
Version couverte par le module de migrationdepuis Helm v3
Environnement de travailcluster local kind, image kindest/node:v1.37.0
Coûtgratuit, sans inscription

Ces heures comptent la lecture et la reproduction des commandes sur un cluster. Un module comme Personnaliser ses déploiements pèse trois heures parce qu'il demande de créer des fichiers de values, de les surcharger et de vérifier le rendu avec helm template ; une leçon lue sans cluster sous la main passe beaucoup plus vite, et laisse beaucoup moins.

Comment suivre sa progression dans le parcours Helm ?

Section intitulée « Comment suivre sa progression dans le parcours Helm ? »

Chaque leçon porte une case à cocher, et votre progression est enregistrée dans votre navigateur, sans compte ni inscription. Aucune donnée ne part sur un serveur.

La page Mon parcours affiche le programme complet, module par module, avec le pourcentage d'avancement. En haut de chaque leçon, un bandeau rappelle où vous en êtes ; en bas, un bouton la marque comme lue et vous emmène à la suivante. Vous pouvez donc étaler les 18 heures sur plusieurs semaines et reprendre exactement où vous vous étiez arrêté.

Les modules se suivent dans l'ordre : chacun réutilise ce que le précédent a posé. On installe des charts écrits par d'autres avant d'en écrire, et on n'automatise en CI/CD qu'un chart dont on sait déjà vérifier la qualité.

Installer Helm, comprendre ce qu'est un chart et déployer une première release. À la fin du module, vous savez chercher un chart public, l'inspecter avant de l'installer, et gérer les releases déjà en place.

Adapter un chart à son contexte sans le forker. C'est le module qui sépare l'usage naïf de l'usage professionnel : on surcharge par values, on comprend la structure interne d'un chart, et on applique des gabarits éprouvés en production.

Faire vivre une release dans la durée : montées de version, retours arrière, et diagnostic quand le rendu ne donne pas ce qu'on attendait.

Passer du chart unique à un ensemble cohérent, et se donner les moyens de vérifier sa qualité avant publication.

Publier des charts auxquels on peut faire confiance. C'est le module le plus proche des enjeux de chaîne d'approvisionnement logicielle : un chart non signé installé depuis un registre public est du code arbitraire appliqué à votre cluster.

Automatiser le packaging dans une chaîne CI/CD, du chart validé au registre OCI.

Cette formation enseigne Helm 4 sans condition : la migration n'est donc pas une étape à traverser pour finir le parcours, c'est un détour pour qui arrive de Helm 3. Elle reste à portée, à part.

Chaque module se travaille sur un cluster local jetable, monté en une commande avec kind. Rien n'exige de cluster managé ni de compte cloud : le tableau ci-dessous indique ce que vous manipulez réellement module par module, et le temps à y consacrer.

ModuleCe que vous manipulezDurée
Découvrir HelmInstaller Helm, chercher un chart public, déployer puis supprimer une release3 h 05
Personnaliser ses déploiementsFichiers de values par environnement, structure d'un chart, gabarits de production3 h
Exploiter au quotidienupgrade, history, rollback, puis lint, template et --debug1 h 45
Composer et fiabiliserSubcharts, chart umbrella, conception de l'API de values, values.schema.json2 h 55
Sécuriser et distribuerDroits RBAC et secrets de release, signature .prov, publication OCI2 h
IndustrialiserChaîne lint, package, publish, deploy, puis migration vers Helm v41 h 40

Montez le cluster avant de commencer le module 1, et gardez-le pour toute la durée de la formation. Toute cette formation est rejouée sur kind, avec l'image kindest/node:v1.37.0 : c'est la combinaison sur laquelle les sorties publiées ont été mesurées, et la seule que les attestations de lab couvrent.

Fenêtre de terminal
kind create cluster --name helm-lab --image kindest/node:v1.37.0

Un autre outil de cluster local fonctionne, mais vous constaterez des écarts sur les sorties, les versions d'API servies et le comportement des LoadBalancer. Si vous en utilisez un, gardez en tête que les différences viennent de là, pas de Helm.

Vérifiez ensuite que kubectl cluster-info répond avant d'installer quoi que ce soit. Un helm install lancé sur un contexte pointant vers un cluster éteint échoue sur un message de connexion qui n'a rien à voir avec Helm, et fait chercher au mauvais endroit.

Trois prérequis suffisent : connaître les objets Kubernetes de base, savoir lire du YAML, et disposer d'un cluster. Helm ne remplace pas la compréhension de Kubernetes, il l'exige : un chart produit des Deployments, des Services et des ConfigMaps, et si vous ne savez pas les lire, vous ne saurez pas diagnostiquer ce que le chart a produit.

  • Kubernetes : Pods, Deployments, Services et namespaces.
  • YAML : syntaxe, indentation, listes et dictionnaires.
  • Un cluster : kind en local, sur l'image kindest/node:v1.37.0.

Apprenez sur Helm v4, la version que documentent ces guides : Helm v3 a reçu sa dernière version de fonctionnalités le 9 septembre 2026, la v3.22.0, et ses correctifs de sécurité s'arrêtent le 10 février 2027. Apprendre aujourd'hui sur une branche qui n'évoluera plus reviendrait à mémoriser des commandes à réapprendre dans six mois.

Un second argument, plus concret, tranche pour ceux qui suivent aussi la formation Kubernetes : la matrice de compatibilité officielle donne Helm 4.3 pour Kubernetes 1.37 à 1.34, et Helm 4.1 seulement jusqu'à 1.35. Sur un cluster récent, le choix de la branche n'en est pas vraiment un.

Cela ne rend pas Helm v3 négligeable, et c'est pourquoi ce parcours garde un module entier de migration. Des milliers de chaînes CI/CD tournent encore en v3, et elles ont jusqu'à février 2027 pour basculer. Le modèle chart, values et release ne change pas ; ce sont des détails d'interface qui cassent les scripts.

Trois écarts font tomber une chaîne qui n'a pas été relue. Les flags renommés d'abord : --atomic devient --rollback-on-failure et --force devient --force-replace, les anciens noms restant acceptés mais dépréciés. Les post-renderers ensuite : ce n'est plus un binaire passé en paramètre, ils passent par le système de plugins, ce qui impacte toutes les chaînes du type --post-renderer ./kustomize. L'authentification OCI enfin : helm registry login attend le domaine (ghcr.io) et non une référence complète.

Avant de migrer, rejouez vos pipelines avec Helm v4 en portant l'attention sur upgrade --install, --wait, --dry-run et le post-rendu. Le module Migrer vers Helm v4 détaille chaque changement avec sa commande de remplacement et une checklist de bascule.

Cinq messages d'erreur couvrent la majorité des blocages des débutants, et aucun ne vient de Helm lui-même : ils viennent du chart, du contexte ou du cluster. Le tableau donne le symptôme exact tel qu'il s'affiche, puis la première chose à essayer.

ErreurSymptômeSolution rapide
Chart introuvableError: chart not foundhelm repo update
Release existe déjàcannot reuse a nameChanger le nom ou utiliser helm upgrade --install
Values ignoréesLa configuration n'est pas appliquéeVérifier le chemin YAML dans le chart, passer le fichier avec -f
Pods en PendingLes conteneurs ne démarrent pasVérifier resources, les PVC et le nodeSelector
Erreur de templatenil pointerAjouter required ou default dans le gabarit

Le réflexe qui résout le plus de cas ne figure pas dans ce tableau : rendre le chart localement avec helm template avant d'appliquer. Vous voyez le YAML final, celui que Kubernetes recevra, et la moitié des erreurs de values saute aux yeux à ce moment. Le module Déboguer et valider un chart en fait une méthode complète.


Cette formation a des opinions, forgées sur des clusters jetables comme en production. Les voici, pour que vous sachiez à quoi vous vous engagez.

Jamais helm install seul, toujours helm upgrade --install. Le --install rend la commande rejouable : elle passe telle quelle en intégration continue, sans gérer le cas « la release existe déjà ». Attention au sens du mot : rejouer une commande identique crée quand même une nouvelle révision et un secret de release de plus, mesuré sur un chart inchangé. Elle ne casse rien, elle n'est pas sans effet, et c'est pourquoi --history-max compte. J'ajoute --wait --timeout 5m pour ne valider qu'une fois les pods réellement prêts, et --rollback-on-failure pour que la release revienne automatiquement en arrière en cas d'échec au lieu de rester coincée en failed à nettoyer à la main. Ce dernier s'appelait --atomic en Helm v3 ; l'ancien nom reste accepté, avec un avertissement de dépréciation à chaque exécution. Et en v4, --wait devient un choix de stratégie dont le défaut, hookOnly, n'attend que les hooks.

Un chart s'inspecte avant de s'installer. helm show values et helm template coûtent dix secondes et vous disent ce que le chart va créer, avec quels droits et quelles images. Installer un chart public sans l'avoir lu, c'est appliquer du code arbitraire à votre cluster avec les droits du compte qui lance la commande.

Les values de production vivent dans Git, pas dans des --set. Un --set empilé dans un script d'historique de shell n'est ni relisible ni reproductible. Un fichier values-prod.yaml versionné se relit, se commente et se compare d'une release à l'autre.

Un chart publié se signe. Le fichier de provenance .prov et la vérification à l'installation ne coûtent rien une fois la chaîne en place, et ils sont la seule chose qui distingue votre chart d'un chart homonyme poussé par quelqu'un d'autre sur le même registre.

On ne met pas de logique métier dans un gabarit. Un template Helm truffé de conditions imbriquées devient illisible et impossible à tester. Quand un chart réclame ce niveau de logique, c'est en général qu'il devrait être découpé en subcharts, ou que la logique appartient à l'application.

Trois erreurs reviennent assez souvent pour mériter d'être nommées avant que vous ne les commettiez.

Forker un chart public pour changer trois valeurs. Vous héritez alors de sa maintenance et vous perdez ses mises à jour de sécurité. Les values, les subcharts et, en dernier recours, un post-renderer couvrent presque tous les besoins d'adaptation.

Traiter helm rollback comme un filet de sécurité universel. Il restaure les manifestes, pas les données : une migration de schéma de base de données appliquée par un hook ne se défait pas parce que vous êtes revenu à la révision précédente.

Découvrir Helm v4 le jour où le pipeline casse. Helm v3 n'aura plus de correction de bogue après sa version finale du 9 septembre 2026, et plus aucun correctif de sécurité après le 10 février 2027. Testez la bascule en préproduction pendant que la v3 tient encore.

  • Helm est le gestionnaire de paquets de Kubernetes : chart, plus values, égale release
  • Un chart est un paquet versionné de gabarits ; les values le paramètrent ; la release est l'instance déployée, avec son historique
  • Le flux de base tient en quatre commandes : helm repo add, helm install, helm upgrade, helm rollback
  • Créer un chart : helm create, nettoyer le squelette, templater, valider avec helm lint et helm template
  • En production : publier sur un registre OCI, signer, automatiser en CI/CD
  • La formation compte 7 modules, 18 leçons et environ 18 heures, rejoués sur Helm v4.3.0 contre un cluster Kubernetes 1.37
  • Les correctifs de sécurité de Helm v3 s'arrêtent le 10 février 2027, après une dernière version de fonctionnalités le 9 septembre 2026 : la migration vers Helm v4 est un chantier à planifier, pas à subir

Ces questions reviennent systématiquement en formation, et la plupart portent sur les frontières de Helm : ce qu'il gère, ce qu'il ne gère pas, et ce qu'il laisse à Kubernetes. Les réponses sont volontairement courtes, chacune renvoyant au guide qui la développe.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn