Merge "[DMAAP] DMaaP ServiceMesh compatibility"
[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           {{- if (include "common.needTLS" .) }}
75            until nc -w10 -z -v aai.{{.Release.Namespace}} 8443; do echo "Retrying to reach aai on port 8443"; done;
76            bash -x /opt/app/aai-traversal/docker-entrypoint.sh install/updateQueryData.sh
77           {{- else }}
78            until nc -w10 -z -v aai.{{.Release.Namespace}} 80; do echo "Retrying to reach aai on port 80"; done;
79            bash -x /opt/app/aai-traversal/docker-entrypoint.sh install/updateQueryData.sh ;
80            {{ include "common.serviceMesh.killSidecar" . | indent 11 | trim }}
81           {{- end }}
82         env:
83         - name: LOCAL_USER_ID
84           value: {{ .Values.global.config.userId | quote }}
85         - name: LOCAL_GROUP_ID
86           value: {{ .Values.global.config.groupId | quote }}
87         resources:
88 {{ include "common.resources" . }}
89         volumeMounts:
90         - mountPath: /etc/localtime
91           name: localtime
92           readOnly: true
93         - mountPath: /opt/app/aai-traversal/resources/etc/appprops/janusgraph-realtime.properties
94           name: {{ include "common.fullname" . }}-config
95           subPath: janusgraph-realtime.properties
96         - mountPath: /opt/app/aai-traversal/resources/etc/appprops/janusgraph-cached.properties
97           name: {{ include "common.fullname" . }}-config
98           subPath: janusgraph-cached.properties
99         - mountPath: /opt/app/aai-traversal/resources/etc/appprops/aaiconfig.properties
100           name: {{ include "common.fullname" . }}-config
101           subPath: aaiconfig.properties
102         - mountPath: /opt/aai/logroot/AAI-GQ/
103           name: {{ include "common.fullname" . }}-logs
104         - mountPath: /opt/aai/logroot/AAI-GQ/misc
105           name: {{ include "common.fullname" . }}-logs-misc
106         - mountPath: /opt/app/aai-traversal/resources/logback.xml
107           name: {{ include "common.fullname" . }}-config
108           subPath: logback.xml
109         - mountPath: /opt/app/aai-traversal/resources/localhost-access-logback.xml
110           name: {{ include "common.fullname" . }}-config
111           subPath: localhost-access-logback.xml
112         - mountPath: /opt/app/aai-traversal/resources/application.properties
113           name: {{ include "common.fullname" . }}-config
114           subPath: application.properties
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: {{ include "common.fullname" . }}-logs
122         emptyDir: {}
123       - name: {{ include "common.fullname" . }}-logs-misc
124         emptyDir: {}
125       {{ include "common.log.volumes" (dict "dot" . "configMapNamePrefix" (tpl .Values.logConfigMapNamePrefix .)) | nindent 6 }}
126       - name: {{ include "common.fullname" . }}-config
127         configMap:
128           name: {{ include "common.fullname" . }}
129       restartPolicy: OnFailure
130       imagePullSecrets:
131       - name: "{{ include "common.namespace" . }}-docker-registry-key"
132 {{ end }}