Aller au contenu

Helm

Helm se présente comme the package manager for Kubernetes.

Principe de fonctionnement

Installation

Quelques dépôts

NAME URL
bitnami https://charts.bitnami.com/bitnami/
hashicorp https://helm.releases.hashicorp.com
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

# Add bitnami's repository
helm repo add bitnami https://charts.bitnami.com/bitnami
# Update repositories
helm repo update
# List repositories
helm repo list
# Find charts in a given repository
helm search repo bitnami
# Find charts versions
helm search repo bitnami/nginx-ingress-controller -l

Déployer avec Helm

nginx-ingress-controller

# Show default values
helm show values bitnami/nginx-ingress-controller

# Preview generated YAML's
helm -n ingress-nginx template nginx bitnami/nginx-ingress-controller \
    --set metrics.enabled=true

# Install or upgrade a release in a given namespace
helm -n ingress-nginx upgrade --install \
    nginx bitnami/nginx-ingress-controller \
    -v my-values.yaml
    --set metrics.enabled=true

# List releases
helm -n ingress-nginx list

# Uninstall
helm -n ingress-nginx delete nginx

Jenkins

# 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 --namespace=jenkins-system upgrade --install jenkins jenkins/jenkins

PostgreSQL

# Ajout du dépot bitnami
helm repo add bitnami https://charts.bitnami.com/bitnami
# Mise à jour des dépôts
helm repo update
# Création d'un namespace d'accueil pg
kubectl create namespace pg
# Installation ou mise à jour
POSTGRESQL_PASSWORD=ChangeIt
helm --namespace=pg upgrade --install postgresql bitnami/postgresql  --set global.postgresql.auth.postgresPassword=$POSTGRESQL_PASSWORD
# Contrôler l'état
kubectl -n pg get sts,svc,pods
# Suivre les instructions pour se connecter :
kubectl port-forward --namespace pg svc/postgresql 15432:5432 &
psql --host 127.0.0.1 -U postgres -d postgres -p 15432 -W

Voir :

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 global sont accessibles depuis tous les sous charts

Resources