# 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.disableAaiSparkyBe }}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: aai-sparky-be
  namespace: "{{ .Values.nsPrefix }}"
spec:
  replicas: {{ .Values.sparkyReplicas }}
  selector:
    matchLabels:
      app: sparky-be
  template:
    metadata:
      labels:
        app: sparky-be
      name: aai-sparky-be
    spec:
      containers:
      - name: sparky-be
        image: "{{ .Values.image.sparkyBeImage }}:{{ .Values.image.sparkyBeVersion }}"
        imagePullPolicy: {{ .Values.pullPolicy }}
        env:
        - name: CONFIG_HOME
          value: /opt/app/sparky/config/
        - name: KEY_MANAGER_PASSWORD
          value: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
        - name: KEY_STORE_PASSWORD
          value: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
        volumeMounts:
        - mountPath: /etc/localtime
          name: localtime
          readOnly: true
        - mountPath: /opt/app/sparky/config/auth/
          name: aai-sparky-be-auth-config
        - mountPath: /opt/app/sparky/config/synchronizer.properties
          subPath: synchronizer.properties
          name: aai-sparky-be-config
        - mountPath: /opt/app/sparky/config/suggestive-search.properties
          subPath: suggestive-search.properties
          name: aai-sparky-be-config
        - mountPath: /opt/app/sparky/config/search-service.properties
          subPath: search-service.properties
          name: aai-sparky-be-config
        - mountPath: /opt/app/sparky/config/roles.config
          subPath: roles.config
          name: aai-sparky-be-config
        - mountPath: /opt/app/sparky/config/elasticsearch.properties
          subPath: elasticsearch.properties
          name: aai-sparky-be-config
        - mountPath: /opt/app/sparky/config/aai.properties
          subPath: aai.properties
          name: aai-sparky-be-config
        - mountPath: /opt/app/sparky/config/model/
          name: aai-sparky-be-model-config
        - mountPath: /opt/app/sparky/config/portal/
          name: aai-sparky-be-portal-config
        - mountPath: /var/log/onap
          name: aai-sparky-be-logs
        - mountPath: /opt/app/sparky/bundleconfig/etc/logback.xml
          name: aai-sparky-be-log-conf
          subPath: logback.xml
        ports:
        - containerPort: 9517
        readinessProbe:
          tcpSocket:
            port: 9517
          initialDelaySeconds: 5
          periodSeconds: 10
      - name: filebeat-onap-aai-sparky
        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-sparky-be-logs
        - mountPath: /usr/share/filebeat/data
          name: aai-sparky-filebeat
      volumes:
      - name: localtime
        hostPath:
          path: /etc/localtime
      - name: aai-sparky-be-config
        configMap:
          name: aai-sparky-be-configmap
      - name: aai-sparky-be-model-config
        configMap:
          name: aai-sparky-be-model-configmap
      - name: aai-sparky-be-portal-config
        configMap:
          name: aai-sparky-be-portal-configmap
      - name: aai-sparky-be-auth-config
        secret:
          secretName: aai-sparky-be-secret
      - name: filebeat-conf
        configMap:
          name: aai-filebeat-configmap
      - name: aai-sparky-be-logs
        emptyDir: {}
      - name: aai-sparky-filebeat
        emptyDir: {}
      - name: aai-sparky-be-log-conf
        configMap:
         name: aai-sparky-be-log-configmap
      restartPolicy: Always
      imagePullSecrets:
      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
