helm 函数无法按预期使用append

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

尝试在 _helpers.tpl 中定义一个函数,以便在给定值文件上,该函数输出一个列表,其中包含包含键

serviceOwner
的所有元素名称。 然后从 configMap 对象调用此函数。

这是 value-services.yaml 文件:

services:
  - name: element1
    serviceOwner: microsoft
    revision: 1.0.31
  - name: element2
    revision: 1.0.35

这是我在 _helpers.tpl 中定义的函数:

{{- define "configMapsList" -}}
  {{- $configMaps := list }}
  {{- range $service := .Values.services }}
    {{- if hasKey $service "serviceOwner" }}
      {{- $configMaps = $configMaps | append $service.name }}
    {{- end }}
  {{- end }}
  {{- $configMaps }}
{{- end }}

这是我调用函数的 configMap 对象:

apiVersion: v1
kind: ConfigMap
metadata:
    name: "test-cm"
    namespace: my-namespace
data:
  key: "{{ include "configMapsList" . | join "," }}"

我希望得到一个包含

[element1]
的列表,因为它是唯一包含
serviceOwner
的元素。但我收到以下错误:

.... error calling include: template: router/templates/_helpers.tpl:16:38: executing "configMapsList" at <append $service.name>: error calling append: Cannot push on type string

有什么建议我做错了什么吗?

kubernetes kubernetes-helm
© www.soinside.com 2019 - 2024. All rights reserved.