The results from the thesis can not be uploaded to Github because of their file size. Instead they are zipped and uploaded to: https://drive.google.com/file/d/1r-DbMiRJAOAF3xjA-t0pOvYENAZvQW_Y/view?usp=sharing
The docker-files in the different service folders should be executed from the git root.
The following environment variables should be used within the docker-compose files:
NODE_ENV
-> Set asNODE_ENV
during buildingNODE_CMD
-> Command to execute to start the container, eitherstart
for development with automatic restarting orproduction
for production.
Are in the libraries folder. The folder name should match their package name on npm so that during build the code can be rewritten to make regex pattern (\.\./)*libraries/amqpmessaging/index.js
-> @amicopo/amqpmessaging/index.js
In production each service should have their own database. In the docker-compose.yml files every service has their own mongodb service. However, because these all have the same name only one will be created and all services will communicate with the same mongodb database.
- Dashboard http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
- Prometheus: http://localhost:8001/api/v1/namespaces/monitoring/services/prometheus-server:80/proxy/
- Grafana:
make grafanaDashboard
then http://localhost:3000/login - RabbitMQ:
make rabbitmqDashboard
then http://localhost:15672/#/ - Traefik http: :32080 or :32443 or http://localhost:8001/api/v1/namespaces/default/services/traefik:80/proxy/
- Traefik dashboard:
make traefikDashboard
then http://localhost:9000/dashboard/ - Mailhog: http://localhost:8001/api/v1/namespaces/default/services/mailhog:8025/proxy/
- On the host pc run
cd server/install/ && python Arch-installer/serve.py config.sh
- On the server, boot into the archlinux live iso
- Download the installer by doing
curl <host pc ip>:8000/dl.sh | sh
- Start the installer:
./install.sh
- Follow the install instructions
Execute init.sh
on the server. This can be done by doing:
scp server/install/init.sh <server ip>:~/init.sh
ssh <server ip>
-
chmod +x init.sh
-
./init.sh
- Download kube config to local machine:
scp <server ip>:~/.kube/config ~/.kube/config
- Point the ssh command in
server/initKubernetes/build.sh
(line 12) to your server. - Run
make init
To deploy run make up
.
To remove the deployment run make down
To seed the database for stress testing run make seed
. Config for this can be found in kubernetes/dbInit.yaml
.