You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 07:52:18