Search code examples
kubernetes-helm

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


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?


Solution

  • 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