# Copyright © 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
#
# 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.

apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: {{ include "common.fullname" . }}
  namespace: {{ include "common.namespace" . }}
  labels:
    app: {{ include "common.name" . }}
    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
spec:
  serviceName: "{{ .Values.service.name }}-cluster"
  replicas: {{ .Values.replicaCount }}
  podManagementPolicy: Parallel
  template:
    metadata:
      labels:
        app: {{ include "common.name" . }}
        release: {{ .Release.Name }}
    spec:
      initContainers:
      - name: {{ include "common.name" . }}-readiness
        command:
        - /root/ready.py
        args:
        - --container-name
        - {{.Values.config.mariadbGaleraContName}}
        env:
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
      - name: {{ include "common.name" . }}-chown
        image: "busybox"
        command: ["sh", "-c", "chown -R {{ .Values.config.odlUid }}:{{ .Values.config.odlGid}} {{ .Values.persistence.mdsalPath }}"]
        volumeMounts:
          - mountPath: {{ .Values.persistence.mdsalPath }}
            name: {{ include "common.fullname" . }}-data
      containers:
        - name: {{ include "common.name" . }}
          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
          command:
          - /opt/appc/bin/startODL.sh
          ports:
          - containerPort: {{ .Values.service.internalPort }}
          - containerPort: {{ .Values.service.externalPort2 }}
          readinessProbe:
            exec:
              command:
              - /opt/appc/bin/health_check.sh
            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
            periodSeconds: {{ .Values.readiness.periodSeconds }}
          env:
            - name: MYSQL_ROOT_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: {{ template "common.fullname" . }}
                  key: db-root-password
            - name: SDNC_CONFIG_DIR
              value: "{{ .Values.config.configDir }}"
            - name: APPC_CONFIG_DIR
              value: "{{ .Values.config.configDir }}"
            - name: DMAAP_TOPIC_ENV
              value: "{{ .Values.config.dmaapTopic }}"
            - name: ENABLE_AAF
              value: "{{ .Values.config.enableAAF }}"
            - name: ENABLE_ODL_CLUSTER
              value: "{{ .Values.config.enableClustering }}"
            - name: APPC_REPLICAS
              value: "{{ .Values.replicaCount }}"
          volumeMounts:
          - mountPath: /etc/localtime
            name: localtime
            readOnly: true
          - mountPath: /opt/onap/appc/data/properties/dblib.properties
            name: onap-appc-data-properties
            subPath: dblib.properties
          - mountPath: /opt/onap/appc/data/properties/svclogic.properties
            name: onap-appc-data-properties
            subPath: svclogic.properties
          - mountPath: /opt/onap/appc/data/properties/appc.properties
            name: onap-appc-data-properties
            subPath: appc.properties
          - mountPath: /opt/onap/appc/data/properties/aaiclient.properties
            name: onap-appc-data-properties
            subPath: aaiclient.properties
          - mountPath: /opt/onap/appc/data/properties/cadi.properties
            name: onap-appc-data-properties
            subPath: cadi.properties
          - mountPath: /opt/onap/appc/data/properties/aaa-app-config.xml
            name: onap-appc-data-properties
            subPath: aaa-app-config.xml
          - mountPath: /opt/onap/appc/svclogic/config/svclogic.properties
            name: onap-appc-svclogic-config
            subPath: svclogic.properties
          - mountPath: /opt/onap/appc/svclogic/bin/showActiveGraphs.sh
            name: onap-appc-svclogic-bin
            subPath: showActiveGraphs.sh
          - mountPath: /opt/onap/appc/bin/startODL.sh
            name: onap-appc-bin
            subPath: startODL.sh
          - mountPath: /opt/onap/appc/bin/installAppcDb.sh
            name: onap-appc-bin
            subPath: installAppcDb.sh
          - mountPath: /opt/onap/appc/bin/health_check.sh
            name: onap-appc-bin
            subPath: health_check.sh
          - mountPath: /opt/onap/ccsdk/data/properties/dblib.properties
            name: onap-sdnc-data-properties
            subPath: dblib.properties
          - mountPath: /opt/onap/ccsdk/data/properties/svclogic.properties
            name: onap-sdnc-data-properties
            subPath: svclogic.properties
          - mountPath: /opt/onap/ccsdk/data/properties/aaiclient.properties
            name: onap-sdnc-data-properties
            subPath: aaiclient.properties
          - mountPath: /opt/onap/ccsdk/svclogic/config/svclogic.properties
            name: onap-sdnc-svclogic-config
            subPath: svclogic.properties
          - mountPath: /opt/onap/ccsdk/svclogic/bin/showActiveGraphs.sh
            name: onap-sdnc-svclogic-bin
            subPath: showActiveGraphs.sh
          - mountPath: /opt/onap/ccsdk/bin/installSdncDb.sh
            name: onap-sdnc-bin
            subPath: installSdncDb.sh
          - mountPath: {{ .Values.persistence.mdsalPath }}
            name: {{ include "common.fullname" . }}-data
          - mountPath: /var/log/onap
            name: logs
          - mountPath: /opt/opendaylight/current/etc/org.ops4j.pax.logging.cfg
            name: log-config
            subPath: org.ops4j.pax.logging.cfg
          resources:
{{ include "common.resources" . | indent 12 }}
	{{- if .Values.nodeSelector }}
        nodeSelector:
{{ toYaml .Values.nodeSelector | indent 10 }}
        {{- end -}}
        {{- if .Values.affinity }}
        affinity:
{{ toYaml .Values.affinity | indent 10 }}
        {{- end }}

        # side car containers
        - name: filebeat-onap
          image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
          volumeMounts:
          - mountPath: /usr/share/filebeat/filebeat.yml
            name: filebeat-conf
            subPath: filebeat.yml
          - mountPath: /var/log/onap
            name: logs
          - mountPath: /usr/share/filebeat/data
            name: data-filebeat
      volumes:
        - name: localtime
          hostPath:
            path: /etc/localtime
        - name: filebeat-conf
          configMap:
            name: {{ include "common.fullname" . }}-filebeat
        - name: log-config
          configMap:
            name: {{ include "common.fullname" . }}-logging-cfg
        - name: logs
          emptyDir: {}
        - name: data-filebeat
          emptyDir: {}
        - name: onap-appc-data-properties
          configMap:
            name: {{ include "common.fullname" . }}-onap-appc-data-properties
        - name: onap-appc-svclogic-config
          configMap:
            name: {{ include "common.fullname" . }}-onap-appc-svclogic-config
        - name: onap-appc-svclogic-bin
          configMap:
            name: {{ include "common.fullname" . }}-onap-appc-svclogic-bin
            defaultMode: 0755
        - name: onap-appc-bin
          configMap:
            name: {{ include "common.fullname" . }}-onap-appc-bin
            defaultMode: 0755
        - name: onap-sdnc-data-properties
          configMap:
            name: {{ include "common.fullname" . }}-onap-sdnc-data-properties
        - name: onap-sdnc-svclogic-config
          configMap:
            name: {{ include "common.fullname" . }}-onap-sdnc-svclogic-config
        - name: onap-sdnc-svclogic-bin
          configMap:
            name: {{ include "common.fullname" . }}-onap-sdnc-svclogic-bin
            defaultMode: 0755
        - name: onap-sdnc-bin
          configMap:
            name: {{ include "common.fullname" . }}-onap-sdnc-bin
            defaultMode: 0755
{{ if not .Values.persistence.enabled }}
        - name: {{ include "common.fullname" . }}-data
          emptyDir: {}
{{ else }}
  volumeClaimTemplates:
  - metadata:
      name: {{ include "common.fullname" . }}-data
      labels:
        name: {{ include "common.fullname" . }}
    spec:
      accessModes: [ {{ .Values.persistence.accessMode }} ]
      storageClassName: {{ include "common.fullname" . }}-data
      resources:
        requests:
          storage: {{ .Values.persistence.size }}
{{ end }}
