Helm Conditional Templates

9/10/2019

I found that we can create subcharts and conditionally include them as described here: Helm conditionally install subchart

I have just one template that I want conditionally include in my chart but I could not find anything in the docs. Is there such feature?

-- Eduardo
kubernetes
kubernetes-helm

2 Answers

9/10/2019

I discovered that empty templates are not loaded. I solved it by wrapping my yaml file content in an if condition.

{{ if .Values.something }}
content of yaml file
{{ end }}
-- Eduardo
Source: StackOverflow

9/10/2019

You simply wrap the template resource at the first and last lines with the check you want to do. Let's take the official Grafana chart as example:

In its values.yaml, it has a flag called ingress.enabled, which looks like the following:

ingress:
  enabled: false

Then in its ingress template resource, this flag is checked:

{{- if .Values.ingress.enabled -}}
...
apiVersion: extensions/v1beta1
kind: Ingress
...
{{- end }}

As a result, ingress object will only be created if ingress.enabled is set to true.

-- Utku Ă–zdemir
Source: StackOverflow