Helm range without leaving global scope

When entering a loop block you lose your global context when using .. You can access the global context by using $. instead.

As written in the Helm docs –

there is one variable that is always global – $ – this variable will always point to the root context. This can be very useful when you are looping in a range and need to know the chart’s release name.

In your example, using this would look something like:

{{- range .Values.nodes }}
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: {{ $.Release.Name }}
  labels:
    .
    .
    .    
        env:
          - name: IP_ADDRESS
            value: {{ .ip_address }}
    .
    .
    .
{{- end }}

Leave a Comment