Документация для Go text/template
пакета объясняет, что оператор if
считает «истинным»:
Пустые значения [«false»] являются ложными, 0, любым указателем nil или значением интерфейса, а также любым массивом, фрагментом, картой или строкой нулевой длины.
Значения YAML вводятся, и обычные правила таковы, что true
и false
- это логические значения:
boolean: true
string: other text, but not "true", "false", or "null"
also a string: 'true'
В ваших примерах:
{{- if .Values.service.myParameter }}...{{ end }}
будет оценивать значение true всякий раз, когда существует myParameter
(не Go nil
) и isn 't ноль, литерал false
или пустая строка.
{{- if eq .Values.service.myParameter "true" }}...{{ end }}
будет оцениваться как истина, если myParameter
в точности соответствует строке "true"
, но не логическому true
. (Я думаю, что вы получите ошибку типа от механизма шаблонов, если на самом деле это логическое значение.)