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

Helm Chart中Range循环内使用.Files.Get报nil错误,求正确语法

问题解决:Helm模板遍历数组读取文件报错Unknown object "nil"

核心原因

报错是因为$.Files.Get的路径格式不符合要求——Helm的Files对象仅支持读取相对于Chart根目录的相对路径,如果路径以/开头,会被识别为系统绝对路径,而Helm不会加载外部系统文件,最终返回nil触发报错。

修复方案

方案1:修正values中的路径格式

直接移除path字段开头的斜杠,改为相对路径:

# values.yaml
my_array:
    - name: hi
      path: some_path  # 去掉开头的/,对应Chart根目录下的some_path文件
      token: some_token

模板代码保持不变即可正常运行:

{{- range .Values.my_array }}
    {{ .name }}-data: {{ $.Files.Get .path }}
    {{ .name }}-token: {{ .token }}
{{ end }}

方案2:模板内自动兼容路径前缀

如果需要兼容values中可能存在的开头斜杠,可以用Helm的trimPrefix函数自动去除路径开头的/:

{{- range .Values.my_array }}
    {{ .name }}-data: {{ $.Files.Get (trimPrefix "/" .path) }}
    {{ .name }}-token: {{ .token }}
{{ end }}

额外注意事项

  • 确保指定的路径对应文件确实存在于Chart目录结构中,比如路径写config/app.conf,则Chart根目录下必须有config/app.conf文件;
  • Secret的data字段要求内容为base64编码,若文件内容未编码,可添加b64enc函数处理:
    {{ .name }}-data: {{ $.Files.Get (trimPrefix "/" .path) | b64enc }}
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 09:50:59