Helm templates: Using fullname inside a range block

helm template fullname range

2 min read | by Jordi Prats

If we try to use the template fullname function inside a range block as follows:

{{ range .Values.secrets }} --- apiVersion: 'kubernetes-client.io/v1' kind: ExternalSecret metadata:  name: "{{ template "pet2cattle.fullname" . }}-{{ . | replace "_" "-" }}" (...) {{ end }} 

We will get a can't evaluate field Values in type string like follows:

Error: template: pet2cattle/templates/_helpers.tpl:14:14: executing "pet2cattle.fullname" at <.Values.fullnameOverride>: can't evaluate field Values in type string 

To be able to use the Values within a range block we need to access it using a dollar but since we are using an existing function we cannot change it directly. To be able to use it's value we can create a variable out it as follows:

{{- $fullName := include "pet2cattle.fullname" . -}} {{ range .Values.secrets }} --- apiVersion: 'kubernetes-client.io/v1' kind: ExternalSecret metadata:  name: "{{ $fullName }}-{{ . | replace "_" "-" }}" (...) {{ end }} 

Posted on 29/12/2021

Categories