133 lines
4.1 KiB
YAML
133 lines
4.1 KiB
YAML
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: postgres-schema-sql
|
|
namespace: {{ .Values.namespace }}
|
|
data:
|
|
{{- range $path, $_ := .Files.Glob "sql/postgres/schema/*.sql" }}
|
|
{{ base $path }}: |
|
|
{{ $.Files.Get $path | indent 4 }}
|
|
{{- end }}
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: postgres-seed-sql
|
|
namespace: {{ .Values.namespace }}
|
|
data:
|
|
{{- range $path, $_ := .Files.Glob "sql/postgres/seed/*.sql" }}
|
|
{{ base $path }}: |
|
|
{{ $.Files.Get $path | indent 4 }}
|
|
{{- end }}
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: mysql-schema-sql
|
|
namespace: {{ .Values.namespace }}
|
|
data:
|
|
{{- range $path, $_ := .Files.Glob "sql/mysql-bitrix/schema/*.sql" }}
|
|
{{ base $path }}: |
|
|
{{ $.Files.Get $path | indent 4 }}
|
|
{{- end }}
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: mysql-seed-sql
|
|
namespace: {{ .Values.namespace }}
|
|
data:
|
|
{{- range $path, $_ := .Files.Glob "sql/mysql-bitrix/seed/*.sql" }}
|
|
{{ base $path }}: |
|
|
{{ $.Files.Get $path | indent 4 }}
|
|
{{- end }}
|
|
---
|
|
apiVersion: batch/v1
|
|
kind: Job
|
|
metadata:
|
|
name: db-init
|
|
namespace: {{ .Values.namespace }}
|
|
spec:
|
|
backoffLimit: 2
|
|
template:
|
|
spec:
|
|
restartPolicy: OnFailure
|
|
initContainers:
|
|
- name: wait-pg
|
|
image: postgres:16-alpine
|
|
command:
|
|
- sh
|
|
- -c
|
|
- |
|
|
until pg_isready -h {{ .Values.postgres.host }} -p 5432 -U {{ .Values.postgres.user }}; do sleep 3; done
|
|
- name: wait-mysql
|
|
image: mysql:8.0
|
|
env:
|
|
- name: MYSQL_PWD
|
|
value: {{ .Values.mysql.password | quote }}
|
|
command:
|
|
- sh
|
|
- -c
|
|
- |
|
|
until mysqladmin ping -h {{ .Values.mysql.host }} -u{{ .Values.mysql.user }} --silent; do sleep 3; done
|
|
containers:
|
|
- name: init
|
|
image: postgres:16-alpine
|
|
env:
|
|
- name: PGPASSWORD
|
|
value: {{ .Values.postgres.password | quote }}
|
|
- name: MYSQL_PWD
|
|
value: {{ .Values.mysql.password | quote }}
|
|
command:
|
|
- sh
|
|
- -c
|
|
- |
|
|
set -e
|
|
echo "=== Phase 1: schema ==="
|
|
for f in $(ls /schema/postgres/*.sql 2>/dev/null | sort); do
|
|
[ -s "$f" ] || continue
|
|
echo "PG schema: $(basename $f)"
|
|
psql -h {{ .Values.postgres.host }} -U {{ .Values.postgres.user }} -d postgres -v ON_ERROR_STOP=1 -f "$f"
|
|
done
|
|
apk add --no-cache mysql-client >/dev/null
|
|
for f in $(ls /schema/mysql/*.sql 2>/dev/null | sort); do
|
|
[ -s "$f" ] || continue
|
|
echo "MySQL schema: $(basename $f)"
|
|
mysql -h {{ .Values.mysql.host }} -u{{ .Values.mysql.user }} {{ .Values.mysql.database }} < "$f"
|
|
done
|
|
echo "=== Phase 2: seed ==="
|
|
for f in $(ls /seed/postgres/*.sql 2>/dev/null | sort); do
|
|
[ -s "$f" ] || continue
|
|
echo "PG seed: $(basename $f)"
|
|
psql -h {{ .Values.postgres.host }} -U {{ .Values.postgres.user }} -d postgres -v ON_ERROR_STOP=1 -f "$f"
|
|
done
|
|
for f in $(ls /seed/mysql/*.sql 2>/dev/null | sort); do
|
|
[ -s "$f" ] || continue
|
|
echo "MySQL seed: $(basename $f)"
|
|
mysql -h {{ .Values.mysql.host }} -u{{ .Values.mysql.user }} {{ .Values.mysql.database }} < "$f"
|
|
done
|
|
echo "DB init complete"
|
|
volumeMounts:
|
|
- name: pg-schema
|
|
mountPath: /schema/postgres
|
|
- name: mysql-schema
|
|
mountPath: /schema/mysql
|
|
- name: pg-seed
|
|
mountPath: /seed/postgres
|
|
- name: mysql-seed
|
|
mountPath: /seed/mysql
|
|
volumes:
|
|
- name: pg-schema
|
|
configMap:
|
|
name: postgres-schema-sql
|
|
- name: mysql-schema
|
|
configMap:
|
|
name: mysql-schema-sql
|
|
- name: pg-seed
|
|
configMap:
|
|
name: postgres-seed-sql
|
|
- name: mysql-seed
|
|
configMap:
|
|
name: mysql-seed-sql
|
|
|