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

NoteContenu
Conditions et bouclesif/else, range, opérateurs Go, truthy/falsy, scope $ vs .
Fonctions HelmToutes les fonctions : quote, default, required, toYaml, nindent, b64enc, printf
_helpers.tplNamed Templates, define, include, multi-arguments avec dict

Syntaxe de base

ÉlémentSyntaxeExemple
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

ObjetAccèsExemples
.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