我很难在values.yaml 中循环数组值。错误是某种与语法/yaml 结构相关的错误,但消息非常神秘,我不知道问题是什么: 我的values.yaml 文件:
agent:
namespace: "" <values are subject to change>
enabled: true
admin_group:
- "TEST_GROUP_1"
- "TEST_GROUP_2"
我的模板是:
{{- if .Values.agent.enabled }}
kind: Rolebinding
apiVersion: rbac.authorization.k8s.io/v1
subjects:
{{- range .Values.agent.admin_group }}
- kind: group
apiGroup: rbac. authorization.k8s.io
name: {{ .Values.agent.admin_group }}
{{- end}}
roleRef:
apigroup: rbac.authorization.k8s.io
kind: ClusterRole
name: view
{{- end -}}
我还想根据 admin_group 的数组值创建多个组:
{{- if .Values.agent.enabled }}
{{- range .Values.agent.admin_group }}
kind: Sync
apiVersion: group.xxx.com/v1alpha1
metadata:
name: group-sync-{{ .Values.agent.namespace }}
namespace: {{ .Values.agent.namespace }}
spec:
domain: external
group: {{ .Values.agent.admin_group }}
{{- end }}
{{- end -}}
非常感谢您的帮助。节日快乐!!!
你的问题在于你的range循环的body。当你写下这个:
{{- range .Values.agent.admin_group }}
...
{{- end}}
那么你就重新定义了
.
的含义。在循环中, .
指的是 range
运算符生成的每个连续值。当您在循环中写入 .Values.agent.admin_group
inside 时,您会收到错误,因为列表项没有 .Values
字段(因为它们是字符串)。你要写:
{{- range .Values.agent.admin_group }}
- kind: group
apiGroup: rbac. authorization.k8s.io
name: {{ . | quote }}
{{- end}}
在您的
Sync
模板中也类似。
您可以在here找到相关文档,其中包括许多示例(在该页面上以及有关变量的子序列页面上)。