What’s the best way to manage Helm charts?
Whether you love it or hate it, Helm is a ubiquitous tool for managing Kubernetes applications. You can use it in many different ways which is great, but can also be overwhelming.
We’ve noticed that a couple of questions keep popping up:
- Where do you put your Helm charts?
Do you keep them with the app files or use a chart repository? - How do you divide up your Helm charts?
Do you use one shared chart or maintain a chart for each service?
I’m going to try and address these questions based on our experience with the startups in our portfolio but I also draw on the perspectives of larger organizations too.
Here are the options that I’ll be outlining:
- Using a chart repository to store one big shared chart
- Using a chart repository to store many service-specific charts.
- Using service-specific charts which are stored in the same repository as the service itself (spoiler alert: we prefer this one).
I’ll then cover factors such as dependency variance and team structure that you should consider when deciding on one of these options.