@@ -3,17 +3,18 @@ set -euxo pipefail
3
3
4
4
TAG=" ${TAG:- " master" } "
5
5
IMAGE2TEST=" registry.gitlab.com/postgres-ai/database-lab/dblab-server:${TAG} "
6
- POSTGRES_VERSION=" ${POSTGRES_VERSION:- 13} "
7
6
8
- WALG_BACKUP_NAME=" ${WALG_BACKUP_NAME:- " LATEST" } "
9
- # AWS
7
+ # Environment variables for replacement rules
8
+ export POSTGRES_VERSION=" ${POSTGRES_VERSION:- 13} "
9
+ export WALG_BACKUP_NAME=" ${WALG_BACKUP_NAME:- " LATEST" } "
10
+ # # AWS
10
11
set +euxo pipefail # ---- do not display secrets
11
- AWS_ACCESS_KEY_ID=" ${AWS_ACCESS_KEY_ID:- " " } "
12
- AWS_SECRET_ACCESS_KEY=" ${AWS_SECRET_ACCESS_KEY:- " " } "
13
- WALG_S3_PREFIX=" ${WALG_S3_PREFIX:- " " } "
14
- # GS
15
- WALG_GS_PREFIX=" ${WALG_GS_PREFIX:- " " } "
16
- GOOGLE_APPLICATION_CREDENTIALS=" ${GOOGLE_APPLICATION_CREDENTIALS:- " " } "
12
+ export AWS_ACCESS_KEY_ID=" ${AWS_ACCESS_KEY_ID:- " " } "
13
+ export AWS_SECRET_ACCESS_KEY=" ${AWS_SECRET_ACCESS_KEY:- " " } "
14
+ export WALG_S3_PREFIX=" ${WALG_S3_PREFIX:- " " } "
15
+ # # GS
16
+ export WALG_GS_PREFIX=" ${WALG_GS_PREFIX:- " " } "
17
+ export GOOGLE_APPLICATION_CREDENTIALS=" ${GOOGLE_APPLICATION_CREDENTIALS:- " " } "
17
18
# check variables
18
19
[ -z " ${WALG_S3_PREFIX} " ] && [ -z " ${WALG_GS_PREFIX} " ] && echo " Variables not specified" && exit 1
19
20
set -euxo pipefail # ----
@@ -33,29 +34,37 @@ metaDir="$HOME/.dblab/engine/meta"
33
34
# Copy the contents of configuration example
34
35
mkdir -p " ${configDir} "
35
36
36
- curl https://gitlab.com/postgres-ai/database-lab/-/raw/" ${TAG } " /configs/config.example.physical_walg.yml \
37
+ curl https://gitlab.com/postgres-ai/database-lab/-/raw/" ${CI_COMMIT_BRANCH :- master } " /configs/config.example.physical_walg.yml \
37
38
--output " ${configDir} /server.yml"
38
39
39
40
# Edit the following options
40
- sed -ri " s/^(\s*)(debug:.*$)/\1debug: true/" " ${configDir} /server.yml"
41
- sed -ri ' /^ *telemetry:/,/^ *[^:]*:/s/enabled: true/enabled: false/' " ${configDir} /server.yml"
42
- # set WAL-G envs
43
- sed -ri " s/^(\s*)(backupName:.*$)/\1backupName: ${WALG_BACKUP_NAME} /" " ${configDir} /server.yml"
41
+ yq eval -i '
42
+ .global.debug = true |
43
+ .global.telemetry.enabled = false |
44
+ .localUI.enabled = false |
45
+ .databaseContainer.dockerImage = "postgresai/extended-postgres:" + strenv(POSTGRES_VERSION) |
46
+ .retrieval.spec.physicalRestore.options.walg.backupName = strenv(WALG_BACKUP_NAME) |
47
+ .retrieval.spec.physicalRestore.options.sync.configs.shared_buffers = "512MB" |
48
+ .retrieval.spec.physicalSnapshot.options.skipStartSnapshot = true
49
+ ' " ${configDir} /server.yml"
50
+
44
51
set +euxo pipefail # ---- do not display secrets
45
52
if [ -n " ${WALG_S3_PREFIX} " ] ; then
46
- sed -ri " s/^(\s*)(WALG_GS_PREFIX:.*$)/\1AWS_ACCESS_KEY_ID: \" ${AWS_ACCESS_KEY_ID} \" \n AWS_SECRET_ACCESS_KEY: \" ${AWS_SECRET_ACCESS_KEY} \" \n WALG_S3_PREFIX: \" ${WALG_S3_PREFIX} \" /" " ${configDir} /server.yml"
47
- sed -i " /GOOGLE_APPLICATION_CREDENTIALS/d" " ${configDir} /server.yml"
53
+ yq eval -i '
54
+ del(.retrieval.spec.physicalRestore.options.envs.WALG_GS_PREFIX) |
55
+ del(.retrieval.spec.physicalRestore.options.envs.GOOGLE_APPLICATION_CREDENTIALS) |
56
+ .retrieval.spec.physicalRestore.options.envs.AWS_ACCESS_KEY_ID = strenv(AWS_ACCESS_KEY_ID) |
57
+ .retrieval.spec.physicalRestore.options.envs.AWS_SECRET_ACCESS_KEY = strenv(AWS_SECRET_ACCESS_KEY) |
58
+ .retrieval.spec.physicalRestore.options.envs.WALG_S3_PREFIX = strenv(WALG_S3_PREFIX)
59
+ ' " ${configDir} /server.yml"
60
+
48
61
elif [ -n " ${WALG_GS_PREFIX} " ] ; then
49
- sed -ri " s/^(\s*)(WALG_GS_PREFIX:.*$)/\1WALG_GS_PREFIX: \" ${WALG_GS_PREFIX} \" /" " ${configDir} /server.yml"
50
- sed -ri " s/^(\s*)(GOOGLE_APPLICATION_CREDENTIALS:.*$)/\1GOOGLE_APPLICATION_CREDENTIALS: \" ${GOOGLE_APPLICATION_CREDENTIALS} \" /" " ${configDir} /server.yml"
62
+ yq eval -i '
63
+ .retrieval.spec.physicalRestore.options.envs.WALG_GS_PREFIX = strenv(WALG_GS_PREFIX) |
64
+ .retrieval.spec.physicalRestore.options.envs.GOOGLE_APPLICATION_CREDENTIALS = strenv(GOOGLE_APPLICATION_CREDENTIALS)
65
+ ' " ${configDir} /server.yml"
51
66
fi
52
67
set -euxo pipefail # ----
53
- # replace postgres version
54
- sed -ri " s/:13/:${POSTGRES_VERSION} /g" " ${configDir} /server.yml"
55
- # reduce shared_buffers (optional)
56
- sed -ri " s/^(\s*)(shared_buffers:.*$)/\1shared_buffers: 512MB/" " ${configDir} /server.yml"
57
- # skip snapshotting on start to replace some Postgres parameters after PGDATA receiving
58
- sed -ri " s/^(\s*)(skipStartSnapshot:.*$)/\1skipStartSnapshot: true/" " ${configDir} /server.yml"
59
68
60
69
# # Launch Database Lab server
61
70
sudo docker run \
0 commit comments