【发布时间】:2021-04-27 12:00:22
【问题描述】:
是否可以在 helm 中过滤范围的结果? 例如,值文件包含一个地图列表,如:
clients:
- name: clientA
id: id001
user: usernameA
pass: passwordA
- name: clientB
id: id002
user: usernameB
pass: passwordB
- name: clientA
id: id003
user: usernameA
pass: passwordA
在我的模板中,我只需要提取用户的唯一值并通过。 我有这样的事情:
{{- range .Values.clients }}
- name: {{ .name | printf "user_%s" }}
valueFrom:
secretKeyRef:
name: somesecret
key: {{ .user | quote }}
- name: {{ .name | printf "pass_%s" }}
valueFrom:
secretKeyRef:
name: somesecret
key: {{ .pass | quote }}
{{- end }}
最终结果应该是这样的:
- name: user_clientA
valueFrom:
secretKeyRef:
name: somesecret
key: usernameA
- name: pass_clientA
valueFrom:
secretKeyRef:
name: somesecret
key: passwordA
- name: user_clientB
valueFrom:
secretKeyRef:
name: somesecret
key: usernameB
- name: pass_clientB
valueFrom:
secretKeyRef:
name: somesecret
key: passwordB
我试过 {{- range .Values.clients |选择“用户”“通过”| uniq }} 但似乎不起作用。我不知道怎么写,所以我可以只过滤“user”和“pass”键并丢弃重复项。
【问题讨论】:
标签: go range kubernetes-helm uniq