Helm Variables: Difference between revisions
Line 4: | Line 4: | ||
* [[Helm_Templates#Variables|Helm Templates]] | * [[Helm_Templates#Variables|Helm Templates]] | ||
=Overview= | =Overview= | ||
A variable is a named reference to another object. It is assigned and referred using the $<name> syntax. := is used as assignment operator. | 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. | ||
<syntaxhighlight lang='yaml'> | <syntaxhighlight lang='yaml'> | ||
{{- $relname := .Release.Name -}} | {{- $relname := .Release.Name -}} | ||
{{- $color := "green" -}} | |||
... | ... | ||
data: | data: | ||
Line 28: | Line 29: | ||
{{- end }} | {{- end }} | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=Variable Scope= | =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: | 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: |
Revision as of 01:02, 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 }}
Variables are less frequently used, as an alternative preferred construct is the named template.
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 }}
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 }}