blob: d9c6009c8a962dbd77f2a224e79d6e2193c25773 [file] [log] [blame]
Jakub Latusek44f0fdd2020-10-21 13:36:29 +02001{{/*
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +00002# Copyright © 2017 Amdocs, Bell Canada
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.
Jakub Latusek44f0fdd2020-10-21 13:36:29 +020015*/}}
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +000016{{- if .Values.global.migration.enabled }}
17apiVersion: batch/v1
18kind: Job
19metadata:
20 name: {{ include "common.fullname" . }}-backup
21 namespace: {{ include "common.namespace" . }}
22 labels:
23 app: {{ include "common.name" . }}
24 chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
Krzysztof Opasiak137d7cc2020-01-24 23:49:11 +010025 release: {{ include "common.release" . }}
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +000026 heritage: {{ .Release.Service }}
27 annotations:
28 "helm.sh/hook": pre-upgrade,pre-install
29 "helm.sh/hook-weight": "1"
30 "helm.sh/hook-delete-policy": before-hook-creation
31spec:
32 backoffLimit: 20
33 template:
34 metadata:
35 labels:
36 app: {{ include "common.name" . }}
Krzysztof Opasiak137d7cc2020-01-24 23:49:11 +010037 release: {{ include "common.release" . }}
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +000038 name: {{ include "common.name" . }}
39 spec:
40 containers:
41 - name: {{ include "common.fullname" . }}
Sylvain Desbureaux0d2cf1a2022-01-05 16:08:27 +010042 image: {{ include "repositoryGenerator.image.mariadb" . }}
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +000043 imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
44 env:
45 - name: DB_HOST
46 value: {{ .Values.global.migration.dbHost }}
47 - name: DB_USER
Krzysztof Opasiak587b6e62020-03-24 03:26:03 +010048 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-backup-creds" "key" "login") | indent 10 }}
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +000049 - name: DB_PORT
50 value: "{{ .Values.global.migration.dbPort }}"
51 - name: DB_PASS
Krzysztof Opasiak587b6e62020-03-24 03:26:03 +010052 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-backup-creds" "key" "password") | indent 10 }}
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +000053 command:
54 - /bin/bash
55 - -c
Andreas Geissler17be9622022-04-29 13:33:02 +020056 - |
57 {{- if include "common.onServiceMesh" . }}
58 echo "waiting 15s for istio side cars to be up"; sleep 15s;{{- end }}
59 mysqldump -vv --user=${DB_USER} --password=${DB_PASS} --host=${DB_HOST} --port=${DB_PORT} --databases --single-transaction --quick --lock-tables=false catalogdb requestdb nfvo > /var/data/mariadb/backup-`date +%s`.sql
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +000060 volumeMounts:
61 - mountPath: /etc/localtime
62 name: localtime
63 readOnly: true
64 - name: backup-storage
65 mountPath: /var/data/mariadb
Andreas Geissler17be9622022-04-29 13:33:02 +020066 {{ include "common.waitForJobContainer" . | indent 6 | trim }}
farida azmy87f46222021-04-06 15:25:15 +020067 serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +000068 volumes:
69 - name: localtime
70 hostPath:
71 path: /etc/localtime
72 - name: backup-storage
73 persistentVolumeClaim:
74 claimName: {{ include "common.fullname" . }}-migration
75 imagePullSecrets:
76 - name: "{{ include "common.namespace" . }}-docker-registry-key"
77 restartPolicy: Never
78---
79{{- end }}
80apiVersion: batch/v1
81kind: Job
82metadata:
83 name: {{ include "common.fullname" . }}-config-job
84 namespace: {{ include "common.namespace" . }}
85 labels:
86 app: {{ include "common.name" . }}
87 chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
Krzysztof Opasiak137d7cc2020-01-24 23:49:11 +010088 release: {{ include "common.release" . }}
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +000089 heritage: {{ .Release.Service }}
90 annotations:
91 "helm.sh/hook": post-upgrade,post-rollback,post-install
92 "helm.sh/hook-weight": "0"
93 "helm.sh/hook-delete-policy": before-hook-creation
94spec:
95 backoffLimit: 20
96 template:
97 metadata:
98 labels:
99 app: {{ include "common.name" . }}-job
Krzysztof Opasiak137d7cc2020-01-24 23:49:11 +0100100 release: {{ include "common.release" . }}
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +0000101 name: {{ include "common.name" . }}
102 spec:
Sylvain Desbureauxd055a172020-10-30 14:32:03 +0100103 initContainers: {{ include "common.readinessCheck.waitFor" . | nindent 6 }}
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +0000104 containers:
Sylvain Desbureauxd055a172020-10-30 14:32:03 +0100105 - name: {{ include "common.name" . }}-config
Sylvain Desbureaux747982c2020-11-19 17:40:05 +0100106 image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +0000107 imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
108 command:
109 - /bin/bash
110 - -c
111 - >
Andreas Geissler17be9622022-04-29 13:33:02 +0200112 {{- if include "common.onServiceMesh" . }}
113 echo "waiting 15s for istio side cars to be up"; sleep 15s;{{- end }}
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +0000114 mysql() { /usr/bin/mysql -h ${DB_HOST} -P ${DB_PORT} "$@"; };
115 export -f mysql;
116 mysql --user=root --password=${MYSQL_ROOT_PASSWORD} requestdb -e exit > /dev/null 2>&1 {{ if not .Values.global.migration.enabled }} && echo "Database already initialized!!!" && exit 0 {{ end }};
117 for f in /docker-entrypoint-initdb.d/*; do case "$f" in *.sh) echo "$0: running $f"; . "$f" ;; *.sql) echo "$0: running $f"; "${mysql[@]}" < "$f"; echo ;; *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | "${mysql[@]}"; echo ;; *) echo "$0: ignoring $f" ;; esac; echo; done;
118 {{- if .Values.global.migration.enabled }}
119 mysql -vv --user=root --password=${MYSQL_ROOT_PASSWORD} < `ls -tr /var/data/mariadb/* | tail -1`;
120 {{- end }}
121 env:
122 - name: DB_HOST
krishnaa9692b606b2020-10-30 11:29:21 +0530123 value: {{ include "common.mariadbService" . }}
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +0000124 - name: DB_PORT
krishnaa9692b606b2020-10-30 11:29:21 +0530125 value: {{ include "common.mariadbPort" . | quote }}
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +0000126 - name: MYSQL_ROOT_PASSWORD
Krzysztof Opasiak587b6e62020-03-24 03:26:03 +0100127 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-root-pass" "key" "password") | indent 10 }}
Krzysztof Opasiakf68b7282020-03-25 23:22:46 +0100128 - name: DB_USER
129 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-user-creds" "key" "login") | indent 10 }}
130 - name: DB_PASSWORD
131 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-user-creds" "key" "password") | indent 10 }}
132 - name: DB_ADMIN
133 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-admin-creds" "key" "login") | indent 10 }}
134 - name: DB_ADMIN_PASSWORD
135 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-admin-creds" "key" "password") | indent 10 }}
136 - name: CAMUNDA_DB_USER
137 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "camunda-db-creds" "key" "login") | indent 10 }}
138 - name: CAMUNDA_DB_PASSWORD
139 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "camunda-db-creds" "key" "password") | indent 10 }}
140 - name: REQUEST_DB_USER
141 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "request-db-creds" "key" "login") | indent 10 }}
142 - name: REQUEST_DB_PASSWORD
143 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "request-db-creds" "key" "password") | indent 10 }}
144 - name: CATALOG_DB_USER
145 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "catalog-db-creds" "key" "login") | indent 10 }}
146 - name: CATALOG_DB_PASSWORD
147 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "catalog-db-creds" "key" "password") | indent 10 }}
rope2524df55192020-08-24 13:55:58 +0100148 - name: NFVO_DB_USER
149 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "nfvo-db-creds" "key" "login") | indent 10 }}
150 - name: NFVO_DB_PASSWORD
151 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "nfvo-db-creds" "key" "password") | indent 10 }}
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +0000152 volumeMounts:
153 - mountPath: /etc/localtime
154 name: localtime
155 readOnly: true
Tomáš Levora2a63ef32019-09-20 08:16:54 +0200156 - name: docker-entrypoint-initdb-d-sh
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +0000157 mountPath: "/docker-entrypoint-initdb.d"
Tomáš Levora2a63ef32019-09-20 08:16:54 +0200158 - name: docker-entrypoint-initdb-d-sql
159 mountPath: "/docker-entrypoint-initdb.d/db-sql-scripts"
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +0000160 {{- if .Values.global.migration.enabled }}
161 - name: backup-storage
162 mountPath: /var/data/mariadb
163 {{- end }}
164 resources:
165{{ include "common.resources" . | indent 12 }}
Andreas Geissler17be9622022-04-29 13:33:02 +0200166 {{ include "common.waitForJobContainer" . | indent 6 | trim }}
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +0000167 {{- if .Values.nodeSelector }}
168 nodeSelector:
169{{ toYaml .Values.nodeSelector | indent 10 }}
170 {{- end -}}
171 {{- if .Values.affinity }}
172 affinity:
173{{ toYaml .Values.affinity | indent 10 }}
174 {{- end }}
175 volumes:
176 - name: localtime
177 hostPath:
178 path: /etc/localtime
Tomáš Levora2a63ef32019-09-20 08:16:54 +0200179 - name: docker-entrypoint-initdb-d-sh
180 configMap:
181 name: {{ include "common.fullname" . }}-mariadb-sh
182 - name: docker-entrypoint-initdb-d-sql
183 configMap:
184 name: {{ include "common.fullname" . }}-mariadb-sql
Mahendra Raghuwanshi72b69c12019-04-04 10:43:25 +0000185 {{- if .Values.global.migration.enabled }}
186 - name: backup-storage
187 persistentVolumeClaim:
188 claimName: {{ include "common.fullname" . }}-migration
189 {{- end }}
190 restartPolicy: Never
191 imagePullSecrets:
192 - name: "{{ include "common.namespace" . }}-docker-registry-key"