I have a Kubernetes cluster that runs a number of independent, discrete services. I want to use helm to deploy them, and I have made a helm chart for every individual resource.
However, now I want to be able to deploy the cluster as a single entity, but it is not clear to me how helm supports stitching together multiple charts.
When I look at example repos, they simply have every single template file in the template folder of a single chart, and then a giant, sprawling Values.yaml file.
To me, that seems unwieldly, especially crawling around a 2000 line Values.yaml looking for settings.
Is there any way to take a folder structure that looks like this:
helm
|____ Service1
|_______ values.yaml
|_______ templates
Service2
|_______ values.yaml
|_______ templates
Service3
|_______ values.yaml
|_______ templates
And package it into one deployment without manually merging and de-duping the files and values?
We also have similar scenarios wherein we have independent applications that we either need to deploy together to address features that span across them or individually deployed to address bugs. We end up using helmfile (https://github.com/roboll/helmfile). Each application still maintain their own charts, using helmfile, we can deploy them altogether if need to.
Use helm subcharts
You'd need to have something like a meta-chart, myapps
. Then you'd add a requirements.yaml
file like so:
# myapp/requirements.yaml
dependencies:
- name: Service1
repository: http://localhost:10191
version: 0.1.0
- name: Service2
repository: http://localhost:10191
version: 0.1.0
- name: Service3
repository: http://localhost:10191
version: 0.1.0