掌舵范围获得循环外的值

时间:2020-01-29 22:53:04

标签: kubernetes kubernetes-helm

我正在看他们在docs上的舵机范围示例。

yaml

favorite:
  drink: coffee
  food: pizza
pizzaToppings:
  - mushrooms
  - cheese
  - peppers
  - onions

头盔

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-configmap
data:
  myvalue: "Hello World"
  {{- with .Values.favorite }}
  drink: {{ .drink | default "tea" | quote }}
  food: {{ .food | upper | quote }}
  {{- end }}
  toppings: |-
    {{- range .Values.pizzaToppings }}
    - {{ . | title | quote }}
    - {{ .Values.favorite.drink }}
    {{- end }}

我对其进行了更新,使其具有- {{ .Values.favorite.drink }}这一行,但是当我运行helm template时,我得到了错误

can't evaluate field Values 

无论如何,是否可以从.Values函数中访问顶级range并退出循环?

2 个答案:

答案 0 :(得分:4)

您可以使用变量:

  toppings: |-
    {{- $drink := .Values.favorite.drink }}
    {{- range .Values.pizzaToppings }}
    - {{ . | title | quote }}
    - {{ $drink }}
    {{- end }}

如果愿意,也可以将Values分配给变量。

  toppings: |-
    {{- $val := .Values }}
    {{- range .Values.pizzaToppings }}
    - {{ . | title | quote }}
    - {{ $val.favorite.drink }}
    {{- end }}

答案 1 :(得分:2)

您还可以使用指向根上下文的全局变量$

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-configmap
data:
  myvalue: "Hello World"
  {{- with .Values.favorite }}
  drink: {{ .drink | default "tea" | quote }}
  food: {{ .food | upper | quote }}
  {{- end }}
  toppings: |-
    {{- range $.Values.pizzaToppings }}
    - {{ . | title | quote }}
    - {{ $.Values.favorite.drink }}
    {{- end }}
相关问题