mirror of
https://github.com/zalando/postgres-operator.git
synced 2026-09-30 08:17:08 +02:00
Add ability to upload logical backup to gcs (#1173)
Support logical backup provider/storage S3 and GCS equivalent
This commit is contained in:
@@ -13,7 +13,10 @@ RUN apt-get update \
|
||||
curl \
|
||||
jq \
|
||||
gnupg \
|
||||
gcc \
|
||||
libffi-dev \
|
||||
&& pip3 install --no-cache-dir awscli --upgrade \
|
||||
&& pip3 install --no-cache-dir gsutil --upgrade \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list \
|
||||
&& cat /etc/apt/sources.list.d/pgdg.list \
|
||||
&& curl --silent https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
|
||||
|
||||
@@ -46,6 +46,23 @@ function aws_upload {
|
||||
aws s3 cp - "$PATH_TO_BACKUP" "${args[@]//\'/}"
|
||||
}
|
||||
|
||||
function gcs_upload {
|
||||
PATH_TO_BACKUP=gs://$LOGICAL_BACKUP_S3_BUCKET"/spilo/"$SCOPE$LOGICAL_BACKUP_S3_BUCKET_SCOPE_SUFFIX"/logical_backups/"$(date +%s).sql.gz
|
||||
|
||||
gsutil -o Credentials:gs_service_key_file=$LOGICAL_BACKUP_GOOGLE_APPLICATION_CREDENTIALS cp - "$PATH_TO_BACKUP"
|
||||
}
|
||||
|
||||
function upload {
|
||||
case $LOGICAL_BACKUP_PROVIDER in
|
||||
"gcs")
|
||||
gcs_upload
|
||||
;;
|
||||
*)
|
||||
aws_upload $(($(estimate_size) / DUMP_SIZE_COEFF))
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function get_pods {
|
||||
declare -r SELECTOR="$1"
|
||||
|
||||
@@ -93,7 +110,7 @@ for search in "${search_strategy[@]}"; do
|
||||
done
|
||||
|
||||
set -x
|
||||
dump | compress | aws_upload $(($(estimate_size) / DUMP_SIZE_COEFF))
|
||||
dump | compress | upload
|
||||
[[ ${PIPESTATUS[0]} != 0 || ${PIPESTATUS[1]} != 0 || ${PIPESTATUS[2]} != 0 ]] && (( ERRORCOUNT += 1 ))
|
||||
set +x
|
||||
|
||||
|
||||
Reference in New Issue
Block a user