# 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.disableUuiUui }}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    app: esr-esrserver
  name: esr-esrserver
  namespace: "{{ .Values.nsPrefix }}"
spec:
  selector:
    matchLabels:
      app: esr-esrserver
  template:
    metadata:
      labels:
        app: esr-esrserver
      name: esr-esrserver
    spec:
      containers:
      - name: esr-esrserver
        image: {{ .Values.esrserver.image }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        env:
        - name: MSB_ADDR
          value: {{ tpl .Values.msbaddr . }}
        volumeMounts:
        - name: localtime
          mountPath: /etc/localtime
          readOnly: true
        - mountPath: /home/esr/works/logs
          name: esr-server-logs
        ports:
        - containerPort: {{ .Values.esrserver.port }}
        readinessProbe:
          tcpSocket:
            port: {{ .Values.esrserver.port }}
          initialDelaySeconds: 5
          periodSeconds: 10
      - name: filebeat-onap-esr-server
        image: {{ .Values.filebeat.image }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        volumeMounts:
        - mountPath: /usr/share/filebeat/filebeat.yml
          subPath: filebeat.yml
          name: filebeat-conf
        - mountPath: /home/esr/works/logs
          name: esr-server-logs
        - mountPath: /usr/share/filebeat/data
          name: esr-server-filebeat
      volumes:
      - name: localtime
        hostPath:
          path: /etc/localtime
      - name: filebeat-conf
        configMap:
          name: esr-filebeat-configmap
      - name: esr-server-logs
        emptyDir: {}
      - name: esr-server-filebeat
        emptyDir: {}
#{{ end }}
