Ce guide vous apprend à trouver, évaluer et choisir les bons charts Helm pour vos déploiements. Vous allez configurer vos repositories, rechercher des charts (en local et sur Artifact Hub), et inspecter leurs métadonnées et valeurs avant d’installer quoi que ce soit. En 15 minutes, vous saurez éviter les charts abandonnés ou mal maintenus.
Prérequis
Section intitulée « Prérequis »- Helm installé (voir module H1-01)
- Accès réseau vers Internet (pour télécharger les index de repos)
- Aucun cluster Kubernetes requis pour ce module (on inspecte sans installer)
Comprendre les repositories Helm
Section intitulée « Comprendre les repositories Helm »Un repository Helm (ou “repo”) est un serveur HTTP qui héberge un fichier index.yaml listant tous les charts disponibles et leurs versions. Ce fichier contient les métadonnées de chaque chart : nom, version, description, dépendances.
Quand vous exécutez helm repo add, Helm télécharge cet index et le stocke localement dans ~/.cache/helm/repository/. Ensuite, helm search repo interroge cet index local — c’est pour cela qu’un helm repo update est nécessaire pour voir les nouvelles versions.
Gérer les repositories
Section intitulée « Gérer les repositories »Ajouter un repository
Section intitulée « Ajouter un repository »La commande helm repo add enregistre un repository sous un nom local de votre choix :
# Syntaxe : helm repo add <nom-local> <url>helm repo add prometheus-community https://prometheus-community.github.io/helm-chartsRésultat attendu :
"prometheus-community" has been added to your repositoriesLe nom local (prometheus-community) est arbitraire — vous pourriez l’appeler prom ou monitoring. Ce nom sera utilisé comme préfixe dans les commandes de recherche et d’installation.
Lister les repositories configurés
Section intitulée « Lister les repositories configurés »helm repo listRésultat attendu :
NAME URLprometheus-community https://prometheus-community.github.io/helm-chartsingress-nginx https://kubernetes.github.io/ingress-nginxgrafana https://grafana.github.io/helm-chartspodinfo https://stefanprodan.github.io/podinfoLecture du tableau :
| Colonne | Signification |
|---|---|
NAME | Nom local que vous avez choisi lors du helm repo add |
URL | Adresse du serveur hébergeant l’index des charts |
Mettre à jour les index locaux
Section intitulée « Mettre à jour les index locaux »Les repositories évoluent : nouvelles versions, nouveaux charts. Helm ne vérifie pas automatiquement les mises à jour. Vous devez explicitement demander la synchronisation :
# Mettre à jour tous les reposhelm repo update
# Mettre à jour un seul repo (plus rapide)helm repo update podinfoRésultat attendu :
Hang tight while we grab the latest from your chart repositories......Successfully got an update from the "podinfo" chart repository...Successfully got an update from the "grafana" chart repository...Successfully got an update from the "prometheus-community" chart repository...Successfully got an update from the "ingress-nginx" chart repositoryUpdate Complete. ⎈Happy Helming!⎈Supprimer un repository
Section intitulée « Supprimer un repository »helm repo remove podinfoRésultat attendu :
"podinfo" has been removed from your repositoriesCela supprime uniquement la référence locale. Aucun chart installé n’est affecté.
Rechercher des charts
Section intitulée « Rechercher des charts »Helm propose deux commandes de recherche qui interrogent des sources différentes.
Recherche locale : helm search repo
Section intitulée « Recherche locale : helm search repo »Cette commande interroge l’index local de vos repositories configurés :
# Rechercher un mot-clé dans tous les repos locauxhelm search repo prometheusRésultat (extrait) :
NAME CHART VERSION APP VERSION DESCRIPTIONprometheus-community/prometheus 28.7.0 v3.9.1 Prometheus is a monitoring system and time seri...prometheus-community/kube-prometheus-stack 81.4.2 v0.88.1 kube-prometheus-stack collects Kubernetes manif...prometheus-community/prometheus-node-exporter 4.51.0 1.10.2 A Helm chart for prometheus node-exporterprometheus-community/prometheus-redis-exporter 6.20.2 v1.80.2 Prometheus exporter for Redis metricsLecture du tableau :
| Colonne | Signification | Exemple |
|---|---|---|
NAME | <nom-repo>/<nom-chart> — identifiant complet du chart | prometheus-community/prometheus |
CHART VERSION | Version du chart Helm (packaging) | 28.7.0 |
APP VERSION | Version de l’application déployée | v3.9.1 |
DESCRIPTION | Brève description du chart | Tronquée à 50 caractères |
Rechercher dans un repo spécifique
Section intitulée « Rechercher dans un repo spécifique »# Tous les charts du repo prometheus-communityhelm search repo prometheus-community
# Recherche d'un terme précishelm search repo exporterVoir toutes les versions disponibles
Section intitulée « Voir toutes les versions disponibles »Par défaut, seule la dernière version apparaît. Pour voir l’historique :
helm search repo podinfo/podinfo --versionsRésultat :
NAME CHART VERSION APP VERSION DESCRIPTIONpodinfo/podinfo 6.10.0 6.10.0 Podinfo Helm chart for Kubernetespodinfo/podinfo 6.9.4 6.9.4 Podinfo Helm chart for Kubernetespodinfo/podinfo 6.9.3 6.9.3 Podinfo Helm chart for Kubernetespodinfo/podinfo 6.9.2 6.9.2 Podinfo Helm chart for Kubernetespodinfo/podinfo 6.9.1 6.9.1 Podinfo Helm chart for Kubernetespodinfo/podinfo 6.9.0 6.9.0 Podinfo Helm chart for Kubernetes...C’est utile pour épingler une version ou revenir à une version antérieure en cas de régression.
Recherche globale : helm search hub
Section intitulée « Recherche globale : helm search hub »Cette commande interroge Artifact Hub, le catalogue centralisé de la CNCF qui indexe des milliers de charts de multiples éditeurs :
helm search hub prometheusRésultat (extrait) :
URL CHART VERSION APP VERSION DESCRIPTIONhttps://artifacthub.io/packages/helm/prometheus-community/prometheus 28.7.0 v3.9.1 Prometheus is a monitoring...https://artifacthub.io/packages/helm/wenerme/prometheus 28.7.0 v3.9.1 Prometheus is a monitoring...Différence avec helm search repo :
| Aspect | helm search repo | helm search hub |
|---|---|---|
| Source | Index locaux (vos repos configurés) | Artifact Hub (Internet) |
| Vitesse | Instantané | Requête HTTP |
| Couverture | Limitée à vos repos | Tous les charts publics |
| Offline | Fonctionne | Nécessite Internet |
Formats de sortie alternatifs
Section intitulée « Formats de sortie alternatifs »Pour le scripting ou l’intégration CI/CD :
# Format YAMLhelm search repo -o yaml podinfo/podinfo- app_version: 6.10.0 description: Podinfo Helm chart for Kubernetes name: podinfo/podinfo version: 6.10.0# Format JSONhelm search repo -o json podinfo/podinfo[{"name":"podinfo/podinfo","version":"6.10.0","app_version":"6.10.0","description":"Podinfo Helm chart for Kubernetes"}]Inspecter un chart avant installation
Section intitulée « Inspecter un chart avant installation »La commande helm show (ou son alias helm inspect) affiche les informations d’un chart sans l’installer.
Métadonnées du chart (Chart.yaml)
Section intitulée « Métadonnées du chart (Chart.yaml) »helm show chart podinfo/podinfoRésultat :
apiVersion: v1appVersion: 6.10.0description: Podinfo Helm chart for Kuberneteshome: https://github.com/stefanprodan/podinfokubeVersion: '>=1.23.0-0'maintainers:- email: stefanprodan@users.noreply.github.com name: stefanprodanname: podinfosources:- https://github.com/stefanprodan/podinfoversion: 6.10.0Lecture des champs :
| Champ | Signification | Pourquoi c’est important |
|---|---|---|
apiVersion | Version de la spec Chart.yaml (v1 ou v2) | v2 = Helm 3, v1 = Helm 2 (legacy) |
appVersion | Version de l’application déployée | Correspond-elle à vos besoins ? |
kubeVersion | Versions Kubernetes supportées | Votre cluster est-il compatible ? |
maintainers | Qui maintient ce chart | Projet actif ou abandonné ? |
home / sources | Liens vers le projet | Documentation disponible ? |
Valeurs par défaut (values.yaml)
Section intitulée « Valeurs par défaut (values.yaml) »C’est la partie la plus importante — elle définit toute la configuration possible :
helm show values podinfo/podinfoRésultat (extrait) :
# Default values for podinfo.
replicaCount: 1logLevel: info
image: repository: ghcr.io/stefanprodan/podinfo tag: 6.10.0 pullPolicy: IfNotPresent
ui: color: "#34577c" message: ""
service: enabled: true type: ClusterIP httpPort: 9898
resources: {} # limits: # cpu: 100m # memory: 128MiCe que vous devez repérer :
| Élément | Question à se poser |
|---|---|
image.repository | L’image vient-elle d’un registre de confiance ? |
resources | Les limites par défaut sont-elles adaptées à votre cluster ? |
service.type | ClusterIP, LoadBalancer, NodePort — lequel pour votre cas ? |
| Valeurs commentées | Options désactivées par défaut mais disponibles |
Documentation (README)
Section intitulée « Documentation (README) »helm show readme podinfo/podinfo | head -50Résultat (extrait) :
# Podinfo
Podinfo is a tiny web application made with Gothat showcases best practices of running microservices in Kubernetes.
## Installing the Chart
To install the chart with the release name `podinfo`:
$ helm upgrade -i podinfo oci://ghcr.io/stefanprodan/charts/podinfoLe README contient généralement :
- Les instructions d’installation
- La liste des paramètres configurables
- Des exemples de configuration
- Les prérequis spécifiques
Tout en une seule commande
Section intitulée « Tout en une seule commande »helm show all podinfo/podinfo | wc -l# Résultat : 387 ligneshelm show all combine chart + values + readme. Utile pour sauvegarder dans un fichier :
helm show all podinfo/podinfo > podinfo-chart-doc.txtInspecter une version spécifique
Section intitulée « Inspecter une version spécifique »Toutes les commandes helm show acceptent --version :
# Voir les values d'une ancienne versionhelm show values podinfo/podinfo --version 6.7.0Épingler une version (reproductibilité)
Section intitulée « Épingler une version (reproductibilité) »En production, vous ne voulez jamais que Helm installe “la dernière version” — cela peut casser votre déploiement lors d’une mise à jour inattendue.
-
Identifiez la version exacte avec
helm search repo --versionsFenêtre de terminal helm search repo podinfo/podinfo --versions | head -5 -
Testez en environnement de dev avec cette version précise
Fenêtre de terminal helm install podinfo podinfo/podinfo --version 6.9.0 --dry-run -
Documentez la version dans votre pipeline CI/CD ou fichier de configuration
# Dans votre Helmfile, ArgoCD Application, ou script CIchart: podinfo/podinfoversion: 6.9.0 # Épinglé
Critères de sélection d’un chart
Section intitulée « Critères de sélection d’un chart »Avant d’adopter un chart pour la production, vérifiez ces critères :
| Critère | Comment vérifier | Seuil acceptable |
|---|---|---|
| Maintenance active | Dernière release sur Artifact Hub | < 6 mois |
| Popularité | Étoiles GitHub, téléchargements | Subjectif, mais > 100 étoiles |
| Documentation | README, examples, CHANGELOG | Présence de toutes les sections |
| Sécurité | Pas de privileged: true par défaut, images signées | Vérifier dans values.yaml |
| Licence | Champ license dans Chart.yaml ou repo GitHub | Apache 2.0, MIT, BSD |
Lab A2 : Explorer et comparer des charts
Section intitulée « Lab A2 : Explorer et comparer des charts »Objectif : Pratiquer les commandes de recherche et d’inspection en comparant deux charts de monitoring.
-
Ajoutez les repos nécessaires
Fenêtre de terminal helm repo add prometheus-community https://prometheus-community.github.io/helm-chartshelm repo add grafana https://grafana.github.io/helm-chartshelm repo update -
Recherchez les charts Prometheus disponibles
Fenêtre de terminal helm search repo prometheusNotez la différence entre
prometheus-community/prometheus(Prometheus seul) etprometheus-community/kube-prometheus-stack(Prometheus + Grafana + Alertmanager). -
Comparez les versions Kubernetes requises
Fenêtre de terminal helm show chart prometheus-community/prometheus | grep kubeVersionhelm show chart prometheus-community/kube-prometheus-stack | grep kubeVersion -
Inspectez les ressources par défaut du chart Prometheus
Fenêtre de terminal helm show values prometheus-community/prometheus | grep -A 10 "resources:" -
Listez les 3 dernières versions du kube-prometheus-stack
Fenêtre de terminal helm search repo kube-prometheus-stack --versions | head -4
Résultat attendu : Vous savez maintenant identifier quel chart correspond à votre besoin et quelles versions sont disponibles.
Dépannage
Section intitulée « Dépannage »| Symptôme | Cause probable | Solution |
|---|---|---|
Error: repo not found | Nom de repo mal orthographié | Vérifier avec helm repo list |
no repositories configured | Aucun repo ajouté | helm repo add <nom> <url> |
| Version non trouvée malgré existence | Index local obsolète | helm repo update |
context deadline exceeded | Problème réseau | Vérifier la connectivité, proxy |
| Résultats de recherche vides | Mot-clé trop spécifique | Essayer des termes plus génériques |
401 Unauthorized | Repo privé sans authentification | helm repo add --username --password |
À retenir
Section intitulée « À retenir »- Repository = source de charts. Ajoutez avec
helm repo add, mettez à jour avechelm repo update. helm search repointerroge vos repos locaux (rapide, offline),helm search hubinterroge Artifact Hub (exhaustif, online).- Deux versions à distinguer : CHART VERSION (packaging) et APP VERSION (application déployée).
- Inspectez avant d’installer :
helm show chart(métadonnées),helm show values(configuration),helm show readme(documentation). - Épinglez toujours la version en production avec
--versionpour garantir la reproductibilité. - Évaluez la qualité : maintenance active, documentation, popularité, licence, sécurité par défaut.