helm range在循环外获取值

问题描述 投票:0回答:2

我正在看他们在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并退出循环?

kubernetes kubernetes-helm
2个回答
2
投票

您可以使用变量:

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

0
投票

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

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 }}
© www.soinside.com 2019 - 2024. All rights reserved.