Helm模板出现bad character U+002D '-'错误,求解决方案
解决YAML模板中bad character U+002D '-'错误的方案
错误原因
你的模板代码里的.Values-development.deploytest是非法语法:Go模板(Helm等工具使用的模板引擎)中,变量/字段标识符只能包含字母、数字和下划线,减号-会被解析为减法运算符,因此触发语法错误。
修正方案
根据你的实际需求选择对应的写法:
场景1:访问.Values下的development字段的deploytest值
你可能是误将.写成了-,修正为正常的链式访问即可:
{{ if and (eq .Values.deploytest "true") (eq .Values.development.deploytest "false") }} .... {{ end }}
场景2:访问.Values下带减号的键(如my-development)的deploytest值
如果键名本身包含减号这类特殊字符,需要用index函数通过字符串键名来访问:
{{ if and (eq .Values.deploytest "true") (eq (index .Values "my-development").deploytest "false") }} .... {{ end }}
可选优化:用临时变量提升可读性
如果需要多次访问带特殊字符的字段,可以先赋值给临时变量:
{{ $devDeployTest := (index .Values "my-development").deploytest }} {{ if and (eq .Values.deploytest "true") (eq $devDeployTest "false") }} .... {{ end }}
内容的提问来源于stack exchange,提问作者Angel
相关产品推荐
相关产品推荐

