# Copyright BigchainDB GmbH and BigchainDB contributors
# SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
# Code is Apache-2.0 and docs are CC-BY-4.0

############################################################
# This config file defines a k8s Deployment for the        #
# bigchaindb/mongodb-monitoring-agent Docker image         #
#                                                          #
# It connects to a MongoDB instance in a separate pod,     #
# all remote MongoDB instances in the cluster,             #
# and also to MongoDB Cloud Manager (an external service). #
# Notes:                                                   #
# MongoDB agents connect to Cloud Manager on port 443.     #
############################################################

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: mdb-mon-instance-0-dep
spec:
  replicas: 1
  template:
    metadata:
      name: mdb-mon-instance-0-dep
      labels:
        app: mdb-mon-instance-0-dep
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - name: mdb-mon
        image: bigchaindb/mongodb-monitoring-agent:2.0.0-alpha
        imagePullPolicy: IfNotPresent
        env:
        - name: MMS_API_KEYFILE_PATH
          value: /etc/mongod/cloud/agent-api-key
        - name: MMS_GROUPID_KEYFILE_PATH
          value: /etc/mongod/cloud/group-id
        - name: CA_CRT_PATH
          value: /etc/mongod/ca/ca.pem
        - name: MONITORING_PEM_PATH
          value: /etc/mongod/ssl/mdb-mon-instance.pem
        resources:
          limits:
            cpu: 200m
            memory: 768Mi
        volumeMounts:
        - name: mdb-mon-certs
          mountPath: /etc/mongod/ssl/
          readOnly: true
        - name: ca-auth
          mountPath: /etc/mongod/ca/
          readOnly: true
        - name: cloud-manager-credentials
          mountPath: /etc/mongod/cloud/
          readOnly: true
      restartPolicy: Always
      volumes:
      - name: mdb-mon-certs
        secret:
          secretName: mdb-mon-certs
          defaultMode: 0404
      - name: ca-auth
        secret:
          secretName: ca-auth
          defaultMode: 0404
      - name: cloud-manager-credentials
        secret:
          secretName: cloud-manager-credentials
          defaultMode: 0404
