######################################################################## # This YAML file desribes a StatefulSet with a service for running and # # exposing a MongoDB instance. # # It depends on the configdb and db k8s pvc. # ######################################################################## apiVersion: v1 kind: Service metadata: name: mdb-svc namespace: default labels: name: mdb-svc spec: selector: app: mdb-ss ports: - port: 27017 targetPort: 27017 name: mdb-port type: ClusterIP clusterIP: None --- apiVersion: apps/v1beta1 kind: StatefulSet metadata: name: mdb-ss namespace: default spec: serviceName: mdb-svc replicas: 1 template: metadata: name: mdb-ss labels: app: mdb-ss spec: terminationGracePeriodSeconds: 10 containers: - name: mongodb # TODO(FIXME): Do not use latest in production as it is harder to track # versions during updates and rollbacks. Also, once fixed, change the # imagePullPolicy to IfNotPresent for faster bootup image: bigchaindb/mongodb:latest imagePullPolicy: Always env: - name: MONGODB_FQDN valueFrom: configMapKeyRef: name: mdb-fqdn key: fqdn - name: MONGODB_POD_IP valueFrom: fieldRef: fieldPath: status.podIP args: - --replica-set-name=bigchain-rs - --fqdn=$(MONGODB_FQDN) - --port=27017 - --ip=$(MONGODB_POD_IP) securityContext: capabilities: add: - FOWNER ports: - containerPort: 27017 hostPort: 27017 name: mdb-port protocol: TCP volumeMounts: - name: mdb-db mountPath: /data/db - name: mdb-configdb mountPath: /data/configdb resources: limits: cpu: 200m memory: 768Mi livenessProbe: tcpSocket: port: mdb-port successThreshold: 1 failureThreshold: 3 periodSeconds: 15 timeoutSeconds: 1 restartPolicy: Always volumes: - name: mdb-db persistentVolumeClaim: claimName: mongo-db-claim - name: mdb-configdb persistentVolumeClaim: claimName: mongo-configdb-claim