@@ -3,17 +3,18 @@ set -euxo pipefail
33
44TAG=" ${TAG:- " master" } "
55IMAGE2TEST=" registry.gitlab.com/postgres-ai/database-lab/dblab-server:${TAG} "
6- POSTGRES_VERSION=" ${POSTGRES_VERSION:- 13} "
76
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
1011set +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:- " " } "
1718# check variables
1819[ -z " ${WALG_S3_PREFIX} " ] && [ -z " ${WALG_GS_PREFIX} " ] && echo " Variables not specified" && exit 1
1920set -euxo pipefail # ----
@@ -33,29 +34,37 @@ metaDir="$HOME/.dblab/engine/meta"
3334# Copy the contents of configuration example
3435mkdir -p " ${configDir} "
3536
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 \
3738 --output " ${configDir} /server.yml"
3839
3940# 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+
4451set +euxo pipefail # ---- do not display secrets
4552if [ -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+
4861elif [ -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"
5166fi
5267set -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"
5968
6069# # Launch Database Lab server
6170sudo docker run \
0 commit comments