# 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.disableSdncSdnc }}
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: sdnc
  namespace: "{{ .Values.nsPrefix }}"
spec:
  serviceName: "sdnhost-cluster"
  replicas: {{ .Values.numberOfODLReplicas }}
  podManagementPolicy: Parallel
  selector:
    matchLabels:
      app: sdnc
  template:
    metadata:
      labels:
        app: sdnc
      name: sdnc
    spec:
      initContainers:
      - command:
        - /root/ready.py
        args:
        - --container-name
        - sdnc-db-container
        env:
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        image: {{ .Values.image.readiness }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        name: sdnc-readiness
      containers:
      - command:
        - bash
        - "-c"
        - |
          sed -i 's/dbhost/sdnc-dbhost-0.dbhost.{{ .Values.nsPrefix }}.svc.cluster.local/g' /opt/onap/sdnc/data/properties/svclogic.properties
          sed -i 's/^\(org.onap.ccsdk.sli.jdbc.hosts=\).*/\1sdnc-dbhost-0.dbhost.{{ .Values.nsPrefix }}.svc.cluster.local/' /opt/onap/sdnc/data/properties/dblib.properties
          /opt/onap/sdnc/bin/startODL.sh
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: openECOMP1.0
        - name: SDNC_CONFIG_DIR
          value: /opt/onap/sdnc/data/properties
        - name: ENABLE_ODL_CLUSTER
          value: "{{ .Values.enableODLCluster }}"
        - name: SDNC_REPLICAS
          value: "{{ .Values.numberOfODLReplicas }}"
        image: {{ .Values.image.sdnc }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        name: sdnc-controller-container
        volumeMounts:
        - mountPath: /etc/localtime
          name: localtime
          readOnly: true
        - mountPath: /opt/onap/sdnc/data/properties/admportal.json
          name: sdnc-conf
          subPath: admportal.json
        - mountPath: /opt/onap/sdnc/data/properties/aaiclient.properties
          name: sdnc-conf
          subPath: aaiclient.properties
        - mountPath: /var/log/onap
          name: sdnc-logs
        - mountPath: /opt/opendaylight/current/etc/org.ops4j.pax.logging.cfg
          name: sdnc-logging-cfg-config
          subPath: org.ops4j.pax.logging.cfg
        ports:
        - containerPort: 8181
        - containerPort: 8101
        - containerPort: 2550
        - containerPort: 8080
        readinessProbe:
          tcpSocket:
            port: 8181
          initialDelaySeconds: 5
          periodSeconds: 10
      - 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: sdnc-logs
        - mountPath: /usr/share/filebeat/data
          name: sdnc-data-filebeat
      volumes:
        - name: localtime
          hostPath:
            path: /etc/localtime
        - name: filebeat-conf
          configMap:
            name: sdnc-log-configmap
        - name: sdnc-logging-cfg-config
          configMap:
            name: sdnc-logging-cfg-configmap
        - name: sdnc-logs
          emptyDir: {}
        - name: sdnc-data-filebeat
          emptyDir: {}
        - name: sdnc-conf
          configMap:
            name: sdnc-conf-configmap
            items:
            - key: admportal.json
              path: admportal.json
              mode: 0755
            - key: aaiclient.properties
              path: aaiclient.properties
              mode: 0755
      imagePullSecrets:
      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
