kubernetes/mongodb/mongodb-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb
spec:
selector:
matchLabels:
app: mongodb
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
tier: backend
component: database
app: mongodb
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "9216"
spec:
containers:
- name: mongodb
image: yurak/mongodb:latest
imagePullPolicy: Always
ports:
- name: mongodb
containerPort: 27017
env:
- name: MONGO_INITDB_ROOT_USERNAME
valueFrom:
configMapKeyRef:
name: mongodb-configmap
key: mongodb-root-user
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongodb-root-password
- name: TZ
valueFrom:
configMapKeyRef:
name: mongodb-configmap
key: tz
- name: MONGO_INITDB_DATABASE
valueFrom:
configMapKeyRef:
name: mongodb-configmap
key: mongodb-initdb
volumeMounts:
- name: mongodb-persistent-storage
mountPath: /data/db
livenessProbe:
tcpSocket:
port: 27017
readinessProbe:
exec:
command:
- mongo
- --eval
- db.adminCommand('ping')
- name: mongodb-exporter
image: ssheehy/mongodb-exporter:0.11.0
ports:
- containerPort: 9216
env:
- name: MONGODB_URI
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongodb-exporter-uri
livenessProbe:
tcpSocket:
port: 9216
readinessProbe:
tcpSocket:
port: 9216
volumes:
- name: mongodb-persistent-storage
persistentVolumeClaim:
claimName: mongodb-pvc