舵图错误无法计算类型接口 {} 中的字段值。Values.agent.admin_group



我很难遍历values.yaml中的数组值。错误某种语法/yaml结构相关的错误,但消息是如此神秘,我不知道问题是什么:我的价值观。yaml文件:

agent:
namespace: "" <values are subject to change>
enabled: true
admin_group:
- "TEST_GROUP_1"
- "TEST_GROUP_2"

my template:

{{- 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 .Values.agent.admin_group }}
...
{{- end}}

那么你在重新定义.的含义。在循环中,.指的是range运算符产生的每个连续值。当你在循环中写.Values.agent.admin_group时,你会得到一个错误,因为列表项没有.Values字段(因为它们是字符串)。你想写:

{{- range .Values.agent.admin_group }}
- kind: group
apiGroup: rbac. authorization.k8s.io
name: {{ . | quote }}
{{- end}}

同样在你的Sync模板。

您可以在这里找到相关文档,其中包括许多示例(在该页和关于变量的子序列页)。

相关内容

最新更新