Merge "Create ONAP with minimal component count"
[oom.git] / kubernetes / appc / templates / statefulset.yaml
index d2da2ec..3480e63 100644 (file)
@@ -1,3 +1,17 @@
+# 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:
@@ -6,7 +20,7 @@ metadata:
   labels:
     app: {{ include "common.name" . }}
     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
+    release: {{ include "common.release" . }}
     heritage: {{ .Release.Service }}
 spec:
   serviceName: "{{ .Values.service.name }}-cluster"
@@ -16,16 +30,50 @@ spec:
     metadata:
       labels:
         app: {{ include "common.name" . }}
-        release: {{ .Release.Name }}
+        release: {{ include "common.release" . }}
     spec:
-      imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
       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:
         - /root/ready.py
         args:
         - --container-name
-        - {{ .Values.mysql.nameOverride }}
+        - {{.Values.config.mariadbGaleraContName}}
         env:
         - name: NAMESPACE
           valueFrom:
@@ -34,7 +82,12 @@ spec:
               fieldPath: metadata.namespace
         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        name: {{ include "common.name" . }}-readiness
+      - 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 }}"
@@ -46,21 +99,28 @@ spec:
           - containerPort: {{ .Values.service.externalPort2 }}
           readinessProbe:
             tcpSocket:
-              port: {{ .Values.service.internalPort }}
+               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
+              {{- 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
@@ -81,6 +141,15 @@ spec:
           - 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
@@ -93,6 +162,9 @@ spec:
           - 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
@@ -108,22 +180,25 @@ spec:
           - mountPath: /opt/onap/ccsdk/svclogic/bin/showActiveGraphs.sh
             name: onap-sdnc-svclogic-bin
             subPath: showActiveGraphs.sh
-          - mountPath: /opt/onap/ccsdk/bin/startODL.sh
-            name: onap-sdnc-bin
-            subPath: startODL.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
+          - mountPath: {{ .Values.log.path }}
             name: logs
-          - mountPath: /opt/opendaylight/current/etc/org.ops4j.pax.logging.cfg
+          - 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:
-{{ toYaml .Values.resources | indent 12 }}
-        {{- if .Values.nodeSelector }}
+{{ include "common.resources" . | indent 12 }}
+       {{- if .Values.nodeSelector }}
         nodeSelector:
 {{ toYaml .Values.nodeSelector | indent 10 }}
         {{- end -}}
@@ -133,35 +208,27 @@ spec:
         {{- 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
+        {{ 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: 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
+        {{ 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
+        - name: onap-appc-svclogic-config-input
           configMap:
             name: {{ include "common.fullname" . }}-onap-appc-svclogic-config
         - name: onap-appc-svclogic-bin
@@ -172,10 +239,10 @@ spec:
           configMap:
             name: {{ include "common.fullname" . }}-onap-appc-bin
             defaultMode: 0755
-        - name: onap-sdnc-data-properties
+        - name: onap-sdnc-data-properties-input
           configMap:
             name: {{ include "common.fullname" . }}-onap-sdnc-data-properties
-        - name: onap-sdnc-svclogic-config
+        - name: onap-sdnc-svclogic-config-input
           configMap:
             name: {{ include "common.fullname" . }}-onap-sdnc-svclogic-config
         - name: onap-sdnc-svclogic-bin
@@ -186,6 +253,18 @@ spec:
           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: {}
@@ -195,9 +274,13 @@ spec:
       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.fullname" . }}-data
+      accessModes:
+      - {{ .Values.persistence.accessMode }}
+      storageClassName: {{ include "common.storageClass" . }}
       resources:
         requests:
           storage: {{ .Values.persistence.size }}