# 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.disableMulticloudMulticloudOcata }}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: multicloud-ocata
  namespace: "{{ .Values.nsPrefix }}"
spec:
  replicas: {{ .Values.ocataReplicas }}
  selector:
    matchLabels:
      app: multicloud-ocata
  template:
    metadata:
      labels:
        app: multicloud-ocata
      name: multicloud-ocata
    spec:
     hostname: multicloud-ocata
     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"
       name: multicloud-ocata
       volumeMounts:
       - mountPath: /opt/ocata/logs
         name: ocata-log
       image: {{ .Values.image.ocata }}
       imagePullPolicy: {{ .Values.pullPolicy }}
       ports:
       - containerPort: 9006
       livenessProbe:
         httpGet:
           path: /api/multicloud-ocata/v0/swagger.json
           port: 9006
           scheme: HTTP
         initialDelaySeconds: 30
         periodSeconds: 10
         timeoutSeconds: 10
         successThreshold: 1
         failureThreshold: 5
     restartPolicy: Always
     volumes:
     - name: ocata-log
       hostPath:
         path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/multicloud/ocata/logs
     imagePullSecrets:
     - name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
