From d50f22b146e79f6f75943cace316e7cf86b5b947 Mon Sep 17 00:00:00 2001 From: Jacob Vosmaer Date: Fri, 23 May 2014 16:07:58 +0200 Subject: [PATCH] Enable S3 attachment storage --- README.md | 14 ++++++++++++++ files/gitlab-cookbooks/gitlab/attributes/default.rb | 6 ++++++ files/gitlab-cookbooks/gitlab/definitions/template_symlink.rb | 4 +++- files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb | 13 +++++++++++++ 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cd4322a..576e038 100644 --- a/README.md +++ b/README.md @@ -426,6 +426,20 @@ redis['uid'] = 1236 redis['gid'] = 1236 ``` +## Storing user attachments on Amazon S3 + +Instead of using local storage you can also store the user attachments for your +GitLab instance on Amazon S3. + +``` +# /etc/gitlab/gitlab.rb +gitlab_rails['aws_enable'] = true +gitlab_rails['aws_access_key_id'] = AKIA1111111111111UA +gitlab_rails['aws_secret_access_key'] = secret +gitlab_rails['aws_bucket'] = my_gitlab_bucket +gitlab_rails['aws_region'] = us-east-1 +``` + ## Building your own package See [the separate build documentation](doc/build.md). diff --git a/files/gitlab-cookbooks/gitlab/attributes/default.rb b/files/gitlab-cookbooks/gitlab/attributes/default.rb index 0637413..2a67ef8 100644 --- a/files/gitlab-cookbooks/gitlab/attributes/default.rb +++ b/files/gitlab-cookbooks/gitlab/attributes/default.rb @@ -103,6 +103,12 @@ default['gitlab']['gitlab-rails']['git_bin_path'] = "/opt/gitlab/embedded/bin/gi default['gitlab']['gitlab-rails']['git_max_size'] = 5242880 default['gitlab']['gitlab-rails']['git_timeout'] = 10 +default['gitlab']['gitlab-rails']['aws_enable'] = false +default['gitlab']['gitlab-rails']['aws_access_key_id'] = nil +default['gitlab']['gitlab-rails']['aws_secret_access_key'] = nil +default['gitlab']['gitlab-rails']['aws_bucket'] = nil +default['gitlab']['gitlab-rails']['aws_region'] = nil + default['gitlab']['gitlab-rails']['db_adapter'] = "postgresql" default['gitlab']['gitlab-rails']['db_encoding'] = "unicode" default['gitlab']['gitlab-rails']['db_database'] = "gitlabhq_production" diff --git a/files/gitlab-cookbooks/gitlab/definitions/template_symlink.rb b/files/gitlab-cookbooks/gitlab/definitions/template_symlink.rb index 4da7290..ec82dd2 100644 --- a/files/gitlab-cookbooks/gitlab/definitions/template_symlink.rb +++ b/files/gitlab-cookbooks/gitlab/definitions/template_symlink.rb @@ -15,7 +15,7 @@ # limitations under the License. # -define :template_symlink, :link_from => nil, :source => nil, :owner => nil, :group => nil, :mode => nil, :variables => nil, :helpers => nil, :notifies => nil, :restarts => [] do +define :template_symlink, :link_from => nil, :source => nil, :owner => nil, :group => nil, :mode => nil, :variables => nil, :helpers => nil, :notifies => nil, :restarts => [], :action => :create do template params[:name] do source params[:source] owner params[:owner] @@ -27,9 +27,11 @@ define :template_symlink, :link_from => nil, :source => nil, :owner => nil, :gro params[:restarts].each do |resource| notifies :restart, resource end + action params[:action] end link params[:link_from] do to params[:name] + action params[:action] end end diff --git a/files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb b/files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb index 135a701..d773808 100644 --- a/files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb +++ b/files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb @@ -86,6 +86,19 @@ template_symlink File.join(gitlab_rails_etc_dir, "resque.yml") do restarts dependent_services end +template_symlink File.join(gitlab_rails_etc_dir, "aws.yml") do + link_from File.join(gitlab_rails_source_dir, "config/aws.yml") + owner "root" + group "root" + mode "0644" + variables(node['gitlab']['gitlab-rails'].to_hash) + restarts dependent_services + + unless node['gitlab']['gitlab-rails']['aws_enable'] + action :delete + end +end + template_symlink File.join(gitlab_rails_etc_dir, "gitlab.yml") do link_from File.join(gitlab_rails_source_dir, "config/gitlab.yml") source "gitlab.yml.erb" -- libgit2 0.21.2