# Copyright © 2017 Amdocs, Bell Canada
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#{{ if not .Values.disableMessageRouterDmaap }}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: message-router-dmaap
  namespace: "{{ .Values.nsPrefix }}"
spec:
  replicas: {{ .Values.dmaapReplicas }}
  selector:
    matchLabels:
      app: dmaap
  template:
    metadata:
      labels:
        app: dmaap
      name: message-router-dmaap
    spec:
      initContainers:
      - command:
        - /root/ready.py
        args:
        - --container-name
        - global-kafka
        - --container-name
        - zookeeper
        env:
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        image: {{ .Values.image.readiness }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        name: dmaap-readiness
      containers:
      - image: {{ .Values.image.dmaap }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        name: dmaap
        ports:
        - containerPort: 3904
        - containerPort: 3905
        readinessProbe:
          tcpSocket:
            port: 3904
          initialDelaySeconds: 5
          periodSeconds: 10
        volumeMounts:
        - mountPath: /etc/localtime
          name: localtime
          readOnly: true
        - mountPath: /appl/dmaapMR1/bundleconfig/etc/appprops/MsgRtrApi.properties
          subPath: MsgRtrApi.properties
          name: appprops
        - mountPath: /appl/dmaapMR1/etc/cadi.properties
          subPath: cadi.properties
          name: cadi
        - mountPath: /appl/dmaapMR1/etc/keyfile
          subPath: mykey
          name: mykey
      restartPolicy: Always
      volumes:
      - name: localtime
        hostPath:
          path: /etc/localtime
      - name: appprops
        configMap:
          name: mr-dmaap-msgrtrapi-prop-configmap
      - name: cadi
        configMap:
          name: mr-dmaap-cadi-prop-configmap
      - name: mykey
        configMap:
          name: mr-dmaap-mykey-configmap
      imagePullSecrets:
      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
{{ end }}

