---
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