# 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/v1
kind: StatefulSet
metadata:
  name: {{ include "common.fullname" . }}
  namespace: {{ include "common.namespace" . }}
  labels:
    app: {{ include "common.name" . }}
    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
    release: {{ include "common.release" . }}
    heritage: {{ .Release.Service }}
spec:
  selector:
    matchLabels:
      app: {{ include "common.name" . }}
  serviceName: "{{ .Values.service.name }}-cluster"
  replicas: {{ .Values.replicaCount }}
  podManagementPolicy: Parallel
  template:
    metadata:
      labels:
        app: {{ include "common.name" . }}
        release: {{ include "common.release" . }}
    spec:
      initContainers:
      - command:
        - sh
        args:
        - -c
        - "cd /config-input && for PFILE in `find . -not -type d | grep -v -F ..`; do envsubst <${PFILE} >/config/${PFILE}; chmod 0755 /config/${PFILE}; done"
        env:
        - name: APPC_DB_USER
          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "appcdb-user-creds" "key" "login") | indent 10 }}
        - name: APPC_DB_PASSWD
          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "appcdb-user-creds" "key" "password") | indent 10 }}
        - name: SDNC_DB_USER
          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "sdncdb-user-creds" "key" "login") | indent 10 }}
        - name: SDNC_DB_PASSWD
          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "sdncdb-user-creds" "key" "password") | indent 10 }}
        volumeMounts:
        - mountPath: /config-input/appc-data-properties
          name: onap-appc-data-properties-input
        - mountPath: /config-input/appc-svclogic-config
          name: onap-appc-svclogic-config-input
        - mountPath: /config-input/sdnc-data-properties
          name: onap-sdnc-data-properties-input
        - mountPath: /config-input/sdnc-svclogic-config
          name: onap-sdnc-svclogic-config-input
        - mountPath: /config/appc-data-properties
          name: onap-appc-data-properties
        - mountPath: /config/appc-svclogic-config
          name: onap-appc-svclogic-config
        - mountPath: /config/sdnc-data-properties
          name: onap-sdnc-data-properties
        - mountPath: /config/sdnc-svclogic-config
          name: onap-sdnc-svclogic-config
        image: "{{ .Values.global.envsubstImage }}"
        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
        name: {{ include "common.name" . }}-update-config

      - name: {{ include "common.name" . }}-readiness
        command:
        - /app/ready.py
        args:
        - --container-name
        - {{.Values.config.mariadbGaleraContName}}
        env:
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        image: "{{ include "common.repository" . }}/{{ .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
              {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-root-pass" "key" "password") | indent 14}}
            - name: APPC_DB_USER
              {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "appcdb-user-creds" "key" "login") | indent 14 }}
            - name: APPC_DB_PASSWD
              {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "appcdb-user-creds" "key" "password") | indent 14 }}
            - name: SDNC_DB_USER
              {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "sdncdb-user-creds" "key" "login") | indent 14 }}
            - name: SDNC_DB_PASSWD
              {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "sdncdb-user-creds" "key" "password") | indent 14 }}
            - 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-input
            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: {{ .Values.log.path }}
            name: logs
          - mountPath: /opt/onap/appc/data/org.ops4j.pax.logging.cfg
            name: log-config
            subPath: org.ops4j.pax.logging.cfg
          - mountPath: /opt/onap/appc/data/stores/org.onap.appc.p12
            name: p12-certs
            subPath: org.onap.appc.p12
          - mountPath: /opt/onap/appc/data/stores/org.onap.appc.keyfile
            name: keyfile-certs
            subPath: org.onap.appc.keyfile
          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
        {{ include "common.log.sidecar" . | nindent 8 }}
      volumes:
        - name: keyfile-certs
          secret:
            secretName: {{ include "common.fullname" . }}-certs
        - name: p12-certs
          secret:
            secretName: {{ include "common.fullname" . }}-certs
        - name: localtime
          hostPath:
            path: /etc/localtime
        - name: log-config
          configMap:
            name: {{ include "common.fullname" . }}-logging-cfg
        - name: logs
          emptyDir: {}
        {{ include "common.log.volumes" . | nindent 8 }}
        - name: onap-appc-data-properties-input
          configMap:
            name: {{ include "common.fullname" . }}-onap-appc-data-properties
        - name: onap-appc-svclogic-config-input
          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-input
          configMap:
            name: {{ include "common.fullname" . }}-onap-sdnc-data-properties
        - name: onap-sdnc-svclogic-config-input
          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
        - name: onap-appc-data-properties
          emptyDir:
            medium: Memory
        - name: onap-appc-svclogic-config
          emptyDir:
            medium: Memory
        - name: onap-sdnc-data-properties
          emptyDir:
            medium: Memory
        - name: onap-sdnc-svclogic-config
          emptyDir:
            medium: Memory
{{ 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: "{{ include "common.release" . }}"
        heritage: "{{ .Release.Service }}"
    spec:
      accessModes:
      - {{ .Values.persistence.accessMode }}
      storageClassName: {{ include "common.storageClass" . }}
      resources:
        requests:
          storage: {{ .Values.persistence.size }}
{{ end }}
