Merge "[UUI] Service Mesh Compliance for UUI"
[oom.git] / kubernetes / common / common / templates / _serviceMesh.tpl
1 {{/*
2 # Copyright © 2020 Amdocs, Bell Canada, Orange
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #       http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 */}}
16
17 {{/*
18   Calculate if we are on service mesh.
19 */}}
20 {{- define "common.onServiceMesh" -}}
21 {{-   if .Values.global.serviceMesh -}}
22 {{-     if (default false .Values.global.serviceMesh.enabled) -}}
23 true
24 {{-     end -}}
25 {{-   end -}}
26 {{- end -}}
27
28 {{/*
29   Kills the sidecar proxy associated with a pod.
30 */}}
31 {{- define "common.serviceMesh.killSidecar" -}}
32 {{-   if (include "common.onServiceMesh" .) }}
33 RCODE="$?";
34 echo "*** script finished with exit code $RCODE" ;
35 echo "*** killing service mesh sidecar" ;
36 curl -sf -X POST http://127.0.0.1:15020/quitquitquit ;
37 echo "" ;
38 echo "*** exiting with script exit code" ;
39 exit "$RCODE"
40 {{-   end }}
41 {{- end -}}
42
43 {{/*
44   Wait for job container.
45 */}}
46 {{- define "common.waitForJobContainer" -}}
47 {{-   $dot := default . .dot -}}
48 {{-   $wait_for_job_container := default $dot.Values.wait_for_job_container .wait_for_job_container -}}
49 {{- if (include "common.onServiceMesh" .) }}
50 - name: {{ include "common.name" $dot }}{{ ternary "" (printf "-%s" $wait_for_job_container.name) (empty $wait_for_job_container.name) }}-service-mesh-wait-for-job-container
51   image: {{ include "repositoryGenerator.image.quitQuit" $dot }}
52   imagePullPolicy: {{ $dot.Values.global.pullPolicy | default $dot.Values.pullPolicy }}
53   command:
54   - /bin/sh
55   - "-c"
56   args:
57   - echo "waiting 10s for istio side cars to be up"; sleep 10s;
58     {{- range $container := $wait_for_job_container.containers }}
59     /app/ready.py --service-mesh-check {{ tpl $container $dot }} -t 45;
60     {{- end }}
61   env:
62   - name: NAMESPACE
63     valueFrom:
64       fieldRef:
65         apiVersion: v1
66         fieldPath: metadata.namespace
67 {{- end }}
68 {{- end }}