尝试在 _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
有什么建议我做错了什么吗?