диапазон руля получить значения за пределами цикла - PullRequest
0 голосов
/ 30 января 2020

Я смотрел на пример диапазона штурвала у них на документах .

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 и экранирование l oop?

Ответы [ 2 ]

4 голосов
/ 30 января 2020

Вы можете использовать переменную:

  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 }}
2 голосов
/ 30 января 2020

Вы также можете использовать глобальную переменную $, которая указывает на контекст root

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 }}
...