Merge "[COMMON] new logConfiguration chart"
[oom.git] / kubernetes / policy / charts / policy-apex-pdp / templates / statefulset.yaml
1 #  ============LICENSE_START=======================================================
2 #   Copyright (C) 2018 Ericsson. All rights reserved.
3 #  ================================================================================
4 #  Licensed under the Apache License, Version 2.0 (the "License");
5 #  you may not use this file except in compliance with the License.
6 #  You may obtain a copy of the License at
7 #
8 #       http://www.apache.org/licenses/LICENSE-2.0
9 #
10 #  Unless required by applicable law or agreed to in writing, software
11 #  distributed under the License is distributed on an "AS IS" BASIS,
12 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 #  See the License for the specific language governing permissions and
14 #  limitations under the License.
15 #
16 #  SPDX-License-Identifier: Apache-2.0
17 #  ============LICENSE_END=========================================================
18
19 apiVersion: apps/v1
20 kind: StatefulSet
21 metadata:
22   name: {{ include "common.fullname" . }}
23   namespace: {{ include "common.namespace" . }}
24   labels:
25     app: {{ include "common.name" . }}
26     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
27     release: {{ include "common.release" . }}
28     heritage: {{ .Release.Service }}
29 spec:
30   serviceName: {{ include "common.servicename" . }}
31   replicas: {{ .Values.replicaCount }}
32   selector:
33     matchLabels:
34       app: {{ include "common.name" . }}
35   template:
36     metadata:
37       labels:
38         app: {{ include "common.name" . }}
39         release: {{ include "common.release" . }}
40     spec:
41       initContainers:
42       - command:
43         - sh
44         args:
45         - -c
46         - "export TRUSTSTORE_PASSWORD_BASE64=`echo -n ${TRUSTSTORE_PASSWORD} | base64`; cd /config-input && for PFILE in `ls -1`; do envsubst <${PFILE} >/config/${PFILE}; done"
47         env:
48         - name: TRUSTSTORE_PASSWORD
49           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "truststore-pass" "key" "password") | indent 10 }}
50         - name: RESTSERVER_USER
51           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "restserver-creds" "key" "login") | indent 10 }}
52         - name: RESTSERVER_PASSWORD
53           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "restserver-creds" "key" "password") | indent 10 }}
54         volumeMounts:
55         - mountPath: /config-input
56           name: apexconfig-input
57         - mountPath: /config
58           name: apexconfig
59         image: "{{ .Values.global.envsubstImage }}"
60         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
61         name: {{ include "common.name" . }}-update-config
62       containers:
63         - name: {{ include "common.name" . }}
64           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
65           command:
66           - /opt/app/policy/apex-pdp/bin/apexOnapPf.sh
67           - -c
68           - /home/apexuser/config/OnapPfConfig.json
69           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
70           ports:
71           - containerPort: {{ .Values.service.externalPort }}
72           {{- if eq .Values.liveness.enabled true }}
73           livenessProbe:
74             tcpSocket:
75               port: {{ .Values.service.externalPort }}
76             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
77             periodSeconds: {{ .Values.liveness.periodSeconds }}
78           {{- end }}
79           readinessProbe:
80             tcpSocket:
81               port: {{ .Values.service.externalPort }}
82             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
83             periodSeconds: {{ .Values.readiness.periodSeconds }}
84           env:
85           - name: REPLICAS
86             value: "{{ .Values.replicaCount }}"
87           volumeMounts:
88           - mountPath: /etc/localtime
89             name: localtime
90             readOnly: true
91           - mountPath: /var/log/onap
92             name: policy-logs
93           - mountPath: /home/apexuser/config
94             name: apexconfig
95           resources:
96 {{ include "common.resources" . | indent 12 }}
97         {{- if .Values.nodeSelector }}
98         nodeSelector:
99 {{ toYaml .Values.nodeSelector | indent 10 }}
100         {{- end -}}
101         {{- if .Values.affinity }}
102         affinity:
103 {{ toYaml .Values.affinity | indent 10 }}
104         {{- end }}
105       volumes:
106         - name: localtime
107           hostPath:
108             path: /etc/localtime
109         - name: policy-logs
110           emptyDir: {}
111         - name: apexconfig-input
112           configMap:
113             name: {{ include "common.fullname" . }}-configmap
114             defaultMode: 0755
115         - name: apexconfig
116           emptyDir:
117             medium: Memory
118       imagePullSecrets:
119       - name: "{{ include "common.namespace" . }}-docker-registry-key"