# 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.disableSdncUeb }}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: sdnc-ueb-listener
  namespace: "{{ .Values.nsPrefix }}"
spec:
  replicas: {{ .Values.uebReplicas }}
  selector:
    matchLabels:
      app: ueb-listener
  template:
    metadata:
      labels:
        app: ueb-listener
      name: sdnc-ueb-listener
    spec:
      initContainers:
      - command:
        - /root/ready.py
        args:
        - --container-name
        - sdnc-db-container
        - --container-name
        - sdnc-controller-container
        env:
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        image: {{ .Values.image.readiness }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        name: sdnc-ueb-readiness
      containers:
      - command:
        - /opt/onap/sdnc/ueb-listener/bin/start-ueb-listener.sh
        env:
        - name: PROPERTY_DIR
          value: /opt/onap/sdnc/data/properties
        - name: SDNC_CONFIG_DIR
          value: /opt/onap/sdnc/data/properties
        image: {{ .Values.image.ueblistener }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        name: ueb-listener-container
        volumeMounts:
        - mountPath: /etc/localtime
          name: localtime
          readOnly: true
        - mountPath: /opt/onap/sdnc/data/properties/ueb-listener.properties
          subPath: ueb-listener.properties
          name: ueb-config
      volumes:
        - name: localtime
          hostPath:
            path: /etc/localtime
        - name: ueb-config
          configMap:
            name: sdnc-ueb-configmap
      imagePullSecrets:
      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
