-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjob-template.yml
More file actions
85 lines (79 loc) · 3.01 KB
/
Copy pathjob-template.yml
File metadata and controls
85 lines (79 loc) · 3.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
apiVersion: batch/v1
kind: Job
metadata:
name: JOB_NAME_PLACEHOLDER
spec:
ttlSecondsAfterFinished: 60
template:
spec:
restartPolicy: Never
containers:
- name: prepare-schema-preview
image: postgres:18
command: [ "bash", "-c" ]
args:
- |
set -e
echo "### START $(date --iso-8601=seconds) ###"
if psql -t -A -c "SELECT 1 FROM information_schema.schemata WHERE schema_name = 'preview_$PREVIEW_NUMBER'" | grep -q 1; then
echo "Schema preview_$PREVIEW_NUMBER already exists. Skipping setup."
echo "Script finished successfully!"
echo "### END $(date --iso-8601=seconds) ###"
exit 0
fi
echo "Dumping schema $PGSCHEMA..."
pg_dump --schema=main \
--no-comments \
--no-owner \
--no-acl \
--quote-all-identifiers \
--format=plain \
--file=preview-dump.sql
echo "Modifying dump file..."
sed -i preview-dump.sql \
-e "s/\"main\"/\"preview_$PREVIEW_NUMBER\"/g" \
-e 's/SET /--SET /g' \
-e 's/SELECT pg_catalog/--SELECT pg_catalog/g' \
-e 's/--SELECT pg_catalog.setval/SELECT pg_catalog.setval/g'
echo "Creating schema preview_$PREVIEW_NUMBER with modified dump file..."
psql --echo-queries \
--echo-errors \
--single-transaction \
--set=ON_ERROR_STOP=1 \
--set=SESSION_REPLICATION_ROLE=replica \
--file=preview-dump.sql
echo "Script finished successfully!"
echo "### END $(date --iso-8601=seconds) ###"
env:
- name: PGHOST
valueFrom:
configMapKeyRef:
name: CONFIGMAP_NAME_PLACEHOLDER
key: DB_HOST
- name: PGPORT
valueFrom:
configMapKeyRef:
name: CONFIGMAP_NAME_PLACEHOLDER
key: DB_PORT
- name: PGDATABASE
valueFrom:
configMapKeyRef:
name: CONFIGMAP_NAME_PLACEHOLDER
key: DB_NAME
- name: PGSCHEMA
valueFrom:
configMapKeyRef:
name: CONFIGMAP_NAME_PLACEHOLDER
key: DB_SCHEMA
- name: PGUSER
valueFrom:
configMapKeyRef:
name: CONFIGMAP_NAME_PLACEHOLDER
key: DB_USERNAME
- name: PGPASSWORD
valueFrom:
secretKeyRef:
name: SECRET_NAME_PLACEHOLDER
key: DB_PASSWORD
- name: PREVIEW_NUMBER
value: "PREVIEW_NUMBER_PLACEHOLDER"