5496aee2cb9792eadbcbdfc20c1c146b297fca25
[oom.git] / kubernetes / dcaegen2 / charts / dcae-config-binding-service / templates / deployment.yaml
1 #============LICENSE_START========================================================
2 # ================================================================================
3 # Copyright (c) 2019 AT&T Intellectual Property. All rights reserved.
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 # ============LICENSE_END=========================================================
17
18 apiVersion: extensions/v1beta1
19 kind: Deployment
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: {{ .Release.Name }}
27     heritage: {{ .Release.Service }}
28 spec:
29   replicas: 1
30   template:
31     metadata:
32       labels:
33         app: {{ include "common.name" . }}
34         release: {{ .Release.Name }}
35     spec:
36       initContainers:
37         - name: {{ include "common.name" . }}-readiness
38           image: {{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}
39           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
40           command:
41             - /root/ready.py
42           args:
43             - --container-name
44             - consul-server
45             - "-t"
46             - "15"
47           env:
48           - name: NAMESPACE
49             valueFrom:
50               fieldRef:
51                 apiVersion: v1
52                 fieldPath: metadata.namespace
53         {{- if .Values.service.secure.enabled }}
54         - name: init-tls
55           env:
56           - name: POD_IP
57             valueFrom:
58               fieldRef:
59                 apiVersion: v1
60                 fieldPath: status.podIP
61           image: {{ .Values.global.tlsRepository }}/{{ .Values.global.tlsImage }}
62           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
63           resources: {}
64           volumeMounts:
65             - mountPath: /opt/tls/shared
66               name: tls-info
67         {{ end  }}
68       containers:
69         {{- if .Values.service.secure.enabled }}
70         - name: {{ include "common.name" . }}
71           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
72           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
73           resources:
74 {{ include "common.resources" . | indent 12 }}
75           ports:
76           - containerPort: {{ .Values.service.secure.internalPort }}
77           # disable liveness probe when breakpoints set in debugger
78           # so K8s doesn't restart unresponsive container
79           {{- if eq .Values.liveness.enabled true }}
80           livenessProbe:
81             tcpSocket:
82               port: {{ .Values.service.secure.internalPort }}
83             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
84             periodSeconds: {{ .Values.liveness.periodSeconds }}
85           {{ end -}}
86           readinessProbe:
87             httpGet:
88               scheme: "HTTPS"
89               path: {{ .Values.readiness.path }}
90               port: {{ .Values.service.secure.internalPort }}
91             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
92             periodSeconds: {{ .Values.readiness.periodSeconds }}
93           volumeMounts:
94           - name: {{ include "common.fullname" . }}-logs
95             mountPath: /opt/logs
96           - name: tls-info
97             mountPath: /opt/tls
98           env:
99             - name: CONSUL_HOST
100               value: consul.{{ include "common.namespace" . }}
101             - name: USE_HTTPS
102               value: "1"
103             - name: HTTPS_CERT_PATH
104               value: "/opt/tls/cert.pem"
105             - name: HTTPS_KEY_PATH
106               value: "/opt/tls/key.pem"
107             - name: TRUST_STORE_PATH
108               value: "/opt/app/prh/etc/cert/trust.jks"
109             - name: TRUST_STORE_PASS_PATH
110               value: "/opt/app/prh/etc/cert/trust.pass"
111             - name: KEY_STORE_PATH
112               value: "/opt/app/prh/etc/cert/key.p12"
113             - name: KEY_STORE_PASS_PATH
114               value: "/opt/app/prh/etc/cert/key.pass"
115         - name: {{ include "common.name" . }}-filebeat-onap
116           image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
117           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
118           volumeMounts:
119           - name: {{ include "common.fullname" . }}-filebeat-conf
120             mountPath: /usr/share/filebeat/filebeat.yml
121             subPath: filebeat.yml
122           - name: {{ include "common.fullname" . }}-data-filebeat
123             mountPath: /usr/share/filebeat/data
124           - name: {{ include "common.fullname" . }}-logs
125             mountPath: /var/log/onap
126         {{ end }}
127         {{- if .Values.service.insecure.enabled }}
128         - name: {{ include "common.name" . }}-insecure
129           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
130           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
131           resources:
132 {{ include "common.resources" . | indent 12 }}
133           ports:
134           - containerPort: {{ .Values.service.insecure.internalPort }}
135           # disable liveness probe when breakpoints set in debugger
136           # so K8s doesn't restart unresponsive container
137           {{- if eq .Values.liveness.enabled true }}
138           livenessProbe:
139             tcpSocket:
140               port: {{ .Values.service.insecure.internalPort }}
141             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
142             periodSeconds: {{ .Values.liveness.periodSeconds }}
143           {{ end -}}
144           readinessProbe:
145             httpGet:
146               scheme: "HTTP"
147               path: {{ .Values.readiness.path }}
148               port: {{ .Values.service.insecure.internalPort }}
149             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
150             periodSeconds: {{ .Values.readiness.periodSeconds }}
151           volumeMounts:
152           - name: {{ include "common.fullname" . }}-logs-insecure
153             mountPath: /opt/logs
154           env:
155             - name: CONSUL_HOST
156               value: consul.{{ include "common.namespace" . }}
157         - name: {{ include "common.name" . }}-filebeat-onap-insecure
158           image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
159           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
160           volumeMounts:
161           - name: {{ include "common.fullname" . }}-filebeat-conf
162             mountPath: /usr/share/filebeat/filebeat.yml
163             subPath: filebeat.yml
164           - name: {{ include "common.fullname" . }}-data-filebeat-insecure
165             mountPath: /usr/share/filebeat/data
166           - name: {{ include "common.fullname" . }}-logs-insecure
167             mountPath: /var/log/onap
168         {{ end }}
169       volumes:
170         - name: {{ include "common.fullname" . }}-filebeat-conf
171           configMap:
172             name: {{ .Release.Name }}-cbs-filebeat-configmap
173         {{- if .Values.service.secure.enabled }}
174         - name: {{ include "common.fullname" . }}-data-filebeat
175           emptyDir: {}
176         - name:  {{ include "common.fullname" . }}-logs
177           emptyDir: {}
178         - name: tls-info
179           emptyDir: {}
180         {{ end }}
181         {{- if .Values.service.insecure.enabled }}
182         - name: {{ include "common.fullname" . }}-data-filebeat-insecure
183           emptyDir: {}
184         - name:  {{ include "common.fullname" . }}-logs-insecure
185           emptyDir: {}
186         {{ end }}
187
188       imagePullSecrets:
189       - name: "{{ include "common.namespace" . }}-docker-registry-key"