如何解决Helm部署时报YAML line 118: did not find expected key错误
问题根因
开头的符号链接提示只是Helm的警告信息,不会导致部署失败,核心报错来自YAML语法错误,有两个直接诱因:
- 缩进错误:你渲染后的YAML中,第二个
- name: SECRET_USERNAME行的开头比同级的其他- name项多了1个空格,YAML严格要求同级列表项缩进完全一致,这是触发did not find expected key报错的最直接原因,刚好对应你报错提到的118行位置。 - HTML实体转义异常:渲染结果里出现了
"而非正常的双引号",说明你的Helm模板在处理字符串变量时用了会自动转义HTML的函数,或者你传入的values值本身带了转义后的字符。
解决步骤
- 首先修正模板缩进:打开
generic-node/templates/generic-node.yaml文件,找到第二个SECRET_USERNAME对应的列表项位置,把它的缩进调整到和同级其他环境变量项完全一致,确保所有- name开头的行开头空格数完全相同。 - 排查转义问题:
- 检查你values.yaml里对应
private-keys的key值配置,如果是空值的话直接写key: ""即可,不要加多余的转义符 - 检查模板里引用这个key的地方,不要用
htmlEscape这类转义函数,如果你之前加了quote语法不生效,可以直接去掉,或者用toString函数包裹变量确保输出原生字符串,避免渲染出"这类HTML实体。
- 检查你values.yaml里对应
- 提前验证修改:修改完成后先执行
helm template .命令本地渲染模板,检查输出的YAML是否没有语法错误,确认没问题后再执行make upgrade部署。 - 额外排查:如果你values里的graphql相关值包含大括号、冒号、井号这类YAML特殊字符,要确保要么用引号包裹,要么模板渲染时做了正确的转义,避免特殊字符破坏YAML结构。
内容的提问来源于stack exchange,提问作者Aro
相关产品推荐
相关产品推荐

