Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

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:

Code Block
 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 setup

    • Helm folder contains the helm templates like, values.yaml, chart.yaml & related Kubernetes components definition like deployments , 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-charts

https://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


Panel
panelIconIdatlassian-info
panelIcon:info:
bgColor#EAE6FF

NOTE: Please contact Infra squad (Slack: #bahmni-infra) if you are facing any issues while accessing Grafana dashboards.