Merge "[AAI] Add model-loader tracing config"
[oom.git] / kubernetes / aai / templates / deployment.yaml
1 {{/*
2 # Copyright (c) 2018 Amdocs, Bell Canada, AT&T
3 # Modifications Copyright (c) 2020 Nokia, Orange
4 # Modifications Copyright © 2023 Nordix Foundation
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     app.kubernetes.io/name: {{ include "common.name" . }}
27     {{- if .Chart.AppVersion }}
28     version: "{{ .Chart.AppVersion | replace "+" "_" }}"
29     {{- else }}
30     version: "{{ .Chart.Version | replace "+" "_" }}"
31     {{- end }}
32     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
33     release: {{ include "common.release" . }}
34     heritage: {{ .Release.Service }}
35 spec:
36   selector:
37     matchLabels:
38       app: {{ include "common.name" . }}
39   replicas: {{ .Values.replicaCount }}
40   strategy:
41     type: {{ .Values.updateStrategy.type }}
42     {{- if (eq "RollingUpdate" .Values.updateStrategy.type) }}
43     rollingUpdate:
44       maxUnavailable: {{ .Values.updateStrategy.maxUnavailable }}
45       maxSurge: {{ .Values.updateStrategy.maxSurge }}
46     {{- end }}
47   template:
48     metadata:
49       labels:
50         app: {{ include "common.name" . }}
51         release: {{ include "common.release" . }}
52         app.kubernetes.io/name: {{ include "common.name" . }}
53         {{- if .Chart.AppVersion }}
54         version: "{{ .Chart.AppVersion | replace "+" "_" }}"
55         {{- else }}
56         version: "{{ .Chart.Version | replace "+" "_" }}"
57         {{- end }}
58       name: {{ include "common.release" . }}
59       annotations:
60         checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
61     spec:
62       terminationGracePeriodSeconds: {{ .Values.service.terminationGracePeriodSeconds }}
63       initContainers:
64       - command:
65         - /app/ready.py
66         args:
67         - --service-name
68         - aai-resources
69         - --service-name
70         - aai-traversal
71         - --service-name
72         - aai-graphadmin
73         env:
74         - name: NAMESPACE
75           valueFrom:
76             fieldRef:
77               apiVersion: v1
78               fieldPath: metadata.namespace
79         image: {{ include "repositoryGenerator.image.readiness" . }}
80         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
81         name: {{ include "common.name" . }}-readiness
82         resources:
83           requests:
84             memory: {{ .Values.haproxy.initContainers.resources.memory }}
85             cpu: {{ .Values.haproxy.initContainers.resources.cpu }}
86           limits:
87             memory: {{ .Values.haproxy.initContainers.resources.memory }}
88             cpu: {{ .Values.haproxy.initContainers.resources.cpu }}
89       containers:
90       - name: {{ include "common.name" . }}
91         image: "{{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}"
92         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
93         volumeMounts:
94         - mountPath: /usr/local/etc/haproxy/haproxy.cfg
95         {{ if .Values.global.installSidecarSecurity }}
96           subPath: haproxy-pluggable-security.cfg
97         {{ else }}
98           subPath: haproxy.cfg
99         {{ end }}
100           name: haproxy-cfg
101         ports:
102         - containerPort: {{ .Values.service.internalPort }}
103           name: {{ .Values.service.portName }}
104         - containerPort: {{ .Values.metricsService.internalPort }}
105           name: {{ .Values.metricsService.portName }}
106         # disable liveness probe when breakpoints set in debugger
107         # so K8s doesn't restart unresponsive container
108         {{- if eq .Values.liveness.enabled true }}
109         livenessProbe:
110           tcpSocket:
111             port: {{ .Values.service.internalPort }}
112           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
113           periodSeconds: {{ .Values.liveness.periodSeconds }}
114         {{ end -}}
115         readinessProbe:
116           httpGet:
117             path: /aai/util/echo
118             port: {{ .Values.service.internalPort }}
119             scheme: HTTP
120             httpHeaders:
121             - name: X-FromAppId
122               value: OOM_ReadinessCheck
123       {{ if .Values.global.installSidecarSecurity }}
124             - name: Authorization
125               value: Basic YWFpQGFhaS5vbmFwLm9yZzpkZW1vMTIzNDU2IQ==
126       {{ end }}
127             - name: X-TransactionId
128               value: OOM_ReadinessCheck_TID
129             - name: Accept
130               value: application/json
131           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
132           periodSeconds: {{ .Values.readiness.periodSeconds }}
133         resources: {{ include "common.resources" . | nindent 10 }}
134       {{- if .Values.nodeSelector }}
135       nodeSelector:
136 {{ toYaml .Values.nodeSelector | indent 8 }}
137       {{- end -}}
138       {{- if .Values.affinity }}
139       affinity:
140 {{ toYaml .Values.affinity | indent 8 }}
141       {{- end }}
142       serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
143       volumes:
144         - name: haproxy-cfg
145           configMap:
146             name: aai-deployment-configmap
147       {{- include "common.imagePullSecrets" . | nindent 6 }}