2 # Copyright © 2021 Orange
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
8 # http://www.apache.org/licenses/LICENSE-2.0
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.
20 name: {{ include "common.fullname" . }}-config-job
21 namespace: {{ include "common.namespace" . }}
23 app: {{ include "common.name" . }}
24 chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
25 release: {{ include "common.release" . }}
26 heritage: {{ .Release.Service }}
32 # Workarround to exclude K8S API from istio communication
33 # as init-container (readinessCheck) does not work with the
34 # Istio CNI plugin, see:
35 # (https://istio.io/latest/docs/setup/additional-setup/cni/#compatibility-with-application-init-containers)
36 traffic.sidecar.istio.io/excludeOutboundPorts: "443"
38 app: {{ include "common.name" . }}
39 release: {{ include "common.release" . }}
40 name: {{ include "common.name" . }}
42 initContainers: {{ include "common.readinessCheck.waitFor" . | nindent 6 }}
49 function prepare_password {
50 echo -n $1 | sed -e "s/'/''/g"
52 export PG_PASSWORD=`prepare_password $PG_PASSWORD_INPUT`;
53 export PG_ROOT_PASSWORD=`prepare_password $PG_ROOT_PASSWORD_INPUT`;
54 {{- if include "common.onServiceMesh" . }}
55 echo "waiting 15s for istio side cars to be up"; sleep 15s;{{- end }}
56 cd /config-input && for PFILE in `ls -1 .`; do envsubst <${PFILE} >/config/${PFILE}; done;
57 psql "postgresql://postgres:$PG_ROOT_PASSWORD@$PG_HOST" < /config/setup.sql
60 value: "{{ .Values.global.postgres.service.name2 }}"
61 - name: PG_PRIMARY_USER
65 - name: PG_PRIMARY_PASSWORD_INPUT
66 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" (include "common.postgres.secret.primaryPasswordUID" .) "key" "password") | indent 10 }}
68 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" (include "common.postgres.secret.userCredentialsUID" .) "key" "login") | indent 10 }}
69 - name: PG_PASSWORD_INPUT
70 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" (include "common.postgres.secret.userCredentialsUID" .) "key" "password") | indent 10 }}
72 value: "{{ .Values.config.pgDatabase }}"
73 - name: PG_ROOT_PASSWORD_INPUT
74 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" (include "common.postgres.secret.rootPassUID" .) "key" "password") | indent 10 }}
75 image: {{ include "repositoryGenerator.image.postgres" . }}
76 imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
77 name: {{ include "common.name" . }}-update-config
79 - mountPath: /config-input/setup.sql
84 resources: {{ include "common.resources" . | nindent 10 }}
85 {{ include "common.waitForJobContainer" . | indent 6 | trim }}
86 {{- if .Values.nodeSelector }}
88 {{ toYaml .Values.nodeSelector | indent 10 }}
90 {{- if .Values.affinity }}
92 {{ toYaml .Values.affinity | indent 10 }}
94 serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
98 name: {{ include "common.fullname" . }}
103 {{- include "common.imagePullSecrets" . | nindent 6 }}