# 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.disableMulticloudFramework }}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: multicloud-framework
  namespace: "{{ .Values.nsPrefix }}"
spec:
  replicas: {{ .Values.frameworkReplicas }}
  selector:
    matchLabels:
      app: framework
  template:
    metadata:
      labels:
        app: framework
      name: multicloud-framework
    spec:
     containers:
     - env:
       - name: MSB_ADDR
         value: {{ tpl .Values.msbgateway . }}
       - name: MSB_PORT
         value: "{{ .Values.msbPort }}"
       - name: AAI_ADDR
         value: aai-service.{{ .Values.nsPrefix }}
       - name: AAI_PORT
         value: "8443"
       - name: AAI_SCHEMA_VERSION
         value: "v11"
       - name: AAI_USERNAME
         value: "AAI"
       - name: AAI_PASSWORD
         value: "AAI"
       image: {{ .Values.image.framework }}
       imagePullPolicy: {{ .Values.pullPolicy }}
       name: framework
       volumeMounts:
       - mountPath: /var/log/onap
         name: framework-log
       - mountPath: /opt/multivimbroker/multivimbroker/pub/config/log.yml
         name: framework-logconfig
         subPath: log.yml
       ports:
       - containerPort: 9001
       livenessProbe:
         httpGet:
           path: /api/multicloud/v0/swagger.json
           port: 9001
           scheme: HTTP
         initialDelaySeconds: 30
         periodSeconds: 10
         timeoutSeconds: 10
         successThreshold: 1
         failureThreshold: 5
     - image: {{ .Values.image.filebeat }}
       imagePullPolicy: {{ .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
     volumes:
     - name: framework-log
       emptyDir: {}
     - name: framework-data-filebeat
       emptyDir: {}
     - name: filebeat-conf
       configMap:
         name: multicloud-filebeat-configmap
     - name: framework-logconfig
       configMap:
         name: multicloud-framework-log-configmap
     imagePullSecrets:
     - name: "{{ .Values.nsPrefix }}-docker-registry-key"
     restartPolicy: Always
#{{ end }}
