直接结论

Helm 正在访问一个不存在或为 null 的嵌套属性。应先确认完整路径,并在继续取值前为上级对象提供默认字典。

错误出现在哪里

Helm 3 与 Helm 4 模板渲染

根本原因

模板假设 .Values.service 是一个对象;当它缺失、为 null 或被标量覆盖时,继续访问 type 就会失败。

最小复现

# values.yaml is empty

# template
type: {{ .Values.service.type }}

修正示例

{{- $service := .Values.service | default dict -}}
type: {{ $service.type | default "ClusterIP" }}

验证修复

运行 helm lint 和 helm template,确认空 values 与真实 values 都能渲染。

还需要检查

  • 检查所有 values 文件中的拼写和层级。
  • 必填字段可以使用 values.schema.json。
  • 不要用默认值掩盖真正必填的配置。

权威参考

版本相关行为请参考 Helm 模板调试文档