# 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:
            tcpSocket:
               port: {{ .Values.service.internalPort }}
            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/data/properties/bath_config.csv
            name: onap-appc-data-properties
            subPath: bath_config.csv
          - 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/onap/appc/data/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" . }}
        chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
        release: "{{ .Release.Name }}"
        heritage: "{{ .Release.Service }}"
    spec:
      accessModes:
      - {{ .Values.persistence.accessMode }}
      storageClassName: {{ include "common.storageClass" . }}
      resources:
        requests:
          storage: {{ .Values.persistence.size }}
{{ end }}
