# 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.disablePolicyDrools }}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: policy-drools
  namespace: "{{ .Values.nsPrefix }}"
spec:
  replicas: {{ .Values.droolsReplicas }}
  selector:
    matchLabels:
      app: drools
  template:
    metadata:
      labels:
        app: drools
      name: policy-drools
    spec:
      initContainers:
      - command:
        - /root/ready.py
        args:
        - --container-name
        - mariadb
        - --container-name
        - nexus
        env:
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        image: "{{ .Values.image.readiness }}:{{ .Values.image.readinessVersion }}"
        imagePullPolicy: {{ .Values.pullPolicy }}
        name: drools-readiness
      hostAliases:
      - ip: "{{ .Values.aaiServiceClusterIp }}"
        hostnames:
        - "aai.api.simpledemo.openecomp.org"
      containers:
      - command:
        - /bin/bash
        - -c
        - ./do-start.sh
        image: "{{ .Values.image.policyDrools }}:{{ .Values.image.policyDroolsVersion }}"
        imagePullPolicy: {{ .Values.pullPolicy }}
        name: drools
        ports:
        - containerPort: 6969
        readinessProbe:
          tcpSocket:
            port: 6969
          initialDelaySeconds: 5
          periodSeconds: 10
        volumeMounts:
        - mountPath: /etc/localtime
          name: localtime
          readOnly: true
        - mountPath: /tmp/policy-install/config/policy-keystore
          name: drools-secret
          subPath: policy-keystore
        - mountPath: /tmp/policy-install/config/feature-healthcheck.conf
          name: drools-secret
          subPath: feature-healthcheck.conf
        - mountPath: /tmp/policy-install/config/base.conf
          name: drools-config
          subPath: base.conf
        - mountPath: /tmp/policy-install/config/policy-management.conf
          name: drools-config
          subPath: policy-management.conf
        - mountPath: /tmp/policy-install/config/drools-tweaks.sh
          name: drools-config
          subPath: drools-tweaks.sh
        - mountPath: /usr/share/maven/conf/settings.xml
          name: drools-settingsxml
          subPath: settings.xml
        - mountPath: /var/log/onap
          name: policy-logs
        - mountPath: /tmp/logback.xml
          name: policy-logback
          subPath: logback.xml
        lifecycle:
          postStart:
            exec:
              command: ["/bin/sh", "-c", "export LOG=wait_logback.log; touch $LOG; export SRC=/tmp/logback.xml; export DST=/opt/app/policy/config/; while [ ! -e $DST ]; do echo 'Waiting for $DST...' >> $LOG; sleep 5; done; sleep 2; /bin/cp -f $SRC $DST; echo 'Done' >> $LOG"]
      - 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: policy-logs
        - mountPath: /usr/share/filebeat/data
          name: policy-data-filebeat
      volumes:
        - name: localtime
          hostPath:
            path: /etc/localtime
        - name: filebeat-conf
          configMap:
            name: policy-filebeat-configmap
        - name: policy-logs
          emptyDir: {}
        - name: policy-data-filebeat
          emptyDir: {}
        - name: policy-logback
          configMap:
            name: policy-drools-log-configmap
        - name: drools-settingsxml
          configMap:
            name: policy-dep-drools-settings-configmap
        - name: drools-config
          configMap:
            name: policy-dep-drools-configmap
            items:
            - key: base.conf
              path: base.conf
              mode: 0755
            - key: policy-management.conf
              path: policy-management.conf
              mode: 0755
            - key: drools-tweaks.sh
              path: drools-tweaks.sh
              mode: 0755
        - name: drools-secret
          secret:
            secretName: policy-dep-drools-secret
            items:
            - key: policy-keystore
              path: policy-keystore
              mode: 0644
            - key: feature-healthcheck.conf
              path: feature-healthcheck.conf
              mode: 0644
      imagePullSecrets:
      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
