Helm¶
Helm se présente comme the package manager for Kubernetes.
Principe de fonctionnement¶
- Helm génère et applique les manifests au format YAML
- Le langage de templating est Go templating language
Installation¶
- helm.sh - Installing Helm - From Script
- helm.sh - Installing Helm - From Apt (Debian/Ubuntu)
- helm/install.sh reprend la méthode "From Script" ci-dessus :
curl -sS https://mborne.github.io/outils/helm/install.sh | bash
Quelques dépôts¶
Bitnami est devenu payant
Voir Upcoming changes to the Bitnami catalog (effective August 28th, 2025)
| NAME | URL |
|---|---|
| bitnami | https://charts.bitnami.com/bitnami/ |
| jenkins | https://charts.jenkins.io |
| opensearch | https://opensearch-project.github.io/helm-charts/ |
| traefik | https://helm.traefik.io/traefik |
Voir aussi artifacthub.io
Utilisation¶
Gestion des dépôts¶
# Ajout du dépôt jenkins
helm repo add jenkins https://charts.jenkins.io
# Mise à jour des dépôts
helm repo update
# Affichage de liste des dépôts
helm repo list
# Recherche d'un chart
helm search repo jenkins
# Recherche des versions disponibles
helm search repo jenkins/jenkins -l
Déploiement avec Helm¶
Par exemple, pour le déploiement de Jenkins à l'aide de Jenkins Helm Charts :
# Ajout du dépôt jenkins
helm repo add jenkins https://charts.jenkins.io
# Mise à jour des dépôts
helm repo update
# Création d'un namespace d'accueil
kubectl create namespace jenkins-system
# Installation ou mise à jour
helm -n jenkins-system upgrade --install jenkins jenkins/jenkins
Création d'un chart¶
La commande helm create whoami génère un modèle de chart pour le déploiement d'une application (nginx) qu'il sera possible d'adapter pour sa propre application.
Pour vos premiers pas, noter que :
- Les variables d'environnement sont toujours des strings (il faudra les échapper comme suit
{{ .Values.database.port | quote }}) - Les variables
globalsont accessibles depuis tous les sous charts
Utilisation dans un conteneur¶
Les images suivantes intègrent l'exécutable helm :
Elles sont utiles pour exécuter des déploiements helm avec GitLab-CI avec des runners docker.
Expérimentations¶
Mon terrain de jeu pour Docker et Kubernetes :
- mborne/docker-devbox permet de configurer un environnement de développement avec Docker ou Kubernetes où de nombreux scripts
k8s-install.shs'appuient sur des déploiements Helm.
Quelques exemples de chart helm :
- mborne/helm-charts contient quelques charts helm rédigés pour tester la publication sous forme d'image (OCI)
- mborne/crash-test intègre un chart Helm publié sous forme d'une image (
oci://ghcr.io/mborne/helm-charts/crash-test) à l'aide de GitHub actions (voir .github/workflows/helm-publish.yml).