Merge "Add sms preload job that preloads secrets"
[oom.git] / kubernetes / aai / charts / aai-data-router / templates / deployment.yaml
1 # Copyright © 2017 Amdocs, Bell Canada
2 # Modifications Copyright © 2018 AT&T
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 apiVersion: extensions/v1beta1
17 kind: Deployment
18 metadata:
19   name: {{ include "common.fullname" . }}
20   namespace: {{ include "common.namespace" . }}
21   labels:
22     app: {{ include "common.name" . }}
23     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
24     release: {{ .Release.Name }}
25     heritage: {{ .Release.Service }}
26 spec:
27   replicas: {{ .Values.replicaCount }}
28   selector:
29     matchLabels:
30       app: {{ include "common.name" . }}
31   template:
32     metadata:
33       labels:
34         app: {{ include "common.name" . }}
35         release: {{ .Release.Name }}
36       name: {{ include "common.name" . }}
37     spec:
38       initContainers:
39       - command:
40         - /bin/sh
41         - -c
42         - |
43           mkdir -p /logroot/data-router/logs
44           chmod -R 777 /logroot/data-router/logs
45           chown -R root:root /logroot
46         env:
47         - name: NAMESPACE
48           valueFrom:
49             fieldRef:
50               apiVersion: v1
51               fieldPath: metadata.namespace
52         securityContext:
53           privileged: true
54         image: {{ .Values.global.dockerhubRepository | default .Values.dockerhubRepository }}/{{ .Values.global.busyboxImage | default .Values.busyboxImage }}
55         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
56         name: init-sysctl
57         volumeMounts:
58         - name: {{ include "common.fullname" . }}-logs
59           mountPath: /logroot/
60       containers:
61       - name: {{ include "common.name" . }}
62         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
63         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
64         env:
65         - name: SERVICE_BEANS
66           value: /opt/app/data-router/dynamic/conf
67         - name: CONFIG_HOME
68           value: /opt/app/data-router/config/
69         - name: KEY_STORE_PASSWORD
70           value: {{ .Values.config.keyStorePassword }}
71         - name: DYNAMIC_ROUTES
72           value: /opt/app/data-router/dynamic/routes
73         - name: KEY_MANAGER_PASSWORD
74           value: {{ .Values.config.keyManagerPassword }}
75         - name: PATH
76           value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
77         - name: JAVA_HOME
78           value: usr/lib/jvm/java-8-openjdk-amd64
79         volumeMounts:
80         - mountPath: /etc/localtime
81           name: localtime
82           readOnly: true
83         - mountPath:  /opt/app/data-router/config/auth
84           name: {{ include "common.fullname" . }}-auth
85         - mountPath:  /opt/app/data-router/config/data-router.properties
86           subPath: data-router.properties
87           name: {{ include "common.fullname" . }}-properties
88         - mountPath:  /opt/app/data-router/config/schemaIngest.properties
89           subPath: schemaIngest.properties
90           name: {{ include "common.fullname" . }}-properties
91         - mountPath: /opt/app/data-router/dynamic/routes/entity-event.route
92           subPath: entity-event.route
93           name: {{ include "common.fullname" . }}-dynamic-route
94         - mountPath: /opt/app/data-router/dynamic/conf/entity-event-policy.xml
95           subPath: entity-event-policy.xml
96           name: {{ include "common.fullname" . }}-dynamic-policy
97         - mountPath: /opt/app/data-router/dynamic/conf/data-router-oxm.xml
98           subPath: data-router-oxm.xml
99           name: {{ include "common.fullname" . }}-dynamic-oxm
100         - mountPath: /opt/app/data-router/bundleconfig/etc/logback.xml
101           name: {{ include "common.fullname" . }}-logback-config
102           subPath: logback.xml
103         - mountPath: /var/log/onap
104           name: {{ include "common.fullname" . }}-logs
105         - mountPath: /logs
106           name: {{ include "common.fullname" . }}-logs
107
108         ports:
109         - containerPort: {{ .Values.service.internalPort }}
110         {{- if eq .Values.liveness.enabled true }}
111         livenessProbe:
112           tcpSocket:
113             port: {{ .Values.service.internalPort }}
114           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
115           periodSeconds: {{ .Values.liveness.periodSeconds }}
116         {{ end -}}
117         readinessProbe:
118           tcpSocket:
119             port: {{ .Values.service.internalPort }}
120           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
121           periodSeconds: {{ .Values.readiness.periodSeconds }}
122         resources:
123 {{ include "common.resources" . | indent 12 }}
124
125       # side car containers
126       - name: filebeat-onap
127         image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
128         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
129         volumeMounts:
130         - mountPath: /usr/share/filebeat/filebeat.yml
131           subPath: filebeat.yml
132           name: filebeat-conf
133         - mountPath: /var/log/onap
134           name: {{ include "common.fullname" . }}-logs
135         - mountPath: /logs
136           name: {{ include "common.fullname" . }}-logs
137         - mountPath: /usr/share/filebeat/data
138           name: aai-filebeat
139       volumes:
140       - name: localtime
141         hostPath:
142           path: /etc/localtime
143       - name: filebeat-conf
144         configMap:
145           name: aai-filebeat
146       - name: aai-filebeat
147         emptyDir: {}
148       - name: {{ include "common.fullname" . }}-auth
149         secret:
150           secretName: {{ include "common.fullname" . }}
151       - name: {{ include "common.fullname" . }}-properties
152         configMap:
153           name: {{ include "common.fullname" . }}-prop
154           items:
155           - key: data-router.properties
156             path: data-router.properties
157           - key: schemaIngest.properties
158             path: schemaIngest.properties
159       - name: {{ include "common.fullname" . }}-dynamic-route
160         configMap:
161           name: {{ include "common.fullname" . }}-dynamic
162       - name: {{ include "common.fullname" . }}-dynamic-policy
163         configMap:
164           name: {{ include "common.fullname" . }}-dynamic
165       - name: {{ include "common.fullname" . }}-dynamic-oxm
166         configMap:
167           name: {{ include "common.fullname" . }}-dynamic
168       - name: {{ include "common.fullname" . }}-logs
169         emptyDir: {}
170       - name: {{ include "common.fullname" . }}-logback-config
171         configMap:
172           name: {{ include "common.fullname" . }}-log-configmap
173           items:
174           - key: logback.xml
175             path: logback.xml
176       restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }}
177       imagePullSecrets:
178       - name: "{{ include "common.namespace" . }}-docker-registry-key"