Le moteur de templating Helm est basé sur le système de templates Go. Il injecte les données de values.yaml dans les fichiers du dossier templates/ pour produire du YAML Kubernetes valide.
Notes détaillées
Note Contenu Conditions et boucles if/else, range, opérateurs Go, truthy/falsy, scope $ vs .Fonctions Helm Toutes les fonctions : quote, default, required, toYaml, nindent, b64enc, printf… _helpers.tpl Named Templates, define, include, multi-arguments avec dict
Syntaxe de base
Élément Syntaxe Exemple Interpolation {{ .Values.clé }}{{ .Values.image.tag }}Pipe {{ valeur | fonction }}{{ .Values.name | upper | quote }}Supprimer espaces {{- ... -}}{{- if .Values.enabled }}Commentaire {{/* commentaire */}}{{/* TODO: vérifier */}}
Objets disponibles
Objet Accès Exemples .ValuesContenu de values.yaml .Values.image.tag, .Values.replicaCount.ReleaseMétadonnées de la Release .Release.Name, .Release.Namespace.ChartMétadonnées de Chart.yaml .Chart.Name, .Chart.AppVersion.FilesAccès aux fichiers du chart .Files.Get "config.ini".CapabilitiesCapacités du cluster .Capabilities.KubeVersion
Flux de données type
# 1. Valeur de secours si absente
replicas : {{ .Values.replicaCount | default 1 }}
# 2. Forcer une valeur obligatoire
token : {{ .Values.apiToken | required "Token requis" }}
# 3. Encoder pour un Secret K8s
password : {{ .Values.password | b64enc | quote }}
# 4. Injecter un bloc YAML complet
{{- toYaml .Values.labels | nindent 4 }}
# 5. Nom standardisé (max 63 chars)
name : {{ printf "%s-%s" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-" }}
En relation avec