From 2b52016ba5a64920cb1a33081ee019abcd599510 Mon Sep 17 00:00:00 2001 From: Rohit27305 Date: Sat, 4 Jan 2025 22:53:56 +0530 Subject: [PATCH 1/3] Kubernets added --- Kubernetes/backend-deployment-service.yml | 38 ++++++++++++++++++++ Kubernetes/frontend-deployment-service.yml | 34 ++++++++++++++++++ Kubernetes/mongo-deployment-service.yml | 40 ++++++++++++++++++++++ Kubernetes/persistent-volume.yml | 24 +++++++++++++ server/.env | 2 +- 5 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 Kubernetes/backend-deployment-service.yml create mode 100644 Kubernetes/frontend-deployment-service.yml create mode 100644 Kubernetes/mongo-deployment-service.yml create mode 100644 Kubernetes/persistent-volume.yml diff --git a/Kubernetes/backend-deployment-service.yml b/Kubernetes/backend-deployment-service.yml new file mode 100644 index 000000000..d1515f0ab --- /dev/null +++ b/Kubernetes/backend-deployment-service.yml @@ -0,0 +1,38 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: backend-deployment + namespace: chatapp-ns +spec: + replicas: 1 + selector: + matchLabels: + app: backend + template: + metadata: + labels: + app: backend + spec: + containers: + - name: backend + image: rohit273/chatapp-backend:latest + ports: + - containerPort: 5000 + env: + - name: MONGO_URL + value: "mongodb://mongodb-svc:27017/chat" + - name: PORT + value: "5000" +--- +apiVersion: v1 +kind: Service +metadata: + name: backend-svc + namespace: chatapp-ns +spec: + selector: + app: backend + ports: + - protocol: TCP + port: 5000 + targetPort: 5000 diff --git a/Kubernetes/frontend-deployment-service.yml b/Kubernetes/frontend-deployment-service.yml new file mode 100644 index 000000000..9238378df --- /dev/null +++ b/Kubernetes/frontend-deployment-service.yml @@ -0,0 +1,34 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: frontend-deployment + namespace: chatapp-ns +spec: + replicas: 1 + selector: + matchLabels: + app: frontend + template: + metadata: + labels: + app: frontend + spec: + containers: + - name: frontend + image: rohit273/chatapp-frontend:latest + ports: + - containerPort: 3000 +--- +apiVersion: v1 +kind: Service +metadata: + name: frontend-svc + namespace: chatapp-ns +spec: + selector: + app: frontend + ports: + - protocol: TCP + port: 3000 + targetPort: 3000 + type: LoadBalancer diff --git a/Kubernetes/mongo-deployment-service.yml b/Kubernetes/mongo-deployment-service.yml new file mode 100644 index 000000000..246231530 --- /dev/null +++ b/Kubernetes/mongo-deployment-service.yml @@ -0,0 +1,40 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mongodb-deployment + namespace: chatapp-ns +spec: + replicas: 1 + selector: + matchLabels: + app: mongodb + template: + metadata: + labels: + app: mongodb + spec: + containers: + - name: mongodb + image: mongo:latest + ports: + - containerPort: 27017 + volumeMounts: + - mountPath: /data/db + name: mongodb-storage + volumes: + - name: mongodb-storage + persistentVolumeClaim: + claimName: mongodb-pvc +--- +apiVersion: v1 +kind: Service +metadata: + name: mongodb-svc + namespace: chatapp-ns +spec: + selector: + app: mongodb + ports: + - protocol: TCP + port: 27017 + targetPort: 27017 diff --git a/Kubernetes/persistent-volume.yml b/Kubernetes/persistent-volume.yml new file mode 100644 index 000000000..4e3173242 --- /dev/null +++ b/Kubernetes/persistent-volume.yml @@ -0,0 +1,24 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: mongodb-pv + namespace: chatapp-ns +spec: + capacity: + storage: 1Gi + accessModes: + - ReadWriteOnce + hostPath: + path: /data/db +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: mongodb-pvc + namespace: chatapp-ns +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi diff --git a/server/.env b/server/.env index ef47b5c41..6ab2a41b1 100644 --- a/server/.env +++ b/server/.env @@ -1,2 +1,2 @@ PORT=5000 -MONGO_URL="mongodb://localhost:27017/chat" \ No newline at end of file +MONGO_URL="mongodb://mongo-svc:27017/chat" \ No newline at end of file From acd9c78f3d369f3d1d24b118086906a1166de9ef Mon Sep 17 00:00:00 2001 From: Rohit27305 Date: Sat, 4 Jan 2025 23:37:20 +0530 Subject: [PATCH 2/3] Kubernetes manifest files added --- Kubernetes/ingress.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Kubernetes/ingress.yml diff --git a/Kubernetes/ingress.yml b/Kubernetes/ingress.yml new file mode 100644 index 000000000..bb359d4dc --- /dev/null +++ b/Kubernetes/ingress.yml @@ -0,0 +1,31 @@ + +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: chatapp-ingress + namespace: chatapp-ns + labels: + name: chatapp-ingress + annotations: # Corrected from annotation to annotations + nginx.ingress.kubernetes.io/rewrite-target: / + nginx.ingress.kubernetes.io/ssl-redirect: "false" + +spec: + rules: + - host: localhost + http: + paths: + - pathType: Prefix + path: "/" + backend: + service: + name: frontend-svc + port: + number: 3000 + - pathType: Prefix + path: "/api" + backend: + service: + name: backend-svc + port: + number: 5000 From eaeb6e90cb7a36b085aa6f65e1bce5988493d1e5 Mon Sep 17 00:00:00 2001 From: Rohit27305 Date: Sun, 9 Feb 2025 09:50:30 +0530 Subject: [PATCH 3/3] UPDATED --- Kubernetes/frontend-deployment-service.yml | 2 +- Kubernetes/ingress.yml | 31 ---------------------- Kubernetes/mongo-deployment-service.yml | 1 + Kubernetes/persistent-volume.yml | 3 +++ 4 files changed, 5 insertions(+), 32 deletions(-) delete mode 100644 Kubernetes/ingress.yml diff --git a/Kubernetes/frontend-deployment-service.yml b/Kubernetes/frontend-deployment-service.yml index 9238378df..1f116be76 100644 --- a/Kubernetes/frontend-deployment-service.yml +++ b/Kubernetes/frontend-deployment-service.yml @@ -31,4 +31,4 @@ spec: - protocol: TCP port: 3000 targetPort: 3000 - type: LoadBalancer + type: ClusterIP diff --git a/Kubernetes/ingress.yml b/Kubernetes/ingress.yml deleted file mode 100644 index bb359d4dc..000000000 --- a/Kubernetes/ingress.yml +++ /dev/null @@ -1,31 +0,0 @@ - -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: chatapp-ingress - namespace: chatapp-ns - labels: - name: chatapp-ingress - annotations: # Corrected from annotation to annotations - nginx.ingress.kubernetes.io/rewrite-target: / - nginx.ingress.kubernetes.io/ssl-redirect: "false" - -spec: - rules: - - host: localhost - http: - paths: - - pathType: Prefix - path: "/" - backend: - service: - name: frontend-svc - port: - number: 3000 - - pathType: Prefix - path: "/api" - backend: - service: - name: backend-svc - port: - number: 5000 diff --git a/Kubernetes/mongo-deployment-service.yml b/Kubernetes/mongo-deployment-service.yml index 246231530..0bd68c26d 100644 --- a/Kubernetes/mongo-deployment-service.yml +++ b/Kubernetes/mongo-deployment-service.yml @@ -12,6 +12,7 @@ spec: metadata: labels: app: mongodb + type: NodePort spec: containers: - name: mongodb diff --git a/Kubernetes/persistent-volume.yml b/Kubernetes/persistent-volume.yml index 4e3173242..eecb227e8 100644 --- a/Kubernetes/persistent-volume.yml +++ b/Kubernetes/persistent-volume.yml @@ -8,6 +8,8 @@ spec: storage: 1Gi accessModes: - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + storageClassName: standard hostPath: path: /data/db --- @@ -22,3 +24,4 @@ spec: resources: requests: storage: 1Gi + storageClassName: standard