Helm 图表.Files.Get inside range 循环 - 未知对象“nil”

问题描述 投票:0回答:1

我的

values.yaml
中有一个带有对象数组的舵图。 每个对象都有: 名称、路径、令牌。

所以数组看起来像:

my_array:
    - name: hi
      path: /some_path
      token: some_token

我想按如下方式迭代该数组(创建一个秘密):

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

在每个

{{ .name }}-data
中,我想要该路径中文件的实际内容。 按照上面的方法我得到:
Unknown object "nil" 

其他一切都工作正常,如果我将文件路径更改为实际路径而不是

.path
,它就可以正常工作。

正确的语法是什么?

kubernetes kubernetes-helm
1个回答
1
投票

您的代码似乎是正确的,也许是需要修复的路径?

考虑以下文件夹结构:

/my-helmchart
  /files
    bar.txt
    foo.txt
  /templates
    sometemplate.yaml
  Chart.yaml
  values.yaml

迭代数组:

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

使用以下

values.yaml

my_array:
  - name: foo
    path: files/foo.txt
    token: foo_token
  - name: bar
    path: files/bar.txt
    token: bar_token

helm template
的输出:

# Source: my-helmchart/templates/sometemplate.yaml
data:
  foo-data: This is the content of foo.txt
  foo-token: foo_token
  bar-data: This is the content of bar.txt
  bar-token: bar_token
© www.soinside.com 2019 - 2024. All rights reserved.