# 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.disableMessageRouterGlobalKafka }}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: message-router-global-kafka
  namespace: "{{ .Values.nsPrefix }}"
spec:
  replicas: {{ .Values.kafkaReplicas }}
  selector:
    matchLabels:
      app: global-kafka
  template:
    metadata:
      labels:
        app: global-kafka
      name: message-router-global-kafka
    spec:
      initContainers:
      - command:
        - bash
        args:
        - -c
        - "if [ -d /var/tmp/SDC-DISTR-NOTIF-TOPIC-SDC-OPENSOURCE-ENV1-0 ]; then echo nothing to do; else cp -a /opt/config/src/message-router/dcae-startup-vm-message-router/docker_files/data-kafka/* /var/tmp/; fi"
        image: {{ .Values.image.config }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        volumeMounts:
        - mountPath: /var/tmp
          name: kafka-data
        name: kafka-primer
      - command:
        - /root/ready.py
        args:
        - --container-name
        - zookeeper
        env:
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        image: {{ .Values.image.readiness }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        name: kafka-readiness
      containers:
      - image: {{ .Values.image.kafka }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        name: global-kafka
        ports:
        - containerPort: 9092
        readinessProbe:
          tcpSocket:
            port: 9092
          initialDelaySeconds: 5
          periodSeconds: 10
        env:
        - name: KAFKA_ZOOKEEPER_CONNECT
          value: "zookeeper.{{ .Values.nsPrefix }}:2181"
        - name: KAFKA_ADVERTISED_HOST_NAME
          value: "global-kafka"
        - name: KAFKA_BROKER_ID
          value: "1"
        - name: KAFKA_ADVERTISED_PORT
          value: "9092"
        - name: KAFKA_PORT
          value: "9092"
        volumeMounts:
        - mountPath: /etc/localtime
          name: localtime
          readOnly: true
        - mountPath: /var/run/docker.sock
          name: docker-socket
        - mountPath: /kafka
          name: kafka-data
      restartPolicy: Always
      volumes:
      - name: localtime
        hostPath:
          path: /etc/localtime
      - name: docker-socket
        hostPath:
          path: /var/run/docker.sock
      - name: kafka-data
        persistentVolumeClaim:
          claimName: message-router-kafka
      imagePullSecrets:
      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}

