How to create a helm chart to deploy multiple applications using the same value.yaml file

anish anil picture anish anil · Feb 15, 2018 · Viewed 22.9k times · Source

I'm trying to deploy an HTTPD instance and a couch db instance using the same values.yaml file

Is there a default document that can help me understand how to deploy two instances and there services using the same values.yaml file?

Anyone with a sample helm directory with multiple deployments and services created?

Answer

nickgryg picture nickgryg · Feb 16, 2018

You need to put both services into one helm chart. So they will use only one same values.yaml.

As a sample, I suggest you to look to stable/prometheus helm chart. Right now it has five separated services:

$ tree 
.
├── Chart.yaml
├── README.md
├── templates
│   ├── alertmanager-clusterrolebinding.yaml
│   ├── alertmanager-configmap.yaml
│   ├── alertmanager-deployment.yaml
│   ├── alertmanager-ingress.yaml
│   ├── alertmanager-networkpolicy.yaml
│   ├── alertmanager-pvc.yaml
│   ├── alertmanager-serviceaccount.yaml
│   ├── alertmanager-service.yaml
│   ├── _helpers.tpl
│   ├── kube-state-metrics-clusterrolebinding.yaml
│   ├── kube-state-metrics-clusterrole.yaml
│   ├── kube-state-metrics-deployment.yaml
│   ├── kube-state-metrics-networkpolicy.yaml
│   ├── kube-state-metrics-serviceaccount.yaml
│   ├── kube-state-metrics-svc.yaml
│   ├── node-exporter-clusterrolebinding.yaml
│   ├── node-exporter-daemonset.yaml
│   ├── node-exporter-serviceaccount.yaml
│   ├── node-exporter-service.yaml
│   ├── NOTES.txt
│   ├── pushgateway-deployment.yaml
│   ├── pushgateway-ingress.yaml
│   ├── pushgateway-service.yaml
│   ├── server-clusterrolebinding.yaml
│   ├── server-clusterrole.yaml
│   ├── server-configmap.yaml
│   ├── server-deployment.yaml
│   ├── server-ingress.yaml
│   ├── server-networkpolicy.yaml
│   ├── server-pvc.yaml
│   ├── server-serviceaccount.yaml
│   └── server-service.yaml
└── values.yaml