Helmize
GitHub Toggle Dark/Light/Auto modeToggle Dark/Light/Auto modeToggle Dark/Light/Auto mode Back to homepage

Concept

Inner Workings

Helmize is included as library chart. It just has all the function it needs to render the structure you give it and then returns the resulting contents. So it’s basically just a render engine.

In the below image we have the Releases (which are effecitively values which install your helm chart). In your helm chart you see different yamls organized in a structure which depends on input conditions eg. locations. Your chart includes a configuration file which defines these conditions and allows you to map it two values. Helmize will read the configuration and render inputs according to it.

concept

For the Release Vanilla we see, that we have a configuration for the location which is east and a configuration for the env which is dev. On Install all files in the base/ folder are used, since these apply for all releases. For the location only the files in the location/east folder are considered. Same for the environment, only files in the environments/devfolder are considered. The release does not have a value for a customer but in the configuration we specified that the default value for customer is default. Therefor all files under customer/default are considered as well.

For the Release Customer A we see, that we have a value for the location which is west, a value for the env which is dev and prod and a value for customer which is A. On Install all files in the base/ folder are used, since these apply for all releases. For the location only the files in the location/west folder are considered. Same for the environment, only files in the environments/dev and environments/prod folder are considered. The customer is set to A therefor all files under customer/A are considered as well.

For both examples you might notice, that files with the same name are only present once in the resulting files. That’s because their content was merged. This way can just change eg. the version in the release.yaml without having to replicate the entire content and can adjust values on stage basis.

That’s it, See Quickstart for an easy example how to setup helmize up.