blob: 11008aea96e242746a7f5d110fefcab6400f0e81 [file] [log] [blame]
Sylvain Desbureaux47eb4d22020-12-10 12:15:27 +01001{{/*
Sylvain Desbureaux70070412020-11-09 21:58:48 +01002# Copyright (c) 2017 Amdocs, Bell Canada
3# Modifications Copyright (c) 2018 AT&T
4# Modifications Copyright (c) 2020 Nokia
Sylvain Desbureaux331f0042021-01-18 11:38:49 +01005# Modifications Copyright (c) 2021 Orange
efiacord12c1672023-03-23 12:10:50 +00006# Modifications Copyright © 2023 Nordix Foundation
Sylvain Desbureaux70070412020-11-09 21:58:48 +01007#
8# Licensed under the Apache License, Version 2.0 (the "License");
9# you may not use this file except in compliance with the License.
10# You may obtain a copy of the License at
11#
12# http://www.apache.org/licenses/LICENSE-2.0
13#
14# Unless required by applicable law or agreed to in writing, software
15# distributed under the License is distributed on an "AS IS" BASIS,
16# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17# See the License for the specific language governing permissions and
18# limitations under the License.
Sylvain Desbureaux47eb4d22020-12-10 12:15:27 +010019*/}}
Sylvain Desbureaux70070412020-11-09 21:58:48 +010020
21apiVersion: apps/v1
22kind: Deployment
23metadata:
24 name: {{ include "common.fullname" . }}
25 namespace: {{ include "common.namespace" . }}
26 labels:
27 app: {{ include "common.name" . }}
28 chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
29 release: {{ include "common.release" . }}
30 heritage: {{ .Release.Service }}
31spec:
32 replicas: {{ .Values.replicaCount }}
M.Hosnidokht09523be2021-08-24 09:00:42 -040033 minReadySeconds: {{ .Values.minReadySeconds }}
34 strategy:
35 type: {{ .Values.updateStrategy.type }}
36 rollingUpdate:
37 maxUnavailable: {{ .Values.updateStrategy.maxUnavailable }}
38 maxSurge: {{ .Values.updateStrategy.maxSurge }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +010039 selector:
40 matchLabels:
41 app: {{ include "common.name" . }}
42 template:
43 metadata:
44 labels:
45 app: {{ include "common.name" . }}
46 release: {{ include "common.release" . }}
47 name: {{ include "common.name" . }}
48 annotations:
49 checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
Sylvain Desbureaux331f0042021-01-18 11:38:49 +010050 {{- if .Values.global.msbEnabled }}
51 {{ $values := .Values }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +010052 msb.onap.org/service-info: '[
Sylvain Desbureaux331f0042021-01-18 11:38:49 +010053 {{- range $api_endpoint := $values.aai_enpoints -}}
54 {{- range $api_version := $values.api_list }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +010055 {
Sylvain Desbureaux331f0042021-01-18 11:38:49 +010056 "serviceName": "_{{ $api_endpoint.name }}",
57 "version": "v{{ $api_version }}",
58 "url": "/aai/v{{ $api_version }}/{{ $api_endpoint.url }}",
Sylvain Desbureaux70070412020-11-09 21:58:48 +010059 "protocol": "REST",
60 "port": "8447",
61 "enable_ssl": true,
62 "lb_policy":"ip_hash",
63 "visualRange": "1",
Sylvain Desbureaux331f0042021-01-18 11:38:49 +010064 "path": "/aai/v{{ $api_version }}/{{ $api_endpoint.url }}"
Sylvain Desbureaux70070412020-11-09 21:58:48 +010065 },
66 {
Sylvain Desbureaux331f0042021-01-18 11:38:49 +010067 "serviceName": "{{ $api_endpoint.name }}",
68 "version": "v{{ $api_version }}",
69 "url": "/aai/v{{ $api_version }}/{{ $api_endpoint.url }}",
Sylvain Desbureaux70070412020-11-09 21:58:48 +010070 "protocol": "REST",
71 "port": "8447",
72 "enable_ssl": true,
73 "lb_policy":"ip_hash",
74 "visualRange": "1"
75 },
Sylvain Desbureaux331f0042021-01-18 11:38:49 +010076 {{- end }}
77 {{- end }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +010078 ]'
Sylvain Desbureaux331f0042021-01-18 11:38:49 +010079 {{- end }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +010080 spec:
81 hostname: aai-resources
M.Hosnidokht09523be2021-08-24 09:00:42 -040082 terminationGracePeriodSeconds: {{ .Values.service.terminationGracePeriodSeconds }}
efiacord12c1672023-03-23 12:10:50 +000083 initContainers:
Sylvain Desbureauxb4e038d2020-12-15 12:00:26 +010084 - name: {{ include "common.name" . }}-readiness
85 command:
Sylvain Desbureaux70070412020-11-09 21:58:48 +010086 - /app/ready.py
87 args:
Sylvain Desbureauxb4e038d2020-12-15 12:00:26 +010088 {{- if .Values.global.jobs.migration.enabled }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +010089 - --job-name
90 - {{ include "common.release" . }}-aai-graphadmin-migration
Sylvain Desbureauxb4e038d2020-12-15 12:00:26 +010091 {{- else }}
92 {{- if .Values.global.jobs.createSchema.enabled }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +010093 - --job-name
94 - {{ include "common.release" . }}-aai-graphadmin-create-db-schema
Sylvain Desbureaux6212bb22021-01-18 11:43:33 +010095 {{- else }}
Sylvain Desbureauxb4e038d2020-12-15 12:00:26 +010096 - --container-name
97 {{- if .Values.global.cassandra.localCluster }}
98 - aai-cassandra
99 {{- else }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100100 - cassandra
Sylvain Desbureauxb4e038d2020-12-15 12:00:26 +0100101 {{- end }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100102 - --container-name
103 - aai-schema-service
Sylvain Desbureauxb4e038d2020-12-15 12:00:26 +0100104 {{- end }}
Sylvain Desbureaux6212bb22021-01-18 11:43:33 +0100105 {{- end }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100106 env:
107 - name: NAMESPACE
108 valueFrom:
109 fieldRef:
110 apiVersion: v1
111 fieldPath: metadata.namespace
Sylvain Desbureaux5b651322020-12-07 15:34:15 +0100112 image: {{ include "repositoryGenerator.image.readiness" . }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100113 imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100114 containers:
115 - name: {{ include "common.name" . }}
Sylvain Desbureaux5b651322020-12-07 15:34:15 +0100116 image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100117 imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
Sylvain Desbureauxb4e038d2020-12-15 12:00:26 +0100118 command:
119 - sh
120 args:
121 - -c
122 - |
Sylvain Desbureauxb4e038d2020-12-15 12:00:26 +0100123 echo "*** actual launch of AAI Resources"
124 /bin/bash /opt/app/aai-resources/docker-entrypoint.sh
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100125 env:
126 - name: LOCAL_USER_ID
127 value: {{ .Values.global.config.userId | quote }}
128 - name: LOCAL_GROUP_ID
129 value: {{ .Values.global.config.groupId | quote }}
M.Hosnidokht09523be2021-08-24 09:00:42 -0400130 - name: INTERNAL_PORT_1
131 value: {{ .Values.service.internalPort | quote }}
132 - name: INTERNAL_PORT_2
133 value: {{ .Values.service.internalPort2 | quote }}
leila46fb5802022-11-15 11:33:21 -0500134 - name: INTERNAL_PORT_3
135 value: {{ .Values.service.internalPort3 | quote }}
efiacord12c1672023-03-23 12:10:50 +0000136 volumeMounts:
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100137 - mountPath: /etc/localtime
138 name: localtime
139 readOnly: true
140 - mountPath: /opt/app/aai-resources/resources/etc/appprops/janusgraph-realtime.properties
141 name: {{ include "common.fullname" . }}-config
142 subPath: janusgraph-realtime.properties
143 - mountPath: /opt/app/aai-resources/resources/etc/appprops/janusgraph-cached.properties
144 name: {{ include "common.fullname" . }}-config
145 subPath: janusgraph-cached.properties
146 - mountPath: /opt/app/aai-resources/resources/etc/appprops/aaiconfig.properties
147 name: {{ include "common.fullname" . }}-config
148 subPath: aaiconfig.properties
149 - mountPath: /opt/aai/logroot/AAI-RES
Maciej Wereskid523d122021-09-21 11:22:13 +0200150 name: logs
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100151 - mountPath: /opt/app/aai-resources/resources/logback.xml
152 name: {{ include "common.fullname" . }}-config
153 subPath: logback.xml
154 - mountPath: /opt/app/aai-resources/resources/localhost-access-logback.xml
155 name: {{ include "common.fullname" . }}-config
156 subPath: localhost-access-logback.xml
157 - mountPath: /opt/app/aai-resources/resources/etc/auth/realm.properties
158 name: {{ include "common.fullname" . }}-config
159 subPath: realm.properties
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100160 - mountPath: /opt/app/aai-resources/resources/application.properties
161 name: {{ include "common.fullname" . }}-config
162 subPath: application.properties
163 - mountPath: /opt/app/aai-resources/resources/application-keycloak.properties
164 name: {{ include "common.fullname" . }}-config
165 subPath: application-keycloak.properties
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100166 ports:
167 - containerPort: {{ .Values.service.internalPort }}
168 - containerPort: {{ .Values.service.internalPort2 }}
leila46fb5802022-11-15 11:33:21 -0500169 - containerPort: {{ .Values.service.internalPort3 }}
M.Hosnidokht09523be2021-08-24 09:00:42 -0400170 lifecycle:
171 # wait for active requests (long-running tasks) to be finished
172 # Before the SIGTERM is invoked, Kubernetes exposes a preStop hook in the Pod.
173 preStop:
174 exec:
175 command:
176 - sh
177 - -c
178 - |
179 while (netstat -an | grep ESTABLISHED | grep -e $INTERNAL_PORT_1 -e $INTERNAL_PORT_2)
180 do sleep 10
181 done
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100182 # disable liveness probe when breakpoints set in debugger
183 # so K8s doesn't restart unresponsive container
Sylvain Desbureaux5b651322020-12-07 15:34:15 +0100184 {{- if .Values.liveness.enabled }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100185 livenessProbe:
Rommel Pawarc8845ef2022-09-22 14:04:14 -0700186 httpGet:
187 path: /aai/util/echo?action=checkDB
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100188 port: {{ .Values.service.internalPort }}
efiacord12c1672023-03-23 12:10:50 +0000189 scheme: HTTP
Rommel Pawarc8845ef2022-09-22 14:04:14 -0700190 httpHeaders:
191 - name: X-FromAppId
192 value: LivenessCheck
193 - name: X-TransactionId
194 value: LiveCheck_TID
195 - name: Accept
196 value: application/json
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100197 initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
198 periodSeconds: {{ .Values.liveness.periodSeconds }}
Sylvain Desbureaux5b651322020-12-07 15:34:15 +0100199 {{- end }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100200 readinessProbe:
Rommel Pawarc8845ef2022-09-22 14:04:14 -0700201 httpGet:
202 path: /aai/util/echo?action=checkDB
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100203 port: {{ .Values.service.internalPort }}
efiacord12c1672023-03-23 12:10:50 +0000204 scheme: HTTP
Rommel Pawarc8845ef2022-09-22 14:04:14 -0700205 httpHeaders:
206 - name: X-FromAppId
207 value: ReadinessCheck
208 - name: X-TransactionId
209 value: ReadinessCheck_TID
210 - name: Accept
211 value: application/json
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100212 initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
213 periodSeconds: {{ .Values.readiness.periodSeconds }}
miroslavmasaryka7ac7f02023-03-01 14:12:26 +0100214 resources: {{ include "common.resources" . | nindent 10 }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100215 {{- if .Values.nodeSelector }}
Sylvain Desbureaux5b651322020-12-07 15:34:15 +0100216 nodeSelector: {{ toYaml .Values.nodeSelector | nindent 8 }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100217 {{- end }}
Sylvain Desbureaux5b651322020-12-07 15:34:15 +0100218 {{- if .Values.affinity }}
219 affinity: {{ toYaml .Values.affinity | nindent 8 }}
220 {{- end }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100221 # side car containers
Maciej Wereskid523d122021-09-21 11:22:13 +0200222 {{ include "common.log.sidecar" . | nindent 6 }}
farida azmyd8937332021-03-09 12:20:42 +0200223 serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
efiacord12c1672023-03-23 12:10:50 +0000224 volumes:
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100225 - name: localtime
226 hostPath:
227 path: /etc/localtime
Maciej Wereskid523d122021-09-21 11:22:13 +0200228 - name: logs
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100229 emptyDir: {}
Maciej Wereskid523d122021-09-21 11:22:13 +0200230 {{ include "common.log.volumes" (dict "dot" . "configMapNamePrefix" (tpl .Values.logConfigMapNamePrefix .)) | nindent 6 }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100231 - name: {{ include "common.fullname" . }}-config
232 configMap:
Sylvain Desbureauxb4e038d2020-12-15 12:00:26 +0100233 name: {{ include "common.fullname" . }}
Sylvain Desbureaux70070412020-11-09 21:58:48 +0100234 restartPolicy: {{ .Values.restartPolicy }}
235 imagePullSecrets:
236 - name: "{{ include "common.namespace" . }}-docker-registry-key"