Merge "[EXTAPI] Deploy macromode and E2E slicing code changes"
[oom.git] / kubernetes / nbi / templates / deployment.yaml
1 {{/*
2 # Copyright © 2018 Orange
3 # Modifications Copyright © 2018  Amdocs, Bell Canada
4 # Modifications Copyright © 2020 Nokia
5 #
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 #       http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 */}}
18
19 apiVersion: apps/v1
20 kind: Deployment
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   selector:
31     matchLabels:
32       app: {{ include "common.name" . }}
33   replicas: {{ .Values.replicaCount }}
34   template:
35     metadata:
36       labels:
37         app: {{ include "common.name" . }}
38         release: {{ include "common.release" . }}
39       name: {{ include "common.fullname" . }}
40     spec:
41 {{- if .Values.global.aafEnabled }}
42       initContainers: {{ include "common.certInitializer.initContainer" . | nindent 6 }}
43 {{- end }}
44       containers:
45         - name: {{ include "common.name" . }}
46           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
47           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
48           ports:
49             - containerPort: {{ .Values.service.internalPort }}
50           # disable liveness probe when breakpoints set in debugger
51           # so K8s doesn't restart unresponsive container
52           {{- if .Values.global.aafEnabled }}
53           command:
54           - sh
55           args:
56           - -c
57           - |
58             export $(grep '^c' {{ .Values.certInitializer.credsPath }}/mycreds.prop | xargs -0)
59             export JAVA_OPTS="-Djavax.net.ssl.trustStorePassword=$cadi_truststore_password \
60               -Dserver.ssl.key-store={{ .Values.certInitializer.credsPath }}/org.onap.nbi.p12 \
61               -Dserver.ssl.key-store-type=PKCS12 \
62               -Djavax.net.ssl.trustStore={{ .Values.certInitializer.credsPath }}/org.onap.nbi.trust.jks \
63               -Dserver.ssl.key-store-password=$cadi_keystore_password_p12  \
64               -Djavax.net.ssl.trustStoreType=jks\
65               -Djava.security.egd=file:/dev/./urandom -Dserver.port=8443"
66             exec java -XX:+UseContainerSupport $JAVA_OPTS -jar /opt/onap/app.jar
67           {{- end }}
68           {{ if .Values.liveness.enabled }}
69           livenessProbe:
70             httpGet:
71               port: {{ .Values.liveness.port }}
72               path: {{ .Values.liveness.path }}
73               scheme: HTTPS
74             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
75             periodSeconds: {{ .Values.liveness.periodSeconds }}
76           {{ end }}
77           readinessProbe:
78             httpGet:
79               port: {{ .Values.readiness.port }}
80               path: {{ .Values.readiness.path }}
81               scheme: HTTPS
82             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
83             periodSeconds: {{ .Values.readiness.periodSeconds }}
84           env:
85             - name: SPRING_DATASOURCE_URL
86               value: jdbc:mariadb://{{ include "common.mariadbService" . }}:{{ include "common.mariadbPort" . }}/{{ index .Values "mariadb-galera" "config" "mysqlDatabase" }}
87             - name: SPRING_DATASOURCE_USERNAME
88               {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "nbi-db-secret" "key" "login") | indent 14 }}
89             - name: SPRING_DATASOURCE_PASSWORD
90               {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "nbi-db-secret" "key" "password") | indent 14 }}
91             - name: SPRING_DATA_MONGODB_HOST
92               value: {{ .Values.mongo.service.name }}.{{ include "common.namespace" . }}
93             - name: SPRING_DATA_MONGODB_PORT
94               value: "{{ .Values.mongo.service.internalPort }}"
95             - name: SPRING_DATA_MONGODB_DATABASE
96               value: {{ .Values.mongo.config.dbName }}
97             - name: ONAP_LCPCLOUDREGIONID
98               value: {{ .Values.config.openStackRegion }}
99             - name: ONAP_TENANTID
100               value: {{ .Values.config.openStackVNFTenantId | quote }}
101             - name: ONAP_CLOUDOWNER
102               value: {{ .Values.config.cloudOwner }}
103             - name: NBI_URL
104               value: "https://nbi.{{ include "common.namespace" . }}:8443/nbi/api/v4"
105             - name: SDC_HOST
106               value: "https://sdc-be.{{ include "common.namespace" . }}:8443"
107             - name: SDC_HEADER_ECOMPINSTANCEID
108               value: {{ .Values.config.ecompInstanceId }}
109             - name: SDC_HEADER_AUTHORIZATION
110               value: {{ .Values.sdc_authorization }}
111             - name: AAI_HOST
112               value: "https://aai.{{ include "common.namespace" . }}:8443"
113             - name: AAI_HEADER_AUTHORIZATION
114               value: {{ .Values.aai_authorization }}
115             - name: SO_HOST
116               value: http://so.{{ include "common.namespace" . }}:8080
117             {{- if .Values.so_authorization }}
118             - name: SO_HEADER_AUTHORIZATION
119               value: {{ .Values.so_authorization }}
120             {{- end }}
121             - name: DMAAP_HOST
122               value: "https://message-router.{{ include "common.namespace" . }}:3905"
123             - name: LOGGING_LEVEL_ORG_ONAP_NBI
124               value: {{ .Values.config.loglevel }}
125             - name: MSB_ENABLED
126               value: "true"
127             - name: MSB_DISCOVERY_HOST
128               value: "msb-discovery.{{ include "common.namespace" . }}"
129             - name: MSB_DISCOVERY_PORT
130               value: "10081"
131           volumeMounts: {{ include "common.certInitializer.volumeMount" . | nindent 12 }}
132             - mountPath: /etc/localtime
133               name: localtime
134               readOnly: true
135           resources:
136 {{ include "common.resources" . | indent 12 }}
137         {{- if .Values.nodeSelector }}
138         nodeSelector:
139 {{ toYaml .Values.nodeSelector | indent 10 }}
140         {{- end -}}
141         {{- if .Values.affinity }}
142         affinity:
143 {{ toYaml .Values.affinity | indent 10 }}
144         {{- end }}
145       # side car containers
146         # - name: filebeat-onap
147         #   image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
148         #   imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
149         #   volumeMounts:
150         #   - mountPath: /usr/share/filebeat/filebeat.yml
151         #     name: filebeat-conf
152         #     subPath: filebeat.yml
153         #   - mountPath: /home/esr/works/logs
154         #     name: esr-server-logs
155         #   - mountPath: /usr/share/filebeat/data
156         #     name: esr-server-filebeat
157       volumes: {{ include "common.certInitializer.volumes" . | nindent 8 }}
158         - name: localtime
159           hostPath:
160             path: /etc/localtime
161         # - name: filebeat-conf
162         #   configMap:
163         #     name: {{ include "common.fullname" . }}-esr-filebeat
164         # - name: esr-server-logs
165         #   emptyDir: {}
166         # - name: esr-server-filebeat
167         #   emptyDir: {}
168         # - name: esrserver-log
169         #   configMap:
170         #     name: {{ include "common.fullname" . }}-esr-esrserver-log
171       imagePullSecrets:
172       - name: "{{ include "common.namespace" . }}-docker-registry-key"