Helm Template range: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 67: Line 67:
=Iterating over a Map=
=Iterating over a Map=


It uses variables.
It uses [[Helm_Templates#Template_Variables|variables]].


values.yaml:
values.yaml:

Revision as of 00:42, 10 October 2019

External

Internal

Overview

range provides a "for each" loop. It "ranges over".

The range operator sets the scope to ".", so the simples way to access the current iteration element is with {{ . }} Variables can also be used.

Iterating over an In-Line List

env:
{{- range list "blue" "red" "green" }}
- name: {{ . | upper | printf "COLOR_%s" }}
  value: {{ . -}}
{{ end }}

The result is:

env:
- name: COLOR_BLUE
  value: blue
- name: COLOR_RED
  value: red
- name: COLOR_GREEN
  value: green

Iterating over a .Values List

values.yaml:

colors:
  - blue
  - red
  - green
  - yellow

Template:

env:
{{- range .Values.colors }}
- name: {{ . | upper | printf "COLOR_%s" }}
  value: {{ . -}}
{{ end }}

Result:

env:
- name: COLOR_BLUE
  value: blue
- name: COLOR_RED
  value: red
- name: COLOR_GREEN
  value: green
- name: COLOR_YELLOW
  value: yellow

Iterating over a Map

It uses variables.

values.yaml:

shapes:
  FIRST_SHAPE: square
  SECOND_SHAPE: circle
  THIRD_SHAPE: triangle

Template:

env:
{{- range $k, $v := .Values.shapes }}
- name: {{ $k }}
  value: {{ $v | upper -}}
{{ end }}

Result:

env:
- name: FIRST_SHAPE
  value: SQUARE
- name: SECOND_SHAPE
  value: CIRCLE
- name: THIRD_SHAPE
  value: TRIANGLE