--- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mongodb namespace: database annotations: volume.beta.kubernetes.io/storage-class: "fast" spec: accessModes: - ReadWriteMany resources: requests: storage: 50Gi --- apiVersion: v1 kind: Service metadata: name: mongodb namespace: database spec: ports: - port: 27017 selector: app: mongodb type: NodePort --- apiVersion: v1 kind: Secret metadata: name: mongodb-secret namespace: database type: Opaque data: MONGO_INITDB_ROOT_USERNAME: cm9vdA== MONGO_INITDB_ROOT_PASSWORD: UGE3NTIzdzByZA== --- apiVersion: apps/v1 kind: Deployment metadata: name: mongodb namespace: database spec: selector: matchLabels: app: mongodb template: metadata: labels: app: mongodb spec: containers: - image: mongo name: mongodb livenessProbe: tcpSocket: port: 27017 initialDelaySeconds: 15 periodSeconds: 20 resources: limits: memory: "800Mi" cpu: "500m" requests: memory: "400Mi" cpu: "250m" env: - name: MONGO_INITDB_ROOT_USERNAME valueFrom: secretKeyRef: name: mongodb-secret key: MONGO_INITDB_ROOT_USERNAME - name: MONGO_INITDB_ROOT_PASSWORD valueFrom: secretKeyRef: name: mongodb-secret key: MONGO_INITDB_ROOT_PASSWORD ports: - containerPort: 27017 name: mongo-port volumeMounts: - name: mongodb-storage mountPath: /data/db volumes: - name: mongodb-storage persistentVolumeClaim: claimName: mongodb