Extended project template with Python's Flask and Mongo.
You can find our final presentation here or on google drive in the most updated format here.
-
envFolder containing the env variables for redis and mongo for the docker-compose deployment -
helm-configHelm chart values for mongo and ingress-nginx -
k8sFolder containing the kubernetes deployments, apps and services for the ingress, order, payment and stock services. -
orderFolder containing the order application logic and dockerfile. -
paymentFolder containing the payment application logic and dockerfile. -
stockFolder containing the stock application logic and dockerfile. -
testFolder containing some basic correctness tests for the entire system. (Feel free to enhance them)
This section describes the setup required and the process of deploying and running our project.
Before you begin, make sure you have the following installed, and you are connected to the internet.
- kubectl install guide
- Helm install guide
- Minikube install guide
If you want to simply startup everything without much thinking run following script.
./super-start.sh
In a case something does not work follow this guide for manual deployment. Please follow the steps as described below:
Start your minikube cluster.
minikube start
Run our script to fetch Mongo recipe and deploy it
./deploy-charts-minikube.sh
Apply the defined scheme in k8s folder.
cd ./k8s
kubectl apply -f .
.
.
.
.
.
.
The project template contained the following information for deployment and startup
After coding the REST endpoint logic run docker-compose up --build in the base folder to test if your logic is correct
(you can use the provided tests in the \test folder and change them as you wish).
Requirements: You need to have docker and docker-compose installed on your machine.
This setup is for local k8s testing to see if your k8s config works before deploying to the cloud.
First deploy your database using helm by running the deploy-charts-minicube.sh file (in this example the DB is Redis
but you can find any database you want in https://artifacthub.io/ and adapt the script). Then adapt the k8s configuration files in the
\k8s folder to mach your system and then run kubectl apply -f . in the k8s folder.
Requirements: You need to have minikube (with ingress enabled) and helm installed on your machine.
Similarly to the minikube deployment but run the deploy-charts-cluster.sh in the helm step to also install an ingress to the cluster.
Requirements: You need to have access to kubectl of a k8s cluster.