The only pre-requisite is to run Kubernetes.
There are many ways to run Kubernetes, whether it is on the cloud or locally.
You can use any of the following to run Kubernetes in your preferred environment:
Install Nginx Ingress Controller https://github.com/kubernetes/ingress-nginx
kubectl apply -f ./deploy/kubernetes
kubectl create secret generic covidshield-secret --from-env-file=./deploy/kubernetes/secrets.development.env -n covidshield
View logs for key-submission Pod:
kubectl logs -f key-submission-xxxxxx
View the IP of the COVID Shield Ingress:
kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
covidshield <none> * 192.168.64.2 80 23m
Call a route in the COVID Shield application:
curl $INGRESS_IP/claim-key
Run this command in order to be able to pull images from your local Docker registry in Minikube:
eval $(minikube docker-env)
Enable Ingress Controller:
minikube addons enable ingress
View logs for key-submission Pod:
kubectl logs -f key-submission-xxxxxx
Call a route in the COVID Shield application:
MINIKUBE_IP=<YOUR_MINIKUBE_IP> curl $MINIKUBE_IP/claim-key
- Specifying a namespace in the
PersistentVolumeClaimmay not be necessary in environments outside of Minikube. - You will likely want/need to adjust the MySQL
PersistentVolumeto fit your environment. - Expect for the
key-retrievalDeployment to fail to start for ~30 seconds while themysqlDeployment spins up. - You must create the Kubernetes secret mentioned above for the pods to fully spin up.
- Do not commit the
secrets.development.envfile to version control. This file contains secrets and only exists in this repository for the reference implementation as an example.