Commit 648d316300ba2dbed85bfdc749100b8a8c80c42c

Authored by Jacob Vosmaer
1 parent 9b9ff9cb

Support external Redis instances

@@ -548,6 +548,18 @@ If you do do not want to use the packaged Postgres server you can configure an e @@ -548,6 +548,18 @@ If you do do not want to use the packaged Postgres server you can configure an e
548 Configuring a PostgreSQL server is possible both with GitLab Community Edition and Enterprise Edition packages. 548 Configuring a PostgreSQL server is possible both with GitLab Community Edition and Enterprise Edition packages.
549 Please see the upstream GitLab for a [PostgreSQL configuration example][database.yml.postgresql]. 549 Please see the upstream GitLab for a [PostgreSQL configuration example][database.yml.postgresql].
550 550
  551 +## Using a non-packaged Redis instance
  552 +
  553 +If you want to use your own Redis instance instead of the bundled Redis, you
  554 +can use the `gitlab.rb` settings below. Run `gitlab-ctl reconfigure` for the
  555 +settings to take effect.
  556 +
  557 +```ruby
  558 +redis['enable'] = false
  559 +gitlab_rails['redis_host'] = redis.example.com
  560 +gitlab_rails['redis_port'] = 6380 # defaults to 6379
  561 +```
  562 +
551 ## Building your own package 563 ## Building your own package
552 564
553 See [the separate build documentation](doc/build.md). 565 See [the separate build documentation](doc/build.md).
files/gitlab-cookbooks/gitlab/attributes/default.rb
@@ -128,6 +128,9 @@ default['gitlab']['gitlab-rails']['db_host'] = nil @@ -128,6 +128,9 @@ default['gitlab']['gitlab-rails']['db_host'] = nil
128 default['gitlab']['gitlab-rails']['db_port'] = 5432 128 default['gitlab']['gitlab-rails']['db_port'] = 5432
129 default['gitlab']['gitlab-rails']['db_socket'] = nil 129 default['gitlab']['gitlab-rails']['db_socket'] = nil
130 130
  131 +default['gitlab']['gitlab-rails']['redis_host'] = "127.0.0.1"
  132 +default['gitlab']['gitlab-rails']['redis_port'] = 6379
  133 +
131 default['gitlab']['gitlab-rails']['smtp_enable'] = false 134 default['gitlab']['gitlab-rails']['smtp_enable'] = false
132 default['gitlab']['gitlab-rails']['smtp_address'] = nil 135 default['gitlab']['gitlab-rails']['smtp_address'] = nil
133 default['gitlab']['gitlab-rails']['smtp_port'] = nil 136 default['gitlab']['gitlab-rails']['smtp_port'] = nil
files/gitlab-cookbooks/gitlab/libraries/gitlab.rb
@@ -139,6 +139,13 @@ module Gitlab @@ -139,6 +139,13 @@ module Gitlab
139 end 139 end
140 end 140 end
141 141
  142 + def parse_redis_settings
  143 + # No need to check redis['host'] because that setting is not configurable.
  144 + if redis['port']
  145 + Gitlab['gitlab_rails']['redis_port'] ||= redis['port']
  146 + end
  147 + end
  148 +
142 def generate_hash 149 def generate_hash
143 results = { "gitlab" => {} } 150 results = { "gitlab" => {} }
144 [ 151 [
@@ -166,6 +173,7 @@ module Gitlab @@ -166,6 +173,7 @@ module Gitlab
166 parse_external_url 173 parse_external_url
167 parse_git_data_dir 174 parse_git_data_dir
168 parse_udp_log_shipping 175 parse_udp_log_shipping
  176 + parse_redis_settings
169 # The last step is to convert underscores to hyphens in top-level keys 177 # The last step is to convert underscores to hyphens in top-level keys
170 generate_hash 178 generate_hash
171 end 179 end
files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb
@@ -84,6 +84,7 @@ template_symlink File.join(gitlab_rails_etc_dir, "resque.yml") do @@ -84,6 +84,7 @@ template_symlink File.join(gitlab_rails_etc_dir, "resque.yml") do
84 owner "root" 84 owner "root"
85 group "root" 85 group "root"
86 mode "0644" 86 mode "0644"
  87 + variables(node['gitlab']['gitlab-rails'].to_hash)
87 restarts dependent_services 88 restarts dependent_services
88 end 89 end
89 90
files/gitlab-cookbooks/gitlab/recipes/gitlab-shell.rb
@@ -82,7 +82,8 @@ template_symlink File.join(gitlab_shell_var_dir, "config.yml") do @@ -82,7 +82,8 @@ template_symlink File.join(gitlab_shell_var_dir, "config.yml") do
82 :api_url => api_url, 82 :api_url => api_url,
83 :repositories_path => repositories_path, 83 :repositories_path => repositories_path,
84 :authorized_keys => authorized_keys, 84 :authorized_keys => authorized_keys,
85 - :redis_port => node['gitlab']['redis']['port'], 85 + :redis_host => node['gitlab']['gitlab-rails']['redis_host'],
  86 + :redis_port => node['gitlab']['gitlab-rails']['redis_port'],
86 :log_file => File.join(log_directory, "gitlab-shell.log") 87 :log_file => File.join(log_directory, "gitlab-shell.log")
87 ) 88 )
88 end 89 end
files/gitlab-cookbooks/gitlab/templates/default/gitlab-shell-config.yml.erb
@@ -27,7 +27,7 @@ auth_file: "<%= @authorized_keys %>" @@ -27,7 +27,7 @@ auth_file: "<%= @authorized_keys %>"
27 # Redis settings used for pushing commit notices to gitlab 27 # Redis settings used for pushing commit notices to gitlab
28 redis: 28 redis:
29 bin: /opt/gitlab/embedded/bin/redis-cli 29 bin: /opt/gitlab/embedded/bin/redis-cli
30 - host: 127.0.0.1 30 + host: <%= @redis_host %>
31 port: <%= @redis_port %> 31 port: <%= @redis_port %>
32 # socket: /tmp/redis.socket # Only define this if you want to use sockets 32 # socket: /tmp/redis.socket # Only define this if you want to use sockets
33 namespace: resque:gitlab 33 namespace: resque:gitlab
files/gitlab-cookbooks/gitlab/templates/default/resque.yml.erb
1 -production: redis://localhost:<%= node['gitlab']['redis']['port'] %> 1 +production: redis://<%= @redis_host %>:<%= @redis_port %>