Les fonctions s’utilisent avec le pipe | pour enchaîner les transformations : {{ .Values.clé | fonction1 | fonction2 }}


Fonctions de texte

FonctionRôleExempleRésultat
quoteGuillemets doubles{{ .Values.version | quote }}"1.2.3"
squoteGuillemets simples{{ .Values.env | squote }}'prod'
upperMajuscules{{ .Values.env | upper }}PRODUCTION
lowerMinuscules{{ .Values.name | lower }}mon-app
titlePremière lettre majuscule{{ .Values.name | title }}Mon-App
replaceRemplacement{{ .Values.url | replace "." "-" }}mon-site-com
truncTronquer{{ .Values.name | trunc 63 }}max 63 chars
trimSuffixSupprimer un suffixe{{ "nom-" | trimSuffix "-" }}nom

Fonctions de sécurité et logique

FonctionRôleExemple
defaultValeur de repli si absent/vide{{ .Values.count | default 1 }}
requiredStoppe le déploiement si manquant{{ .Values.token | required "Token requis !" }}
# default : évite le crash si la variable n'est pas définie
replicas: {{ .Values.replicaCount | default 1 }}
 
# required : force l'utilisateur à fournir la valeur
token: {{ .Values.apiToken | required "Le token API est obligatoire !" }}

Fonctions de structure YAML

FonctionRôle
toYamlSérialise un objet complexe en YAML
nindent NNouvelle ligne + N espaces d’indentation
indent NN espaces d’indentation (sans nouvelle ligne)
# values.yaml
labels:
  team: data
  project: analysis
 
# template.yaml
metadata:
  labels:
    {{- toYaml .Values.labels | nindent 4 }}
 
# Résultat :
metadata:
  labels:
    team: data
    project: analysis

Fonctions d’encodage

FonctionRôleExemple
b64encEncodage Base64 (obligatoire pour les Secrets K8s){{ .Values.password | b64enc | quote }}
b64decDécodage Base64{{ .Values.encoded | b64dec }}
sha256sumHash SHA-256{{ .Values.config | sha256sum }}

Fonctions de calcul et listes

FonctionRôleExempleRésultat
printfChaîne formatée (style C/Go){{ printf "%s/%s:%s" .Values.reg .Values.repo .Values.tag }}docker.io/my-app:v1.0
joinFusionne une liste avec un séparateur{{ join "," .Values.hosts }}a.com,b.com
dictCrée un dictionnaire inline(dict "key1" .Val1 "key2" $)map[key1:… key2:…]

Flux de données — exemple complet

# Vérifier → encoder → formater
password: {{ .Values.db.password | required "MDP requis" | b64enc | quote }}
# 1. required  : stoppe si absent
# 2. b64enc    : encode pour Kubernetes Secret
# 3. quote     : ajoute les guillemets YAML
 
# Nom standardisé K8s (max 63 chars)
name: {{ printf "%s-%s" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-" }}
 
# Injecter un bloc YAML complet
{{- toYaml .Values.config | nindent 2 }}

Cheat sheet

CatégorieFonctionUsage
Sécuritérequired{{ .V.cle | required "Err" }}
Sécuritédefault{{ .V.cle | default 1 }}
Formatquote{{ .V.cle | quote }}
Formatnindent{{ include "x" . | nindent 4 }}
Texteupper{{ .V.cle | upper }}
Texteprintf{{ printf "%s-%s" .V.a .V.b }}
Secretb64enc{{ .V.cle | b64enc }}
ObjettoYaml{{ toYaml .V.objet }}
Listejoin{{ join "," .V.liste }}

En relation avec