Skip to content

Commit 5430452

Browse files
authored
Merge pull request #1449 from drubin/fix-aws-multi-part-upload
Correct template file for AWS_BACKUP_MULTIPART_CHUNK_SIZE env
2 parents fd63259 + 14c3225 commit 5430452

File tree

4 files changed

+29
-6
lines changed

4 files changed

+29
-6
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,6 +1027,8 @@ Below is the complete list of available options that can be used to customize yo
10271027
| `AWS_BACKUP_SECRET_ACCESS_KEY` | AWS secret access key. No defaults. |
10281028
| `AWS_BACKUP_BUCKET` | AWS bucket for backup uploads. No defaults. |
10291029
| `AWS_BACKUP_MULTIPART_CHUNK_SIZE` | Enables mulitpart uploads when file size reaches a defined size. See at [AWS S3 Docs](http://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) |
1030+
| `AWS_BACKUP_ENCRYPTION` | Turns on AWS Server-Side Encryption. Defaults to `false`. See at [AWS S3 Docs](http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) |
1031+
| `AWS_BACKUP_STORAGE_CLASS` | Configure the storage class for the item. Defaults to `STANDARD` See at [AWS S3 Docs](http://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) |
10301032
| `GCS_BACKUPS` | Enables automatic uploads to an Google Cloud Storage (GCS) instance. Defaults to `false`. |
10311033
| `GCS_BACKUP_ACCESS_KEY_ID` | GCS access key id. No defaults |
10321034
| `GCS_BACKUP_SECRET_ACCESS_KEY` | GCS secret access key. No defaults |

assets/runtime/config/gitlabhq/gitlab.yml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -512,11 +512,17 @@ production: &base
512512
aws_secret_access_key: '{{AWS_BACKUP_SECRET_ACCESS_KEY}}'
513513
# The remote 'directory' to store your backups. For S3, this would be the bucket name.
514514
remote_directory: '{{AWS_BACKUP_BUCKET}}'
515-
# # Use multipart uploads when file size reaches 100MB, see
516-
# # http://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html
517-
# multipart_chunk_size: 104857600
518-
# # Turns on AWS Server-Side Encryption with Amazon S3-Managed Keys for backups, this is optional
519-
# # encryption: 'AES256'
515+
#start-multipart-aws
516+
# Use multipart uploads when file size reaches 100MB, see
517+
# http://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html
518+
multipart_chunk_size: {{AWS_BACKUP_MULTIPART_CHUNK_SIZE}}
519+
#end-multipart-aws
520+
#start-encryption-aws
521+
# Turns on AWS Server-Side Encryption with Amazon S3-Managed Keys for backups, this is optional
522+
encryption: 'AES256'
523+
#end-encryption-aws
524+
# Specifies Amazon S3 storage class to use for backups, this is optional
525+
storage_class: '{{AWS_BACKUP_STORAGE_CLASS}}'
520526
# Fog storage connection settings, see http://fog.io/storage/ .
521527
#end-aws
522528
#start-gcs

assets/runtime/env-defaults

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,8 @@ AWS_BACKUP_ACCESS_KEY_ID=${AWS_BACKUP_ACCESS_KEY_ID}
158158
AWS_BACKUP_SECRET_ACCESS_KEY=${AWS_BACKUP_SECRET_ACCESS_KEY}
159159
AWS_BACKUP_BUCKET=${AWS_BACKUP_BUCKET}
160160
AWS_BACKUP_MULTIPART_CHUNK_SIZE=${AWS_BACKUP_MULTIPART_CHUNK_SIZE}
161+
AWS_BACKUP_ENCRYPTION=${AWS_BACKUP_ENCRYPTION}
162+
AWS_BACKUP_STORAGE_CLASS=${AWS_BACKUP_STORAGE_CLASS:-STANDARD}
161163

162164
### GCS BACKUPS
163165
GCS_BACKUPS=${GCS_BACKUPS:-false}

assets/runtime/functions

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -786,6 +786,18 @@ gitlab_configure_backups_aws() {
786786
exec_as_git sed -i "/#start-aws/d" ${GITLAB_CONFIG}
787787
exec_as_git sed -i "/#end-aws/d" ${GITLAB_CONFIG}
788788

789+
if [[ -z ${AWS_BACKUP_MULTIPART_CHUNK_SIZE} ]]; then
790+
exec_as_git sed -i "/#start-multipart/,/#end-multipart/d" ${GITLAB_CONFIG}
791+
fi
792+
793+
if [[ -z ${AWS_BACKUP_MULTIPART_CHUNK_SIZE} ]]; then
794+
exec_as_git sed -i "/#start-multipart-aws/,/#end-multipart-aws/d" ${GITLAB_CONFIG}
795+
fi
796+
797+
if [[ ${AWS_BACKUP_ENCRYPTION} != true ]]; then
798+
exec_as_git sed -i "/#start-encryption-aws/,/#end-encryption-aws/d" ${GITLAB_CONFIG}
799+
fi
800+
789801
if [[ -z ${AWS_BACKUP_REGION} && -z ${AWS_BACKUP_ENDPOINT} ]]; then
790802
echo "\nMissing AWS region or endpoint. Aborting...\n"
791803
return 1
@@ -807,7 +819,8 @@ gitlab_configure_backups_aws() {
807819
AWS_BACKUP_ACCESS_KEY_ID \
808820
AWS_BACKUP_SECRET_ACCESS_KEY \
809821
AWS_BACKUP_BUCKET \
810-
AWS_BACKUP_MULTIPART_CHUNK_SIZE
822+
AWS_BACKUP_MULTIPART_CHUNK_SIZE \
823+
AWS_BACKUP_STORAGE_CLASS
811824
}
812825

813826
gitlab_configure_backup_gcs() {

0 commit comments

Comments
 (0)