web-dev-qa-db-fra.com

Pouvons-nous utiliser OR dans les fichiers Helm yaml

Puis-je faire quelque chose comme ça dans Helm yamls:

{{- if eq .Values.isCar true }} OR {{- if eq .Values.isBus true }}
# do something
{{- end }}

Je comprends que nous pouvons faire un seul si vérifier. Mais comment pourrais-je vérifier plusieurs conditions? Y a-t-il des opérateurs équivalents à OR et AND?

12
James Isaac

Comme indiqué dans la documentation Helm sur les opérateurs :

Pour les modèles, les opérateurs (eq, ne, lt, gt, and, or et ainsi de suite ) sont tous implémentés en tant que fonctions. Dans les pipelines, les opérations peuvent être regroupées entre parenthèses ((, et )).

Cela signifie que vous pouvez utiliser

{{- if or (eq .Values.isCar true) (eq .Values.isBus true) }}

De plus, comme indiqué dans la structure if/else :

Un pipeline est évalué comme faux si la valeur est:

  • un faux booléen
  • un zéro numérique
  • une chaîne vide
  • un nul (vide ou nul)
  • une collection vide (map, slice, Tuple, dict, array)

Dans toutes les autres conditions, la condition est vraie.

Si vos propriétés (isCar et isBus) sont des booléens, vous pouvez alors ignorer la vérification égale:

{{- if or .Values.isCar .Values.isBus }}
28
ykweyer