Helm:从键可变的 Map 中获取值

Tas*_*med 7 kubernetes-helm

我有一个舵图如下

dns_entries:
  cluster1: xx.xx.xx.xx
  cluster2: xx.xx.xx.xx
Run Code Online (Sandbox Code Playgroud)

安装 Helm Chart 时也会动态设置集群值。在模板中,我需要从上面的地图中动态选择它

{{- if hasKey .Values.dns_entries .Values.clusterId }}
  clusterIP: {{ .Values.dns_entries.{{ .Values.clusterId }} }}
  {{- end }}
Run Code Online (Sandbox Code Playgroud)

我怎样才能正确实施上述内容?

谢谢!

jam*_*lak 18

https://helm.sh/docs/chart_template_guide/function_list/

get

给定一个映射和一个键,从映射中获取值。

get $myDict "key1"

get .Values.dns_entries .Values.clusterId
Run Code Online (Sandbox Code Playgroud)


Tas*_*med 3

我发现我需要使用内置函数迭代地图。

{{- if hasKey .Values.dns_entries .Values.clusterId }}
{{- range $key, $value := .Values.dns_entries }}
  {{- if eq $key .Values.clusterId }}
  clusterIP: $value
  {{- end }}
  {{- end }}
{{- end }}
Run Code Online (Sandbox Code Playgroud)