├── README.md ├── mongodb-client.yaml ├── mongodb-deployment.yaml ├── mongodb-nodeport-svc.yaml ├── mongodb-pv.yaml ├── mongodb-pvc.yaml └── mongodb-secrets.yaml /README.md: -------------------------------------------------------------------------------- 1 | # kubernetes mongodb Manifest YAML's 2 | 3 | Kubernetes manifests for mongoDB Deployment. 4 | 5 | Full Documentation: Refer https://devopscube.com/deploy-mongodb-kubernetes/ for step by step process to use these manifests. 6 | -------------------------------------------------------------------------------- /mongodb-client.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | labels: 5 | app: mongo-client 6 | name: mongo-client 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | app: mongo-client 12 | template: 13 | metadata: 14 | labels: 15 | app: mongo-client 16 | spec: 17 | containers: 18 | - image: mongo 19 | name: mongo-client 20 | env: 21 | - name: mongo-client_INITDB_ROOT_USERNAME 22 | value: 'dummy' 23 | - name: mongo-client_INITDB_ROOT_PASSWORD 24 | value: 'dummy' 25 | -------------------------------------------------------------------------------- /mongodb-deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | labels: 5 | app: mongo 6 | name: mongo 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | app: mongo 12 | strategy: {} 13 | template: 14 | metadata: 15 | labels: 16 | app: mongo 17 | spec: 18 | containers: 19 | - image: mongo 20 | name: mongo 21 | args: ["--dbpath","/data/db"] 22 | livenessProbe: 23 | exec: 24 | command: 25 | - mongosh 26 | - --eval 27 | - "db.adminCommand('ping')" 28 | initialDelaySeconds: 30 29 | periodSeconds: 10 30 | timeoutSeconds: 5 31 | successThreshold: 1 32 | failureThreshold: 6 33 | readinessProbe: 34 | exec: 35 | command: 36 | - mongosh 37 | - --eval 38 | - "db.adminCommand('ping')" 39 | initialDelaySeconds: 30 40 | periodSeconds: 10 41 | timeoutSeconds: 5 42 | successThreshold: 1 43 | failureThreshold: 6 44 | env: 45 | - name: MONGO_INITDB_ROOT_USERNAME 46 | valueFrom: 47 | secretKeyRef: 48 | name: mongo-creds 49 | key: username 50 | - name: MONGO_INITDB_ROOT_PASSWORD 51 | valueFrom: 52 | secretKeyRef: 53 | name: mongo-creds 54 | key: password 55 | volumeMounts: 56 | - name: "mongo-data-dir" 57 | mountPath: "/data/db" 58 | volumes: 59 | - name: "mongo-data-dir" 60 | persistentVolumeClaim: 61 | claimName: "mongo-data" 62 | -------------------------------------------------------------------------------- /mongodb-nodeport-svc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: mongo 6 | name: mongo-nodeport-svc 7 | spec: 8 | ports: 9 | - port: 27017 10 | protocol: TCP 11 | targetPort: 27017 12 | nodePort: 32000 13 | selector: 14 | app: mongo 15 | type: NodePort 16 | 17 | -------------------------------------------------------------------------------- /mongodb-pv.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolume 3 | metadata: 4 | name: mongo-data-pv 5 | spec: 6 | accessModes: 7 | - ReadWriteOnce 8 | capacity: 9 | storage: 1Gi 10 | hostPath: 11 | path: /data/mongo 12 | -------------------------------------------------------------------------------- /mongodb-pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: mongo-data 5 | spec: 6 | accessModes: 7 | - ReadWriteOnce 8 | resources: 9 | requests: 10 | storage: 1Gi 11 | -------------------------------------------------------------------------------- /mongodb-secrets.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | data: 3 | password: cGFzc3dvcmQxMjM= #password123 4 | username: YWRtaW51c2Vy #adminuser 5 | kind: Secret 6 | metadata: 7 | creationTimestamp: null 8 | name: mongo-creds 9 | --------------------------------------------------------------------------------