Valeurs
Les valeurs sont la configuration de votre déploiement.
Ordre de fusion
Les valeurs sont fusionnées dans cet ordre (les dernières gagnent) :
1. Valeurs par défaut du schéma
2. values.yaml du pack
3. Fichiers -f (dans l'ordre)
4. Flags --set
values.yaml
Le fichier de base avec les valeurs par défaut :
replicaCount: 1
image:
repository: nginx
tag: latest
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 80
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 50m
memory: 64Mi
Fichiers de valeurs (-f)
Passez des fichiers de valeurs supplémentaires :
# Un fichier
sherpack template release ./pack -f production.yaml
# Plusieurs fichiers (fusionnés dans l'ordre)
sherpack template release ./pack -f base.yaml -f production.yaml -f secrets.yaml
Exemple production.yaml :
replicaCount: 3
resources:
limits:
cpu: 500m
memory: 512Mi
Overrides en ligne (--set)
# Valeur simple
sherpack template release ./pack --set replicaCount=5
# Valeur imbriquée
sherpack template release ./pack --set image.tag=v2.0.0
# Plusieurs valeurs
sherpack template release ./pack --set replicaCount=3 --set image.tag=v2.0.0
# Tableau
sherpack template release ./pack --set "hosts={a.com,b.com}"
# Chaîne avec guillemets
sherpack template release ./pack --set 'annotation=my\ value'
Accès dans les templates
# Accès simple
replicas: {{ values.replicaCount }}
# Accès imbriqué
image: {{ values.image.repository }}:{{ values.image.tag }}
# Valeur par défaut
port: {{ values.service.port | default(80) }}
# Vérification d'existence
{% if values.ingress.enabled %}
...
{% endif %}
# Itération
{% for key, value in values.env %}
- name: {{ key }}
value: {{ value | quote }}
{% endfor %}
Fusion profonde
Les objets sont fusionnés récursivement :
# values.yaml
config:
debug: false
timeout: 30
features:
a: true
b: true
# production.yaml
config:
debug: true
features:
b: false
c: true
# Résultat
config:
debug: true # écrasé
timeout: 30 # conservé
features:
a: true # conservé
b: false # écrasé
c: true # ajouté
Afficher les valeurs
# Afficher les valeurs calculées
sherpack template release ./pack --show-values
# Afficher les valeurs par défaut du pack
sherpack show ./pack --values