d622be662ddd291288ff934b05c568009b53adc6
[oom.git] / kubernetes / aai / charts / aai-sparky-be / 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         - /root/ready.py
41         args:
42         - --container-name
43         - aai-elasticsearch
44         - --container-name
45         - aai-search-data
46         - --container-name
47         - aai
48         env:
49         - name: NAMESPACE
50           valueFrom:
51             fieldRef:
52               apiVersion: v1
53               fieldPath: metadata.namespace
54         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
55         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
56         name: {{ include "common.name" . }}-readiness
57       containers:
58       - name: {{ include "common.name" . }}
59         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
60         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
61
62         volumeMounts:
63         - mountPath: /etc/localtime
64           name: localtime
65           readOnly: true
66         - mountPath: /opt/app/sparky/config/auth/
67           name: {{ include "common.fullname" . }}-auth-config
68
69         - mountPath: /opt/app/sparky/config/portal/
70           name: {{ include "common.fullname" . }}-portal-config
71
72         - mountPath: /opt/app/sparky/config/portal/BOOT-INF/classes/
73           name: {{ include "common.fullname" . }}-portal-config-props
74
75         - mountPath: /var/log/onap
76           name: {{ include "common.fullname" . }}-logs
77
78         - mountPath:  /opt/app/sparky/config/application.properties
79           name: {{ include "common.fullname" . }}-properties
80           subPath: application.properties
81
82         - mountPath:  /opt/app/sparky/config/application-resources.properties
83           name: {{ include "common.fullname" . }}-properties
84           subPath: application-resources.properties
85
86         - mountPath:  /opt/app/sparky/config/application-ssl.properties
87           name: {{ include "common.fullname" . }}-properties
88           subPath: application-ssl.properties
89
90         - mountPath:  /opt/app/sparky/config/application-oxm-default.properties
91           name: {{ include "common.fullname" . }}-properties
92           subPath: application-oxm-default.properties
93
94         - mountPath:  /opt/app/sparky/config/application-oxm-override.properties
95           name: {{ include "common.fullname" . }}-properties
96           subPath: application-oxm-override.properties
97
98         - mountPath:  /opt/app/sparky/config/application-oxm-schema-prod.properties
99           name: {{ include "common.fullname" . }}-properties
100           subPath: application-oxm-schema-prod.properties
101
102         - mountPath:  /opt/app/sparky/config/roles.config
103           name: {{ include "common.fullname" . }}-properties
104           subPath: roles.config
105
106         - mountPath:  /opt/app/sparky/config/users.config
107           name: {{ include "common.fullname" . }}-properties
108           subPath: users.config
109
110         ports:
111         - containerPort: {{ .Values.service.internalPort }}
112         - containerPort: {{ .Values.service.internalPort2 }}
113         # disable liveness probe when breakpoints set in debugger
114         # so K8s doesn't restart unresponsive container
115         {{- if eq .Values.liveness.enabled true }}
116         livenessProbe:
117           tcpSocket:
118             port: {{ .Values.service.internalPort }}
119           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
120           periodSeconds: {{ .Values.liveness.periodSeconds }}
121         {{ end -}}
122         readinessProbe:
123           tcpSocket:
124             port: {{ .Values.service.internalPort }}
125           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
126           periodSeconds: {{ .Values.readiness.periodSeconds }}
127         resources:
128 {{ include "common.resources" . | indent 12 }}
129       {{- if .Values.nodeSelector }}
130       nodeSelector:
131 {{ toYaml .Values.nodeSelector | indent 8 }}
132       {{- end -}}
133       {{- if .Values.affinity }}
134       affinity:
135 {{ toYaml .Values.affinity | indent 8 }}
136       {{- end }}
137
138       # side car containers
139       - name: filebeat-onap
140         image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
141         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
142         volumeMounts:
143         - mountPath: /usr/share/filebeat/filebeat.yml
144           subPath: filebeat.yml
145           name: filebeat-conf
146         - mountPath: /var/log/onap
147           name: {{ include "common.fullname" . }}-logs
148         - mountPath: /usr/share/filebeat/data
149           name: aai-sparky-filebeat
150
151       volumes:
152       - name: localtime
153         hostPath:
154           path: /etc/localtime
155
156       - name: {{ include "common.fullname" . }}-properties
157         configMap:
158           name: {{ include "common.fullname" . }}-prop
159
160       - name: {{ include "common.fullname" . }}-config
161         configMap:
162           name: {{ include "common.fullname" . }}
163
164       - name: {{ include "common.fullname" . }}-portal-config
165         configMap:
166           name: {{ include "common.fullname" . }}-portal
167
168       - name: {{ include "common.fullname" . }}-portal-config-props
169         configMap:
170           name: {{ include "common.fullname" . }}-portal-props
171
172       - name: {{ include "common.fullname" . }}-auth-config
173         secret:
174           secretName: {{ include "common.fullname" . }}
175       - name: filebeat-conf
176         configMap:
177           name: aai-filebeat
178       - name: {{ include "common.fullname" . }}-logs
179         emptyDir: {}
180       - name: aai-sparky-filebeat
181         emptyDir: {}
182       - name: modeldir
183         emptyDir: {}
184       restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }}
185       imagePullSecrets:
186       - name: "{{ include "common.namespace" . }}-docker-registry-key"