BBahmni 한국어 매뉴얼검색
한국어 번역 완료
한국어English

Install Bahmni on Kubernetes Minikube for Development

This document outlines running bahmni kubernetes cluster using minikube for local development. Minikube in general is not recomeded for Production usage (while technically possible) - for the biggest reason that it runs a single node kubernetes cluster and would result in a single point of failure (even if it could handle managing and scaling pods).

Prerequisite Knowledge:

Setup

  1. Install docker
  2. Install minikube >=1.25.2
  3. Install Helm-3
  4. Increase resources of your docker to a memory of atleast 8GB. (Mac / Windows)

You can also run minikube without using docker. Look here.

Start minikube with decent resources

you should see

Enable Ingress

Ingress would act as a controller to route between various applicaitons

minikube addons enable ingress

Add nginx ingress host entry to etc host

MacOS / Linux

Windows

Press the Windows key.

    Type Notepad in the search field.

    In the search results, right-click Notepad and select Run as administrator.

    From Notepad, open the following file:

    c:\Windows\System32\Drivers\etc\hosts

    Make the necessary changes to the file.

    Select File > Save to save your changes.

Run minikube tunnel in separate terminal

minikube tunnel runs as a process, creating a network route on the host to the service CIDR of the cluster using the cluster’s IP address as a gateway. The tunnel command exposes the external IP directly to any program running on the host operating system.

sudo minikube tunnel --alsologtostderr -v=1

Run this in a separate terminal and keep it open

Running MySQL DB Server

To uninstall or delete use

Running Database setup helm chart

helm install db-setup db-setup --repo https://bahmni.github.io/helm-charts --devel --wait --wait-for-jobs --atomic --timeout 1m \
          --set DB_HOST=openmrsdb \
          --set DB_ROOT_USERNAME=root \
          --set DB_ROOT_PASSWORD=root \
          --set databases.openmrs.DB_NAME=openmrs \
          --set databases.openmrs.USERNAME=openmrs-user \
          --set databases.openmrs.PASSWORD=password \
          --set databases.crater.DB_NAME=crater \
          --set databases.crater.USERNAME=crater-user \
          --set databases.crater.PASSWORD=password \
          --set databases.reports.DB_NAME=bahmni_reports \
          --set databases.reports.USERNAME=reports-user \
          --set databases.reports.PASSWORD=password

This command takes a while to complete. Once it is completed run the following command to remove database root credentials from the cluster.

helm uninstall db-setup

You can connect to your local mysql db using

followed by

Installing bahmni cluster using Helm-Umbrella Chart

Clone the helm-umbrella-chart repository and run below commands on your terminal (read the notes below if you need to toggle on/off certain services in the cluster)

helm dependency update
helm upgrade bahmni-local . --values=values/local.yaml --install
  • Toggle on the services in local.yaml based on your local setup requirements. Add any missing environment variables either in local.yaml or --set. Check helm upgrade ... for list of variable needed by each service.
  • To uninstall a release use helm uninstall [release name] which will uninstall all the resources under that release e.g. helm uninstall db-setup
  • Minikube runs in a VM (such as docker) and wont see your local built docker images. If you need to use your local docker images to be picked up while provisioning the pods on minikube you can use eval $(minikube docker-env) to actually configure your environment to utilise minikube's docker daemon for docker images. docs

Accessing Applications

Once the pods and services are running you can access it from the browser on

  1. Bahmni EMR --> https://bahmni.k8s/bahmni/home
  2. OpenMRS --> https://bahmni.k8s/openmrs
  3. Crater --> https://payments-bahmni.k8s/
원문 정보

Bahmni Wiki · CC BY-SA 4.0

원문 보기 ↗