blob: 01151bb4a9e5d130afd48d6a709ec3aa74d2bfb1 [file] [log] [blame]
Abdelmuhaimen Seaudi988aeed2021-09-23 21:11:44 +00001{{/*
2# Copyright © 2021 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
17apiVersion: batch/v1
18kind: Job
19metadata:
20 name: {{ include "common.fullname" . }}-config-job
21 namespace: {{ include "common.namespace" . }}
22 labels:
23 app: {{ include "common.name" . }}
24 chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
25 release: {{ include "common.release" . }}
26 heritage: {{ .Release.Service }}
27spec:
28 backoffLimit: 20
29 template:
30 metadata:
31 labels:
32 app: {{ include "common.name" . }}
33 release: {{ include "common.release" . }}
34 name: {{ include "common.name" . }}
35 spec:
36 initContainers:
37 - name: {{ include "common.name" . }}-readiness
38 command:
39 - /app/ready.py
40 args:
41 - --container-name
42 - {{ .Values.global.postgres.container.name }}
43 env:
44 - name: NAMESPACE
45 valueFrom:
46 fieldRef:
47 apiVersion: v1
48 fieldPath: metadata.namespace
49 image: {{ include "repositoryGenerator.image.readiness" . }}
50 imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
51 containers:
52 - command:
53 - sh
54 args:
55 - -c
56 - |
57 function prepare_password {
58 echo -n $1 | sed -e "s/'/''/g"
59 }
60 export PG_PASSWORD=`prepare_password $PG_PASSWORD_INPUT`;
61 export PG_ROOT_PASSWORD=`prepare_password $PG_ROOT_PASSWORD_INPUT`;
62 cd /config-input && for PFILE in `ls -1 .`; do envsubst <${PFILE} >/config/${PFILE}; done;
63 psql "postgresql://postgres:$PG_ROOT_PASSWORD@$PG_HOST" < /config/setup.sql
64 env:
65 - name: PG_HOST
66 value: "{{ .Values.global.postgres.service.name2 }}"
67 - name: PG_PRIMARY_USER
68 value: primaryuser
69 - name: MODE
70 value: postgres
71 - name: PG_PRIMARY_PASSWORD_INPUT
72 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" (include "common.postgres.secret.primaryPasswordUID" .) "key" "password") | indent 10 }}
73 - name: PG_USER
74 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" (include "common.postgres.secret.userCredentialsUID" .) "key" "login") | indent 10 }}
75 - name: PG_PASSWORD_INPUT
76 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" (include "common.postgres.secret.userCredentialsUID" .) "key" "password") | indent 10 }}
77 - name: PG_DATABASE
78 value: "{{ .Values.config.pgDatabase }}"
79 - name: PG_ROOT_PASSWORD_INPUT
80 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" (include "common.postgres.secret.rootPassUID" .) "key" "password") | indent 10 }}
81 volumeMounts:
82 - mountPath: /config-input/setup.sql
83 name: config
84 subPath: setup.sql
85 - mountPath: /config
86 name: pgconf
87 image: {{ include "repositoryGenerator.image.postgres" . }}
88 imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
89 name: {{ include "common.name" . }}-update-config
90 volumeMounts:
91 - mountPath: /etc/localtime
92 name: localtime
93 readOnly: true
94 - mountPath: /config-input/setup.sql
95 name: config
96 subPath: setup.sql
97 - mountPath: /config
98 name: pgconf
99 resources:
100{{ include "common.resources" . | indent 12 }}
101 {{- if .Values.nodeSelector }}
102 nodeSelector:
103{{ toYaml .Values.nodeSelector | indent 10 }}
104 {{- end -}}
105 {{- if .Values.affinity }}
106 affinity:
107{{ toYaml .Values.affinity | indent 10 }}
108 {{- end }}
109 volumes:
110 - name: localtime
111 hostPath:
112 path: /etc/localtime
113 - name: config
114 configMap:
115 name: {{ include "common.fullname" . }}
116 - name: pgconf
117 emptyDir:
118 medium: Memory
119 restartPolicy: Never
120 imagePullSecrets:
121 - name: "{{ include "common.namespace" . }}-docker-registry-key"