summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Keys <jon.keys@gmail.com>2017-02-28 16:30:58 -0500
committerJon Keys <jon.keys@gmail.com>2017-02-28 16:30:58 -0500
commit7a7ec1ac0f742753d7acfacb7b7913ebbaf81558 (patch)
tree952643b24757862b41b0c2e194140ef4efc6a144
parent261f5a68edc37eca25b9f49f2d3d75261bd794a7 (diff)
downloadgitlab-ce-7a7ec1ac0f742753d7acfacb7b7913ebbaf81558.tar.gz
Add storage class configuration option for Amazon S3 remote backups
-rw-r--r--changelogs/unreleased/backup_storage_class.yml4
-rw-r--r--config/gitlab.yml.example2
-rw-r--r--config/initializers/1_settings.rb1
-rw-r--r--doc/raketasks/backup_restore.md2
-rw-r--r--lib/backup/manager.rb3
5 files changed, 11 insertions, 1 deletions
diff --git a/changelogs/unreleased/backup_storage_class.yml b/changelogs/unreleased/backup_storage_class.yml
new file mode 100644
index 00000000000..fc9989fc251
--- /dev/null
+++ b/changelogs/unreleased/backup_storage_class.yml
@@ -0,0 +1,4 @@
+---
+title: Add storage class configuration option for Amazon S3 remote backups
+merge_request:
+author: Jon Keys
diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example
index a82ff605a70..fdd28b13eff 100644
--- a/config/gitlab.yml.example
+++ b/config/gitlab.yml.example
@@ -483,6 +483,8 @@ production: &base
# multipart_chunk_size: 104857600
# # Turns on AWS Server-Side Encryption with Amazon S3-Managed Keys for backups, this is optional
# # encryption: 'AES256'
+ # # Specifies Amazon S3 storage class to use for backups, this is optional
+ # # storage_class: 'STANDARD'
## GitLab Shell settings
gitlab_shell:
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index c64ae15fa92..f9d3cf17118 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -399,6 +399,7 @@ if Settings.backup['upload']['connection']
end
Settings.backup['upload']['multipart_chunk_size'] ||= 104857600
Settings.backup['upload']['encryption'] ||= nil
+Settings.backup['upload']['storage_class'] ||= nil
#
# Git
diff --git a/doc/raketasks/backup_restore.md b/doc/raketasks/backup_restore.md
index a5b8cd6455c..e42e4484996 100644
--- a/doc/raketasks/backup_restore.md
+++ b/doc/raketasks/backup_restore.md
@@ -175,6 +175,8 @@ For installations from source:
remote_directory: 'my.s3.bucket'
# Turns on AWS Server-Side Encryption with Amazon S3-Managed Keys for backups, this is optional
# encryption: 'AES256'
+ # Specifies Amazon S3 storage class to use for backups, this is optional
+ # storage_class: 'STANDARD'
```
If you are uploading your backups to S3 you will probably want to create a new
diff --git a/lib/backup/manager.rb b/lib/backup/manager.rb
index 5cc164a6325..7b4476fa4db 100644
--- a/lib/backup/manager.rb
+++ b/lib/backup/manager.rb
@@ -51,7 +51,8 @@ module Backup
if directory.files.create(key: tar_file, body: File.open(tar_file), public: false,
multipart_chunk_size: Gitlab.config.backup.upload.multipart_chunk_size,
- encryption: Gitlab.config.backup.upload.encryption)
+ encryption: Gitlab.config.backup.upload.encryption,
+ storage_class: Gitlab.config.backup.upload.storage_class)
$progress.puts "done".color(:green)
else
puts "uploading backup to #{remote_directory} failed".color(:red)