# 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.disableMsoMso }}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: mso
  namespace: "{{ .Values.nsPrefix }}"
spec:
  replicas: {{ .Values.msoReplicas }}
  selector:
    matchLabels:
      app: mso
  template:
    metadata:
      labels:
        app: mso
      name: mso
    spec:
      initContainers:
      - command:
        - /root/ready.py
        args:
        - --container-name
        - mso-mariadb
        env:
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        image: {{ .Values.image.readiness }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        name: mso-readiness
      containers:
      - command:
        - /tmp/start-jboss-server.sh
        image: {{ .Values.image.mso }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        name: mso
        volumeMounts:
        - mountPath: /etc/localtime
          name: localtime
          readOnly: true
        - mountPath: /shared/
          name: mso
        - mountPath: /tmp/start-jboss-server.sh
          name: mso-docker-files
          subPath: start-jboss-server.sh
        - mountPath: /opt/jboss/standalone/configuration/standalone-full-ha-mso.xml
          name: mso-jboss-config
          subPath: standalone-full-ha-mso.xml
        - mountPath: /var/log/onap
          name: mso-logs
        - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.network.xml
          name: mso-logback
          subPath: logback.network.xml
        - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.tenant.xml
          name: mso-logback
          subPath: logback.tenant.xml
        - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.vnf.xml
          name: mso-logback
          subPath: logback.vnf.xml
        - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.vfc.xml
          name: mso-logback
          subPath: logback.vfc.xml
        - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-api-handler-infra-config/logback.apihandler-infra.xml
          name: mso-logback
          subPath: logback.apihandler-infra.xml
        - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-appc-adapter-config/logback.appc.xml
          name: mso-logback
          subPath: logback.appc.xml
        - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-requests-db-adapter-config/logback.msorequestsdbadapter.xml
          name: mso-logback
          subPath: logback.msorequestsdbadapter.xml
        - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-asdc-controller-config/logback.asdc.xml
          name: mso-logback
          subPath: logback.asdc.xml
        - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-sdnc-adapter-config/logback.sdnc.xml
          name: mso-logback
          subPath: logback.sdnc.xml
        - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-bpmn-config/logback.bpmn.xml
          name: mso-logback
          subPath: logback.bpmn.xml
        - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-workflow-message-adapter-config/logback.workflow-message-adapter.xml
          name: mso-logback
          subPath: logback.workflow-message-adapter.xml
        env:
        - name: JBOSS_DEBUG
          value: "false"
        ports:
        - containerPort: 3904
        - containerPort: 3905
        - containerPort: 8080
        - containerPort: 9990
        - containerPort: 8787
        readinessProbe:
          tcpSocket:
            port: 8080
          initialDelaySeconds: 5
          periodSeconds: 10
      - 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: mso-logs
        - mountPath: /usr/share/filebeat/data
          name: mso-data-filebeat
      volumes:
        - name: localtime
          hostPath:
            path: /etc/localtime
        - name: mso-logback
          configMap:
            name: mso-log-configmap
        - name: filebeat-conf
          configMap:
            name: mso-filebeat-configmap
        - name: mso
          configMap:
            name: mso-config-mso-configmap
            items:
            - key: mso-docker.json
              path: mso-docker.json
              mode: 0755
            - key: aai.crt
              path: aai.crt
              mode: 0755
            - key: encryption.key
              path: encryption.key
              mode: 0644
        - name: mso-logs
          emptyDir: {}
        - name: mso-data-filebeat
          emptyDir: {}
        - name: mso-docker-files
          configMap:
            name: mso-docker-file-configmap
            items:
            - key: start-jboss-server.sh
              path: start-jboss-server.sh
              mode: 0755
        - name: mso-jboss-config
          configMap:
            name: mso-jboss-configmap
      imagePullSecrets:
      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}