Helm Template If/Else: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 41: Line 41:


=Expression=
=Expression=
<code>if</code> expressions are built with functions: <code>eq</code>, <code>ne</code>, <code>lt</code>, <code>gt</code>, <code>and</code>, <code>or</code>, so the function name is provided first, followed by the arguments. Functions can be grouped with ( ).


==Testing the Existence of Two Configuration Elements in the Same Expression==
==Testing the Existence of Two Configuration Elements in the Same Expression==
Line 77: Line 79:
{{- end }}
{{- end }}
</syntaxhighlight>
</syntaxhighlight>
Functions: eq, ne, lt, gt, and, or. They can be grouped with ( ).


<syntaxhighlight lang='yaml'>
<syntaxhighlight lang='yaml'>

Revision as of 00:59, 21 August 2020

External

Internal

Overview

if/else can be used to create conditional blocks.

The if control structures evaluate pipelines, not just values (values are a special case of a pipeline):

{{ if PIPELINE }}
  # Do something
{{ else if OTHER_PIPELINE }}
  # Do something else
{{ else }}
  # Default case
{{ end }}

A pipeline evaluates to false if the result of the pipeline, or the value, is:

  • a boolean false
  • a numeric zero
  • an empty string
  • a nil (empty or null)
  • an empty collection (map, slice, tuple, dict, array).

In any other case, the condition is evaluated to true.

Example:

{{ if .Values.debug }}
  # Do something
{{ else }}
  # Do something else
{{ end }}

Expression

if expressions are built with functions: eq, ne, lt, gt, and, or, so the function name is provided first, followed by the arguments. Functions can be grouped with ( ).

Testing the Existence of Two Configuration Elements in the Same Expression

{{- if or .Values.myApp.config.local .Values.myApp.config.nfs }}
   ...
{{- end }}

Testing the Non-Existence of a Configuration Element

The following conditional evaluates to true and the embedded content is rendered if the configuration element does NOT exist:

{{- if not .Values.myApp.something }}
... 
{{- end }}

Testing Equality and Inequality of Values

{{- if eq .Values.myApp.color "blue" }}
... 
{{- end }}
{{- if ne .Values.myApp.color "blue" }}
... 
{{- end }}
{{- if eq .Values.myApp.something .Values.myApp.somethingElse }}
... 
{{- end }}
{{- if and (eq .Values.myApp.color "blue") (eq .Values.myApp.shape "square") }}
... 
{{- end }}

Interesting Links