[AAI] Make AAI helm3 compatible
[oom.git] / kubernetes / aai / components / aai-traversal / templates / job.yaml
1 {{/*
2 # Copyright (c) 2017-2018 AT&T
3 # Modifications Copyright (c) 2018 Amdocs, Bell Canada
4 # Modifications Copyright (c) 2020 Nokia, Orange
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 {{ if .Values.global.jobs.updateQueryData.enabled }}
20
21 apiVersion: batch/v1
22 kind: Job
23 metadata:
24   name: {{ include "common.fullname" . }}-update-query-data
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 }}
31 {{ if .Values.global.jobs.migration.enabled }}
32   annotations:
33     "helm.sh/hook": post-upgrade,post-rollback,post-install
34     "helm.sh/hook-weight": "2"
35     "helm.sh/hook-delete-policy": before-hook-creation
36 {{ end }}
37 spec:
38   template:
39     metadata:
40       labels:
41         app: {{ include "common.name" . }}-job
42         release: {{ include "common.release" . }}
43       name: {{ include "common.name" . }}
44     spec:
45       initContainers:
46       - command:
47         - /app/ready.py
48         args:
49         - --container-name
50         - aai
51         {{ if eq .Values.global.aafEnabled true }}
52         - --container-name
53         - aaf-locate
54         {{ end }}
55         env:
56         - name: NAMESPACE
57           valueFrom:
58             fieldRef:
59               apiVersion: v1
60               fieldPath: metadata.namespace
61         image: {{ include "repositoryGenerator.image.readiness" . }}
62         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
63         name: {{ include "common.name" . }}-readiness
64       containers:
65       - name: {{ include "common.name" . }}-job
66         image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
67         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
68         command:
69         - bash
70         - "-c"
71         - |
72           set -x
73           if [ ! -d /opt/aai/logroot/AAI-GQ/misc ]; then mkdir -p /opt/aai/logroot/AAI-GQ/misc; fi
74           until nc -w10 -z -v aai.{{.Release.Namespace}} 8443; do echo "Retrying to reach aai on port 8443"; done;
75           bash -x /opt/app/aai-traversal/docker-entrypoint.sh install/updateQueryData.sh
76         env:
77         - name: LOCAL_USER_ID
78           value: {{ .Values.global.config.userId | quote }}
79         - name: LOCAL_GROUP_ID
80           value: {{ .Values.global.config.groupId | quote }}
81         resources:
82 {{ include "common.resources" . }}
83         volumeMounts:
84         - mountPath: /etc/localtime
85           name: localtime
86           readOnly: true
87         - mountPath: /opt/app/aai-traversal/resources/etc/appprops/janusgraph-realtime.properties
88           name: {{ include "common.fullname" . }}-config
89           subPath: janusgraph-realtime.properties
90         - mountPath: /opt/app/aai-traversal/resources/etc/appprops/janusgraph-cached.properties
91           name: {{ include "common.fullname" . }}-config
92           subPath: janusgraph-cached.properties
93         - mountPath: /opt/app/aai-traversal/resources/etc/appprops/aaiconfig.properties
94           name: {{ include "common.fullname" . }}-config
95           subPath: aaiconfig.properties
96         - mountPath: /opt/aai/logroot/AAI-GQ/
97           name: {{ include "common.fullname" . }}-logs
98         - mountPath: /opt/aai/logroot/AAI-GQ/misc
99           name: {{ include "common.fullname" . }}-logs-misc
100         - mountPath: /opt/app/aai-traversal/resources/logback.xml
101           name: {{ include "common.fullname" . }}-config
102           subPath: logback.xml
103         - mountPath: /opt/app/aai-traversal/resources/localhost-access-logback.xml
104           name: {{ include "common.fullname" . }}-config
105           subPath: localhost-access-logback.xml
106         - mountPath: /opt/app/aai-traversal/resources/application.properties
107           name: {{ include "common.fullname" . }}-config
108           subPath: application.properties
109           {{ $global := . }}
110           {{ range $job := .Values.global.config.auth.files }}
111         - mountPath: /opt/app/aai-traversal/resources/etc/auth/{{ . }}
112           name: {{ include "common.fullname" $global }}-auth-truststore-sec
113           subPath: {{ . }}
114           {{ end }}
115         # disable liveness probe when breakpoints set in debugger
116         # so K8s doesn't restart unresponsive container
117       volumes:
118       - name: localtime
119         hostPath:
120           path: /etc/localtime
121       - name: filebeat-conf
122         configMap:
123           name: aai-filebeat
124       - name: {{ include "common.fullname" . }}-logs
125         emptyDir: {}
126       - name: {{ include "common.fullname" . }}-logs-misc
127         emptyDir: {}
128       - name: {{ include "common.fullname" . }}-filebeat
129         emptyDir: {}
130       - name: {{ include "common.fullname" . }}-config
131         configMap:
132           name: {{ include "common.fullname" . }}-configmap
133       - name: {{ include "common.fullname" . }}-auth-truststore-sec
134         secret:
135           secretName: aai-common-truststore
136           items:
137             {{ range $job := .Values.global.config.auth.files }}
138             - key: {{ . }}
139               path: {{ . }}
140             {{ end }}
141       restartPolicy: OnFailure
142       imagePullSecrets:
143       - name: "{{ include "common.namespace" . }}-docker-registry-key"
144 {{ end }}