From 24e4bcb4378a17dd13c0d94822665304432052b0 Mon Sep 17 00:00:00 2001
From: Jan-404 <jan.schnaidt@student.reutlingen-university.de>
Date: Sun, 15 Dec 2024 13:11:06 +0100
Subject: [PATCH] Minikube deployment

---
 frontend/package-lock.json |  2 +
 minikube/backend.yaml      | 87 ++++++++++++++++++++++++++++++++++++++
 minikube/caddy.yaml        | 51 ++++++++++++++++++++++
 minikube/frontend.yaml     | 36 ++++++++++++++++
 minikube/mongoDB.yaml      | 49 +++++++++++++++++++++
 5 files changed, 225 insertions(+)
 create mode 100644 minikube/backend.yaml
 create mode 100644 minikube/caddy.yaml
 create mode 100644 minikube/frontend.yaml
 create mode 100644 minikube/mongoDB.yaml

diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 1d03c75..4d0799b 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -3842,6 +3842,7 @@
           "url": "https://opencollective.com/bootstrap"
         }
       ],
+      "license": "MIT",
       "peerDependencies": {
         "@popperjs/core": "^2.11.8"
       }
@@ -3851,6 +3852,7 @@
       "resolved": "https://registry.npmjs.org/bootstrap-vue/-/bootstrap-vue-2.23.1.tgz",
       "integrity": "sha512-SEWkG4LzmMuWjQdSYmAQk1G/oOKm37dtNfjB5kxq0YafnL2W6qUAmeDTcIZVbPiQd2OQlIkWOMPBRGySk/zGsg==",
       "hasInstallScript": true,
+      "license": "MIT",
       "dependencies": {
         "@nuxt/opencollective": "^0.3.2",
         "bootstrap": "^4.6.1",
diff --git a/minikube/backend.yaml b/minikube/backend.yaml
new file mode 100644
index 0000000..9f73841
--- /dev/null
+++ b/minikube/backend.yaml
@@ -0,0 +1,87 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: backend1
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: backend1
+  template:
+    metadata:
+      labels:
+        app: backend1
+    spec:
+      containers:
+        - name: backend1
+          image: todo-backend:latest
+          ports:
+            - containerPort: 9876
+          env:
+            - name: MONGO_USER
+              value: tododbuser
+            - name: MONGO_PASSWORD
+              value: tododbadminpassword
+            - name: MONGO_HOST
+              value: mongodb
+            - name: MONGO_PORT
+              value: "27017"
+            - name: MONGO_DB
+              value: todo
+            - name: SPRING_PROFILES_ACTIVE
+              value: instance-1
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: backend2
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: backend2
+  template:
+    metadata:
+      labels:
+        app: backend2
+    spec:
+      containers:
+        - name: backend2
+          image: todo-backend:latest
+          ports:
+            - containerPort: 9876
+          env:
+            - name: MONGO_USER
+              value: tododbuser
+            - name: MONGO_PASSWORD
+              value: tododbadminpassword
+            - name: MONGO_HOST
+              value: mongodb
+            - name: MONGO_PORT
+              value: "27017"
+            - name: MONGO_DB
+              value: todo
+            - name: SPRING_PROFILES_ACTIVE
+              value: instance-2
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: backend1
+spec:
+  ports:
+    - port: 9876
+      targetPort: 9876
+  selector:
+    app: backend1
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: backend2
+spec:
+  ports:
+    - port: 9877
+      targetPort: 9876
+  selector:
+    app: backend2
diff --git a/minikube/caddy.yaml b/minikube/caddy.yaml
new file mode 100644
index 0000000..120d15f
--- /dev/null
+++ b/minikube/caddy.yaml
@@ -0,0 +1,51 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: caddy
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: caddy
+  template:
+    metadata:
+      labels:
+        app: caddy
+    spec:
+      containers:
+        - name: caddy
+          image: caddy/caddy:alpine
+          ports:
+            - containerPort: 80
+          volumeMounts:
+            - name: caddyfile
+              mountPath: /etc/caddy/Caddyfile
+            - name: frontend-build
+              mountPath: /usr/share/caddy
+      volumes:
+        - name: caddyfile
+          configMap:
+            name: caddy-config
+        - name: frontend-build
+          emptyDir: {}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: caddy-config
+data:
+  Caddyfile: |
+    :80 {
+        reverse_proxy backend1:9876 backend2:9877
+    }
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: caddy
+spec:
+  ports:
+    - port: 80
+      targetPort: 80
+  selector:
+    app: caddy
diff --git a/minikube/frontend.yaml b/minikube/frontend.yaml
new file mode 100644
index 0000000..b1ea6c1
--- /dev/null
+++ b/minikube/frontend.yaml
@@ -0,0 +1,36 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: frontend
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: frontend
+  template:
+    metadata:
+      labels:
+        app: frontend
+    spec:
+      containers:
+        - name: frontend
+          image: todo-frontend:latest
+          ports:
+            - containerPort: 80
+          volumeMounts:
+            - name: frontend-build
+              mountPath: /usr/share/caddy
+      volumes:
+        - name: frontend-build
+          emptyDir: {}
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: frontend
+spec:
+  ports:
+    - port: 80
+      targetPort: 80
+  selector:
+    app: frontend
diff --git a/minikube/mongoDB.yaml b/minikube/mongoDB.yaml
new file mode 100644
index 0000000..7be6d17
--- /dev/null
+++ b/minikube/mongoDB.yaml
@@ -0,0 +1,49 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: mongodb
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: mongodb
+  template:
+    metadata:
+      labels:
+        app: mongodb
+    spec:
+      containers:
+        - name: mongodb
+          image: mongo:latest
+          ports:
+            - containerPort: 27017
+          env:
+            - name: MONGO_INITDB_ROOT_USERNAME
+              value: tododbuser
+            - name: MONGO_INITDB_ROOT_PASSWORD
+              value: tododbadminpassword
+            - name: MONGO_INITDB_DATABASE
+              value: todo
+          volumeMounts:
+            - name: mongo-data
+              mountPath: /data/db
+            - name: mongo-init
+              mountPath: /docker-entrypoint-initdb.d
+      volumes:
+        - name: mongo-data
+          hostPath:
+            path: ./data/db
+        - name: mongo-init
+          hostPath:
+            path: ./init-mongo.js
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: mongodb
+spec:
+  ports:
+    - port: 27017
+      targetPort: 27017
+  selector:
+    app: mongodb
-- 
GitLab