Skip to content

Commit d98fc27

Browse files
ggramalFxKu
andauthored
logical-backup:gcs_upload: try to use gcp metadata if LOGICAL_GOOGLE_APPLICATION_CREDENTIALS is not set (#2837)
Co-authored-by: Felix Kunde <felix-kunde@gmx.de>
1 parent cce2633 commit d98fc27

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

logical-backup/dump.sh

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,21 @@ function aws_upload {
122122
function gcs_upload {
123123
PATH_TO_BACKUP=gs://$LOGICAL_BACKUP_S3_BUCKET"/"$LOGICAL_BACKUP_S3_BUCKET_PREFIX"/"$SCOPE$LOGICAL_BACKUP_S3_BUCKET_SCOPE_SUFFIX"/logical_backups/"$(date +%s).sql.gz
124124

125-
gsutil -o Credentials:gs_service_key_file=$LOGICAL_BACKUP_GOOGLE_APPLICATION_CREDENTIALS cp - "$PATH_TO_BACKUP"
125+
#Set local LOGICAL_GOOGLE_APPLICATION_CREDENTIALS to nothing or
126+
#value of LOGICAL_GOOGLE_APPLICATION_CREDENTIALS env var. Needed
127+
#because `set -o nounset` is globally set
128+
local LOGICAL_BACKUP_GOOGLE_APPLICATION_CREDENTIALS=${LOGICAL_BACKUP_GOOGLE_APPLICATION_CREDENTIALS:-}
129+
130+
GSUTIL_OPTIONS=("-o" "Credentials:gs_service_key_file=$LOGICAL_BACKUP_GOOGLE_APPLICATION_CREDENTIALS")
131+
132+
#If GOOGLE_APPLICATION_CREDENTIALS is not set try to get
133+
#creds from metadata
134+
if [[ -z $LOGICAL_BACKUP_GOOGLE_APPLICATION_CREDENTIALS ]]
135+
then
136+
GSUTIL_OPTIONS[1]="GoogleCompute:service_account=default"
137+
fi
138+
139+
gsutil ${GSUTIL_OPTIONS[@]} cp - "$PATH_TO_BACKUP"
126140
}
127141

128142
function upload {

0 commit comments

Comments
 (0)