Helm Variables: Difference between revisions
Line 22: | Line 22: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=Variables and Range Loops= | =Variables and Range Loops= | ||
Variables are particularly useful in range loops. They can be used on list-like objects to capture both the index and the value: | Variables are particularly useful in [[Helm Template range|range loops]]. They can be used on list-like objects to capture both the index and the value: | ||
<syntaxhighlight lang='yaml'> | <syntaxhighlight lang='yaml'> | ||
toppings: |- | toppings: |- |
Latest revision as of 01:06, 8 October 2020
External
Internal
Overview
A variable is a named reference to another built-in object or a constant. It is assigned and referred using the $<name> syntax. := is used as assignment operator.
{{- $relname := .Release.Name -}}
{{- $color := "green" -}}
...
data:
release: {{ $relname }}
color: {{ $color }}
Variables are less frequently used, as an alternative preferred construct is the named template.
Variable Scope
Variables are normally not "global". They are scoped to the block in which they are declared. However, there is one variable that is aways global: $. This variable will always point to the root context:
{{ $.Chart.AppVersion }}
Variables and Range Loops
Variables are particularly useful in range loops. They can be used on list-like objects to capture both the index and the value:
toppings: |-
{{- range $index, $topping := .Values.pizzaToppings }}
{{ $index }}: {{ $topping }}
{{- end }}
This will assign the integer index (0-based) to $index and the value to $topping. For data structures that have both key and value, range can be used to get both and assign them to variables:
{{- range $key, $val := .Values.favorite }}
{{ $key }}: {{ $val | quote }}
{{- end }}