{{/*
# 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.
*/}}

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: {{ include "common.fullname" . }}
  namespace: {{ include "common.namespace" . }}
  labels:
    app: {{ include "common.name" . }}
    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      app: {{ include "common.name" . }}
  template:
    metadata:
      labels:
        app: {{ include "common.name" . }}
        release: {{ .Release.Name }}
      name: {{ include "common.name" . }}
    spec:
     containers:
     - env:
       - name: MSB_ADDR
         value: {{ .Values.config.msbgateway }}.{{ include "common.namespace" . }}
       - name: MSB_PORT
         value: "{{ .Values.config.msbPort }}"
       - name: AAI_ADDR
         value: "aai.{{ include "common.namespace" . }}"
       - name: AAI_PORT
         value: "{{ .Values.config.aai.port }}"
       - name: AAI_SCHEMA_VERSION
         value: "{{ .Values.config.aai.schemaVersion }}"
       - name: AAI_USERNAME
         value: "{{ .Values.config.aai.username }}"
       - name: AAI_PASSWORD
         value: "{{ .Values.config.aai.password }}"
       image: "{{ include "common.repository" . }}/{{ .Values.image }}"
       imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       name: {{ include "common.name" . }}
       volumeMounts:
       - mountPath: /var/log/onap
         name: framework-log
       - mountPath: /opt/multivimbroker/multivimbroker/pub/config/log.yml
         name: framework-logconfig
         subPath: log.yml
       - mountPath: /opt/multivimbroker/multivimbroker/pub/config/provider-plugin.json
         name: provider-plugin
         subPath: provider-plugin.json
       ports:
       - containerPort: {{ .Values.service.internalPort }}
       # disable liveness probe when breakpoints set in debugger
       # so K8s doesn't restart unresponsive container
       {{- if eq .Values.liveness.enabled true }}
       livenessProbe:
         httpGet:
           path: /api/multicloud/v0/swagger.json
           port: {{ .Values.service.internalPort }}
           scheme: HTTP
         initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
         periodSeconds: {{ .Values.liveness.periodSeconds }}
         timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
         successThreshold: {{ .Values.liveness.successThreshold }}
         failureThreshold: {{ .Values.liveness.failureThreshold }}
       {{ end -}}

      # side car containers
     - image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
       imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       name: filebeat-onap
       volumeMounts:
       - mountPath: /usr/share/filebeat/filebeat.yml
         name: filebeat-conf
         subPath: filebeat.yml
       - mountPath: /var/log/onap
         name: framework-log
       - mountPath: /usr/share/filebeat/data
         name: framework-data-filebeat
       resources:
{{ toYaml .Values.resources | indent 12 }}
        {{- if .Values.nodeSelector }}
     nodeSelector:
{{ toYaml .Values.nodeSelector | indent 10 }}
     {{- end -}}
     {{- if .Values.affinity }}
     affinity:
{{ toYaml .Values.affinity | indent 10 }}
     {{- end }}

     volumes:
     - name: framework-log
       emptyDir: {}
     - name: provider-plugin
       configMap:
         name: {{ include "common.fullname" . }}-provider-plugin-configmap
     - name: framework-data-filebeat
       emptyDir: {}
     - name: filebeat-conf
       configMap:
         name: multicloud-filebeat-configmap
     - name: framework-logconfig
       configMap:
         name: {{ include "common.fullname" . }}-log-configmap
     imagePullSecrets:
     - name: "{{ include "common.namespace" . }}-docker-registry-key"
     restartPolicy: Always
