Helm Loops: Helm Hack #1
Discover how to add Helm Loops to your helm charts to provide more dynamic behavior to your Helm Charts.
--
Introduction
Helm Charts are becoming the default de-factor solution when you want to package your Kubernetes deployment to be able to distribute or quickly install it in your system.
Defined several times as the apt for Kubernetes for its similarity with the ancient package manager from GNU/Linux Debian-like distributions, it seems to continue to grow in popularity each month compared with other similar solutions even more tightly integrated into Kubernetes such as Kustomize, as you can see in the Google Trends picture below:
But creating these helm charts is not as easy as it shows. If you already have been on the work of doing so, you probably get stuck at some point, or you spend a lot of time trying to do some things. If this is the first time you are creating one or trying to do something advanced, I hope all these tricks will help you on your journey. Today we are going to cover one of the most important tricks, and those are Helm Loops.
Helm Loops Introduction
If you see any helm chart for sure, you will have a lot of conditional blocks. Pretty much everything is covered under an if/else structure based on the values.yml files you are creating. But this gets a little bit tricky when we talk about loops. But the great thing is that you will have the option to execute a helm loop inside your helm charts using the range
primitive.
How to create a Helm Loop?
The usage of the range
primitive is quite simple, as you only need to specify the element you want to iterate across, as shown in the snippet below:
{{- range .Values.pizzaToppings }}
- {{ . | title | quote }}
{{- end }}
This is a pretty simple sample where the yaml will iterate over the values that you have assigned to the pizzaToppings
structure in your values.yml