What is Helm-chart?
https://helm.sh/Bahmni: Helm Charts
Bahmni is using Helm-charts for its Kubernetes Packaging Structure
. All the deployments in the Lite env happened using helm-charts deployment. We have implemented helm-umbrella-charts for better management of resources.
Below is the K8s packaging Structure we follow in Bahmni:
Helm with Umbrella Charts Directory Structure for Applications: --- bahmni (openmrs-module-bahmniapps repo) - package - docker - Dockerfile - .... - helm -- Chart.yaml --> holds the chart definition -- values.yaml --> default values, secret ref - templates -- deployment -- service -- secrets --- openmrs (openmrs-module-bahmni-distro repo) - package - docker - Dockerfile - ... - helm -- Chart.yaml --> holds the chart definition -- values.yaml --> default values, secret ref - templates -- deployment -- service -- secrets ================================================================================= ================================================================================= --- helm-charts (https://github.com/Bahmni/helm-charts/tree/gh-pages) -- openmrs (Application folder) - openmrs-<release_tag>.tgz ---> Relase of <Application> -- clinic-config - clinic-config-<Release_tag>.tgz --- Umbrella charts (https://github.com/Bahmni/helm-umbrella-chart) -- Chart.yaml --> Contains the dependencies defined helm-charts - clinic - dev.yaml - qa.yaml - demo.yaml - prod.yaml
In Application Repo, we defined the package for both docker & helm.
Docker folder contains
Dockerfile
& other related files needed for docker-compose setupHelm folder contains the helm templates like,
values.yaml
,chart.yaml
& related Kubernetes components definition likedeployments
,services
,secrets
etc.
Helm-charts: This is used to store the deployed helm-charts tagged build under
gh-pages
Umbrella-charts: This is used to define the dependent charts to be deployed in the environment along with the individual env values defined in
dev.yaml
,qa.yaml
,demo.yaml
.
Pipeline Visualisation
Below is the pictorial representation of deployment pipeline.
References
https://www.containiq.com/post/helm-chartshttps://www.digitalocean.com/community/tutorials/an-introduction-to-helm-the-package-manager-for-kubernetes
https://github.com/helm/examples
Video Recording about Bahmni Helm-charts
https://thoughtworks.zoom.us/rec/share/y_mdW5zvdapFmpZ1ymkLEOHEob9vu7u-GjelszpmEsEuDG_AIj5U2LPB98-Rm_HS.RjrPR9cd58KNKdJ0
Passcode: VB?WSC#3
NOTE: Please contact Infra squad (Slack: #bahmni-infra) if you are facing any issues related to helm-charts & Deployments