Building robust helm charts
In my current work, there is often the need to deploy a similar application stack in various configurations, to several environments. Each configuration may vary in terms of scale, uptime requirements and feature flagging. Due to a lot of flux in infrastructure set up, each environment is also not equivalent. On top of this, there are obviously financial requirements to run all of this as cheaply as possible. Kubernetes and helm templating are valuable tools in this situation, they allow us to create a configuration blueprint with the details abstracted in values.yaml files.
Use helm’s built in linter
Let’s start with the basics, helm provides a helm lint command which performs checks
YAML syntax
Template rendering
Missing or misnamed required files
Best practice violations
You can run this with your different values.yaml files to ensure that all your configurations are compliant.
It’s also a good idea to use the helm template command to actually check that helm is able to render your templates.
... continue reading