# 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.disableAaiModelLoaderService }}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: aai-model-loader-service
  namespace: "{{ .Values.nsPrefix }}"
spec:
  replicas: {{ .Values.modelLoaderReplicas }}
  selector:
    matchLabels:
      app: model-loader-service
  template:
    metadata:
      labels:
        app: model-loader-service
      name: aai-model-loader-service
    spec:
      containers:
      - name: model-loader-service
        image: "{{ .Values.image.modelLoaderImage }}:{{ .Values.image.modelLoaderVersion }}"
        imagePullPolicy: {{ .Values.pullPolicy }}
        env:
        - name: CONFIG_HOME
          value: /opt/app/model-loader/config/
        volumeMounts:
        - mountPath: /etc/localtime
          name: localtime
          readOnly: true
        - mountPath: /opt/app/model-loader/config/model-loader.properties
          subPath: model-loader.properties
          name: aai-model-loader-prop-config
        - mountPath: /opt/app/model-loader/config/auth/
          name: aai-model-loader-auth-config
        - mountPath: /var/log/onap
          name: aai-model-loader-logs
        - mountPath: /opt/app/model-loader/bundleconfig/etc/logback.xml
          name: aai-model-loader-log-conf
          subPath: logback.xml
        ports:
        - containerPort: 8080
        - containerPort: 8443
      - name: filebeat-onap-aai-model-loader
        image: {{ .Values.image.filebeat }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        volumeMounts:
        - mountPath: /usr/share/filebeat/filebeat.yml
          subPath: filebeat.yml
          name: filebeat-conf
        - mountPath: /var/log/onap
          name: aai-model-loader-logs
        - mountPath: /usr/share/filebeat/data
          name: aai-model-loader-filebeat
      volumes:
      - name: localtime
        hostPath:
          path: /etc/localtime
      - name: aai-model-loader-prop-config
        configMap:
          name: aai-model-loader-prop-configmap
      - name: aai-model-loader-auth-config
        secret:
          secretName: aai-model-loader-secret
      - name: filebeat-conf
        configMap:
          name: aai-filebeat-configmap
      - name: aai-model-loader-logs
        emptyDir: {}
      - name: aai-model-loader-filebeat
        emptyDir: {}
      - name: aai-model-loader-log-conf
        configMap:
         name: aai-model-loader-log-configmap
      restartPolicy: Always
      imagePullSecrets:
      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
