119 lines
2.8 KiB
YAML
119 lines
2.8 KiB
YAML
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: mongodb-pvc
|
|
namespace: unifi
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 5Gi
|
|
storageClassName: do-block-storage
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: init-mongo-script
|
|
namespace: unifi
|
|
data:
|
|
init-mongo.sh: |
|
|
#!/bin/bash
|
|
|
|
if which mongosh > /dev/null 2>&1; then
|
|
mongo_init_bin='mongosh'
|
|
else
|
|
mongo_init_bin='mongo'
|
|
fi
|
|
"${mongo_init_bin}" <<EOF
|
|
use ${MONGO_AUTHSOURCE}
|
|
db.auth("${MONGO_INITDB_ROOT_USERNAME}", "${MONGO_INITDB_ROOT_PASSWORD}")
|
|
db.createUser({
|
|
user: "${MONGO_USER}",
|
|
pwd: "${MONGO_PASS}",
|
|
roles: [
|
|
{ db: "${MONGO_DBNAME}", role: "dbOwner" },
|
|
{ db: "${MONGO_DBNAME}_stat", role: "dbOwner" }
|
|
]
|
|
})
|
|
EOF
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: mongo
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: mongo
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: mongo
|
|
spec:
|
|
containers:
|
|
- name: mongo
|
|
image: mongo:8.0.3
|
|
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
|
|
- name: MONGO_USER
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: mongodb-secret
|
|
key: MONGO_USER
|
|
- name: MONGO_PASS
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: mongodb-secret
|
|
key: MONGO_PASS
|
|
- name: MONGO_DBNAME
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: mongodb-secret
|
|
key: MONGO_DBNAME
|
|
- name: MONGO_AUTHSOURCE
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: mongodb-secret
|
|
key: MONGO_AUTHSOURCE
|
|
volumeMounts:
|
|
- name: data-volume
|
|
mountPath: /data/db
|
|
- name: init-script
|
|
mountPath: /docker-entrypoint-initdb.d/init-mongo.sh
|
|
subPath: init-mongo.sh
|
|
resources:
|
|
limits:
|
|
memory: "1Gi"
|
|
cpu: "500m"
|
|
requests:
|
|
memory: "200Mi"
|
|
cpu: "50m"
|
|
volumes:
|
|
- name: data-volume
|
|
persistentVolumeClaim:
|
|
claimName: mongodb-pvc
|
|
- name: init-script
|
|
configMap:
|
|
name: init-mongo-script
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: mongodb
|
|
namespace: unifi
|
|
spec:
|
|
ports:
|
|
- port: 27017
|
|
selector:
|
|
app: mongo |