--- apiVersion: apps/v1 kind: StatefulSet metadata: name: mongodb spec: selector: matchLabels: app: mongodb replicas: 1 minReadySeconds: 10 template: metadata: labels: app: mongodb spec: terminationGracePeriodSeconds: 10 containers: - name: mongodb image: mirror.gcr.io/library/mongo:8 ports: - containerPort: 27017 name: mongo env: - name: MONGO_INITDB_ROOT_USERNAME value: "root" - name: MONGO_INITDB_ROOT_PASSWORD valueFrom: secretKeyRef: name: mongodb-root-password key: MONGO_INITDB_ROOT_PASSWORD - name: MONGO_DBNAME value: wildduck - name: MONGO_USER value: application - name: MONGO_PASS valueFrom: secretKeyRef: name: mongodb-user-password key: MONGO_PASS - name: MONGO_AUTHSOURCE value: "wildduck" volumeMounts: - name: data mountPath: /data/db volumeClaimTemplates: - metadata: name: data spec: accessModes: [ "ReadWriteOnce" ] storageClassName: mongo resources: requests: storage: 10Gi --- apiVersion: codemowers.cloud/v1beta1 kind: SecretClaim metadata: name: mongodb-root-password spec: size: 32 mapping: - key: MONGO_INITDB_ROOT_PASSWORD value: "%(plaintext)s" --- apiVersion: codemowers.cloud/v1beta1 kind: SecretClaim metadata: name: mongodb-user-password spec: size: 32 mapping: - key: MONGO_PASS value: "%(plaintext)s" - key: MONGO_URI value: "mongodb://application:%(plaintext)s@mongodb/wildduck" --- apiVersion: v1 kind: Service metadata: name: mongodb spec: ports: - port: 27017 name: mongo targetPort: 27017 selector: app: mongodb type: ClusterIP