Helm Chart配置多行appProperties时YAML解析错误如何解决?
解决Helm ConfigMap多行内容渲染的YAML解析错误问题
问题原因
直接在模板中使用{{ .Values.app.appProperties }}渲染多行字符串时,Helm会原样输出内容,导致第二行及以后的文本没有保持YAML要求的缩进层级,被解析器误认为是同级的YAML键,从而抛出"could not find expected ':'"的错误。
正确实现方式
修改ConfigMap模板,使用Helm的indent或nindent函数为多行内容添加正确的缩进:
模板代码(修正后)
apiVersion: v1 kind: ConfigMap metadata: name: config data: app-properties: | {{ .Values.app.appProperties | indent 4 }}
也可以使用nindent(会自动在内容前添加换行,适配需要换行的场景):
apiVersion: v1 kind: ConfigMap metadata: name: config data: app-properties: | {{ .Values.app.appProperties | nindent 4 }}
说明
indent 4:为字符串的每一行添加4个空格的缩进,确保所有行都处于app-properties值的层级下。- 你的
values.yaml无需修改,保持原有的多行格式即可:app: appProperties: | line1 line2 line3
渲染后会生成符合预期的ConfigMap内容:
apiVersion: v1 kind: ConfigMap metadata: name: config data: app-properties: | line1 line2 line3
内容的提问来源于stack exchange,提问作者Jose
相关产品推荐
相关产品推荐

