From 6fd4b269cf7c8106f5d9608e217231d3a2cfe769 Mon Sep 17 00:00:00 2001 From: Jesus Galaz <jesusgalazr@icloud.com> Date: Mon, 16 Dec 2024 00:56:24 +0100 Subject: [PATCH] fix(mongodb): Migrate MongoDB to StatefulSet for Improved Data Persistence and Stability This MR updates the MongoDB deployment to use a StatefulSet instead of a Deployment. Key changes include: 1. Replaced Deployment with StatefulSet for better handling of stateful workloads. 2. Added volumeClaimTemplates for dynamic PVC provisioning, ensuring dedicated storage per pod. 3. Updated the MongoDB service to a Headless Service to provide stable DNS for the StatefulSet pods. These changes ensure stable pod identities, reliable data persistence, and improved scalability for MongoDB. --- mongodb-deployment.yml | 28 ++++++++++------------------ mongodb-service.yml | 1 + 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/mongodb-deployment.yml b/mongodb-deployment.yml index 58fa9fd..bb557d4 100644 --- a/mongodb-deployment.yml +++ b/mongodb-deployment.yml @@ -1,25 +1,13 @@ -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: mongo-pvc -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 1Gi ---- apiVersion: apps/v1 -kind: Deployment +kind: StatefulSet metadata: name: mongodb - labels: - app: mongodb spec: replicas: 1 selector: matchLabels: app: mongodb + serviceName: mongodb template: metadata: labels: @@ -38,7 +26,11 @@ spec: volumeMounts: - name: mongo-data mountPath: /data/db - volumes: - - name: mongo-data - persistentVolumeClaim: - claimName: mongo-pvc + volumeClaimTemplates: + - metadata: + name: mongo-data + spec: + accessModes: ["ReadWriteOnce"] + resources: + requests: + storage: 1Gi diff --git a/mongodb-service.yml b/mongodb-service.yml index 00a4a7d..976b64c 100644 --- a/mongodb-service.yml +++ b/mongodb-service.yml @@ -3,6 +3,7 @@ kind: Service metadata: name: mongodb spec: + clusterIP: None ports: - port: 27017 targetPort: 27017 -- GitLab