helm 助手迭代地图数组时出现问题

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

在尝试迭代地图数组时尝试使用 helms range 函数时遇到一些问题。

values.yaml - 示例

global:
  envVars:
    externalSecret:
      - name: SECRET_NAME_1
        gcpSecret: SECRET_KEY_1
      - name: SECRET_NAME_2
        gcpSecret: SECRET_KEY_2

我组装的舵手助手是这样的:

{{- define "chart.envVars.externalSecret" -}}
{{- range $externalSecret := .Values.global.envVars.externalSecret -}}
- name: {{ .name }}
  valueFrom:
    secretKeyRef:
      name: {{ include "chart.fullname" $ }}
      key: {{ .gcpSecret | replace "_" " " | lower | camelcase }}
{{- end -}}
{{- end -}}

我期望输出的是:

- name: SECRET_NAME_1
  valueFrom:
    secretKeyRef:
      name: chart-fullname
      key: SecretName1
- name: SECRET_NAME_2
  valueFrom:
    secretKeyRef:
      name: chart-fullname
      key: SecretName2

但是我得到的只是这些错误通过

helm lint

templates/deployment.yaml: unable to parse YAML: error converting YAML to JSON: yaml: mapping values are not allowed in this context

在deployment.yaml中,我所做的就是像这样调用定义的变量:

env:
  {{- include "chart.envVarsFull" . | nindent 12 }}

我尝试了多种方法来尝试迭代此列表,但我似乎可以克服指出不允许映射的错误。

尝试过但仍然失败的例子

有比我聪明的人有办法做到这一点吗? :D

干杯!

go kubernetes yaml kubernetes-helm
1个回答
0
投票

事实证明我是个白痴!语法实际上有效,我正在查看抛出错误的助手的错误区域。仅供参考,以下 yaml 助手确实按预期工作:

{{- define "chart.envVars.externalSecret" -}}
{{- range $externalSecret := .Values.global.envVars.externalSecret }}
- name: {{ .name }}
  valueFrom:
    secretKeyRef:
      name: {{ include "chart.fullname" $ }}
      key: {{ .gcpSecret | replace "_" " " | lower | camelcase }}
{{- end -}}
{{- end -}}
© www.soinside.com 2019 - 2024. All rights reserved.