Anterior-IaC/unifi/mongodb/deployment.yaml
2025-02-23 15:24:32 -06:00

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