Helm Notable Values: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
 
(5 intermediate revisions by the same user not shown)
Line 23: Line 23:
{{ if empty .Values.myValue }}
{{ if empty .Values.myValue }}
{{ if (eq 0 (int .Values.myValue)) }}
{{ if (eq 0 (int .Values.myValue)) }}
</syntaxhighlight>
<syntaxhighlight lang='yaml'>
{{ printf "%T" .Values.myValue }}
</syntaxhighlight>
returns <code>float64</code>
<syntaxhighlight lang='yaml'>
{{ typeOf .Values.myValue }}
</syntaxhighlight>
returns <code>float64</code>
==Distinguishing between Zero and Empty String==
<syntaxhighlight lang='yaml'>
{{- if kindIs "float64" .Values.myValue -}}
    {{- if .Values.myValue -}}
        {{- .Values.myValue -}}
    {{- else -}}
        0
    {{- end -}}
{{- end -}}
</syntaxhighlight>
</syntaxhighlight>


Line 38: Line 58:
</syntaxhighlight>
</syntaxhighlight>
returns <code><nil></code>
returns <code><nil></code>
<syntaxhighlight lang='yaml'>
<syntaxhighlight lang='yaml'>
{{ typeOf .Values.myValue }}
{{ typeOf .Values.myValue }}
Line 45: Line 64:


=Empty String=
=Empty String=
=Missing YAML Path Elements=
See: {{Internal|Helm_Template_If/Else#nil_pointer_evaluating_interface|if/else, nil pointer evaluating interface}}

Latest revision as of 02:04, 9 February 2022

Internal

Numeric Zero

For a numeric zero declared as:

myValue: 0

the following expressions evaluate to false:

Evaluates to false:

{{ if .Values.myValue }}

the following expressions evaluate to true:

{{ if empty .Values.myValue }}
{{ if (eq 0 (int .Values.myValue)) }}
{{ printf "%T" .Values.myValue }}

returns float64

{{ typeOf .Values.myValue }}

returns float64

Distinguishing between Zero and Empty String

{{- if kindIs "float64" .Values.myValue -}}
    {{- if .Values.myValue -}}
        {{- .Values.myValue -}}
    {{- else -}}
        0
    {{- end -}}
{{- end -}}

Boolean True

Boolean False

Empty Value (nil)

myValue:
{{ printf "%T" .Values.myValue }}

returns <nil>

{{ typeOf .Values.myValue }}

returns <nil>

Empty String

Missing YAML Path Elements

See:

if/else, nil pointer evaluating interface