Helm模板设置默认字符串值报错:unexpected "\\" in operand
Helm模板中default函数设置字符串默认值报错的解决办法
以下两种写法可以解决你遇到的unexpected "\\" in operand错误:
使用单引号包裹默认字符串:
drink: {{ .Values.favorite.drink | default 'tea' | quote }}或者
drink: {{ .Values.favorite.drink | default 'tea' }}用外层双引号包裹整个模板表达式,内部默认值的双引号转义:
drink: "{{ .Values.favorite.drink | default \"tea\" }}"
错误原因
你写的default "tea"在YAML语法里,双引号会被YAML优先解析,和Helm模板引擎的解析逻辑冲突,从而触发转义相关报错。而数字、布尔值这类非字符串类型不需要引号包裹,所以不会出现这个问题。
另外也可以用printf函数间接实现,写法更直观:
drink: {{ printf "%s" (.Values.favorite.drink | default "tea") }}
内容的提问来源于stack exchange,提问作者beatrice
相关产品推荐
相关产品推荐

