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).
😄 minikube v1.25.2 on Darwin 10.15.7
✨ Using the docker driver based on user configuration
👍 Starting control plane node minikube in cluster minikube
🚜 Pulling base image ...
🔥 Creating docker container (CPUs=4, Memory=7000MB) ...\
Ingress would act as a controller to route between various applicaitons
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:
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
helm install --repo https://charts.bitnami.com/bitnami openmrsdb mysql --set auth.rootPassword=root --set image.tag=5.7
We have notice some local connection issues while provisioning mysql via community helm chart. You could alternatively use the db/openmrsdb.yaml specs to create the mysql deployment with persistent volume
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
Your local might be setup to query cloud K8s clusters e.g. aws. You need to ensure that you are in the minikube context for local development. Minikube bootstrap should take care of updating the kubectl current-context. You can verify and update the context using
//verify current context
$ kubectl config current-context
$ kubectl config view --minify
//Update current context to minikube
$ minikube update-context
Once the pods and services are running you can access it from the browser on