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

Helm生成多文件Secret报错:YAML转JSON失败如何修复?

修复Helm Secret模板的YAML解析错误

问题根源

你遇到的错误来自两个YAML语法问题:

  1. .subPath的值被包裹在双引号中,渲染后键名变成带引号的格式(比如".file1"),不符合YAML键名的语法规则
  2. 使用indent 4处理多行value时,额外的缩进破坏了YAML块标量|的格式要求

修复后的模板代码

修改secret.yaml模板如下:

apiVersion: v1
kind: Secret
metadata:
  name: {{ include "helm-template.fullname" . }}-file
  namespace: {{ .Release.Namespace }}
  labels:
    app: {{ include "helm-template.name" . }}
    chart: {{ include "helm-template.chart" . }}
type: Opaque
stringData: 
  {{- range .Values.secretFiles }}
  {{ .subPath | trimPrefix "\"" | trimSuffix "\"" }}: |
{{ .value | indent 4 }}
  {{- end }}

核心修复说明

  • 清理键名引号:通过trimPrefix和trimSuffix过滤器移除.subPath值前后的双引号,确保渲染后的键名是合法的.file1格式
  • 修正缩进逻辑:将indent 4的换行提前,让块标量|后直接换行,再给多行value的每一行添加4个空格缩进,完全符合YAML块标量的语法规范

验证渲染结果

修复后,模板会生成正确格式的YAML内容:

stringData:
  .file1: |
    This is a multiline
    value, aka heredoc.

此时执行helm install即可正常解析YAML,不会再出现格式错误。

内容的提问来源于stack exchange,提问作者RTC EG

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 10:20:37