KubernetesHelmDevOps

Helm 3 : aller au-dela du deploiement basique

14 mars 2026 · Sphinx-Digital

Helm est souvent presente comme “apt-get pour Kubernetes”. Au-dela du deploiement de charts, Helm offre des capacites de lifecycle management avancees.

Structurer un chart pour la production

mychart/
|-- Chart.yaml
|-- values.yaml
|-- values-prod.yaml
|-- templates/
|   |-- deployment.yaml
|   |-- service.yaml
|   |-- _helpers.tpl
|   +-- NOTES.txt
+-- charts/

_helpers.tpl : les fonctions reutilisables

{{/*
Nom complet de l'application
*/}}
{{- define "mychart.fullname" -}}
{{- printf "%s-%s" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Labels standards
*/}}
{{- define "mychart.labels" -}}
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version }}
app.kubernetes.io/name: {{ .Chart.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}

Deploiement avec override de values

helm upgrade --install myapp ./mychart   -f values.yaml   -f values-prod.yaml   --set image.tag=$CI_COMMIT_SHA

Hooks : actions avant/apres deploiement

# Migration DB avant le deploiement
apiVersion: batch/v1
kind: Job
metadata:
  name: {{ .Release.Name }}-migrate
  annotations:
    "helm.sh/hook": pre-upgrade,pre-install
    "helm.sh/hook-delete-policy": hook-succeeded
spec:
  template:
    spec:
      containers:
      - name: migrate
        image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
        command: ["python", "manage.py", "migrate"]
      restartPolicy: Never

Tests Helm

helm test myapp

Notre formation Kubernetes couvre Helm avec des ateliers sur chart reel.