d389246b5cea60303715ba96a3653353460397fc
[oom.git] / kubernetes / policy / components / policy-drools-pdp / templates / statefulset.yaml
1 {{/*
2 # Copyright © 2017 Amdocs, Bell Canada
3 # Modifications Copyright © 2018-2020 AT&T Intellectual Property
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 #       http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 */}}
17
18 apiVersion: apps/v1
19 kind: StatefulSet
20 metadata:
21   name: {{ include "common.fullname" . }}
22   namespace: {{ include "common.namespace" . }}
23   labels:
24     app: {{ include "common.name" . }}
25     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
26     release: {{ include "common.release" . }}
27     heritage: {{ .Release.Service }}
28 spec:
29   serviceName: {{ include "common.servicename" . }}
30   replicas: {{ .Values.replicaCount }}
31   selector:
32     matchLabels:
33       app: {{ include "common.name" . }}
34   template:
35     metadata:
36       labels:
37         app: {{ include "common.name" . }}
38         release: {{ include "common.release" . }}
39     spec:
40       initContainers:
41       - command:
42         - /app/ready.py
43         args:
44         - --job-name
45         - {{ include "common.release" . }}-policy-galera-config
46         env:
47         - name: NAMESPACE
48           valueFrom:
49             fieldRef:
50               apiVersion: v1
51               fieldPath: metadata.namespace
52         image: {{ include "repositoryGenerator.image.readiness" . }}
53         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
54         name: {{ include "common.name" . }}-db-readiness
55 {{- if not .Values.nexus.offline }}
56       - command:
57         - /app/ready.py
58         args:
59         - --container-name
60         - {{ .Values.nexus.name }}
61         env:
62         - name: NAMESPACE
63           valueFrom:
64             fieldRef:
65               apiVersion: v1
66               fieldPath: metadata.namespace
67         image: {{ include "repositoryGenerator.image.readiness" . }}
68         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
69         name: {{ include "common.name" . }}-readiness
70 {{- end }}
71 {{ include "common.certInitializer.initContainer" . | indent 6 }}
72       containers:
73         - name: {{ include "common.name" . }}
74           image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
75           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
76           command: ["sh","-c"]
77           args: ["if [ -f {{ .Values.certInitializer.credsPath }}/.ci ]; then \
78                   source {{ .Values.certInitializer.credsPath }}/.ci; fi;\
79                   cp {{ .Values.certInitializer.credsPath }}/org.onap.policy.p12 ${POLICY_HOME}/etc/ssl/policy-keystore;\
80                   /opt/app/policy/bin/pdpd-cl-entrypoint.sh boot"]
81           ports:
82           - containerPort: {{ .Values.service.externalPort }}
83           - containerPort: {{ .Values.service.externalPort2 }}
84           {{- if eq .Values.liveness.enabled true }}
85           livenessProbe:
86             tcpSocket:
87               port: {{ .Values.service.externalPort }}
88             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
89             periodSeconds: {{ .Values.liveness.periodSeconds }}
90           {{- end }}
91           readinessProbe:
92             tcpSocket:
93               port: {{ .Values.service.externalPort }}
94             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
95             periodSeconds: {{ .Values.readiness.periodSeconds }}
96           env:
97           - name: REPLICAS
98             value: "{{ .Values.replicaCount }}"
99           - name: SQL_USER
100             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "login") | indent 12 }}
101           - name: SQL_PASSWORD
102             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "password") | indent 12 }}
103           volumeMounts:
104 {{ include "common.certInitializer.volumeMount" . | indent 10 }}
105           - mountPath: /etc/localtime
106             name: localtime
107             readOnly: true
108           {{- range $path, $bytes := .Files.Glob "resources/secrets/*" }}
109           - mountPath: /tmp/policy-install/config/{{ base $path }}
110             name: drools-secret
111             subPath: {{ base $path }}
112           {{- end }}
113           {{- range $path, $bytes := .Files.Glob "resources/configmaps/*" }}
114           - mountPath: /tmp/policy-install/config/{{ base $path }}
115             name: drools-config
116             subPath: {{ base $path }}
117           {{- end }}
118           resources:
119 {{ include "common.resources" . }}
120         {{- if .Values.nodeSelector }}
121         nodeSelector:
122 {{ toYaml .Values.nodeSelector | indent 10 }}
123         {{- end -}}
124         {{- if .Values.affinity }}
125         affinity:
126 {{ toYaml .Values.affinity | indent 10 }}
127         {{- end }}
128       serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
129       volumes:
130 {{ include "common.certInitializer.volumes" . | indent 8 }}
131         - name: localtime
132           hostPath:
133             path: /etc/localtime
134         - name: drools-config
135           configMap:
136             name: {{ include "common.fullname" . }}-configmap
137             items:
138             {{- range $path, $bytes := .Files.Glob "resources/configmaps/*" }}
139             - key: {{ base $path }}
140               path: {{ base $path }}
141               mode: 0755
142             {{- end }}
143         - name: drools-secret
144           secret:
145             secretName: {{ include "common.fullname" . }}-secret
146             items:
147             {{- range $path, $bytes := .Files.Glob "resources/secrets/*" }}
148             - key: {{ base $path }}
149               path: {{ base $path }}
150               mode: 0644
151             {{- end }}
152       imagePullSecrets:
153       - name: "{{ include "common.namespace" . }}-docker-registry-key"