The roles and symbiosis of Helm and Kustomize

Hi,

I am very new to Kubernetes, but am excited to learn and get going :slight_smile:

I have some questions concerning Helm and Kustomize that I would like to discuss. Some of what I’ve learnt may be wrong, so therefore I will include how I understand the concepts so that you can correct me if I am making incorrect conclusions.

How I understand Helm:

Helm keeps track of “default installations” of different softwares using so called charts.
All customisation made to the charts should be done by editing a values.yaml file before installing the chart (alternatively --set flags on CLI).

Pros:

  • Easy to get updated charts by just updatering the Help repo

Cons:

  • I see no good way to keep a consistent way of working with and keeping track of multiple services, values files and deployments

How I understand Kustomize:

Kustomize is a software that “compiles” kubernetes-ready .yaml resources for services from a base configuration and directories containing settings to be changed (overlay) for the specific deployments.

Pros:

  • Easy to keep track of multiple deployments of the same service
  • Keep common settings in the same place reducing duplication of those shared settings
  • Easy to version in a Git repo (very nice)

Cons:

  • No repositories, meaning no means of updating the base image without any external tool or manual work

My questions:

Is there any way to combine these two in a way that is not frowned upon and still gives me all the pros, practically cancelling out each others cons?

I feel like theese two tools both are great at what they do, but are really incomplete without each other.

Thanks for any assistance! :slight_smile: