Commit a483fcda2f9c410a275992f7ff1094f2ee43015f
1 parent
0d138f59
Exists in
master
and in
17 other branches
Add sidekiq service
Showing
8 changed files
with
91 additions
and
4 deletions
Show diff stats
files/gitlab-cookbooks/gitlab/attributes/default.rb
... | ... | @@ -70,6 +70,13 @@ default['gitlab']['unicorn']['tcp_nopush'] = true |
70 | 70 | default['gitlab']['unicorn']['backlog_socket'] = 64 |
71 | 71 | default['gitlab']['unicorn']['worker_timeout'] = 30 |
72 | 72 | |
73 | +#### | |
74 | +# Sidekiq | |
75 | +#### | |
76 | +default['gitlab']['sidekiq']['enable'] = true | |
77 | +default['gitlab']['sidekiq']['ha'] = false | |
78 | +default['gitlab']['sidekiq']['log_directory'] = "/var/log/gitlab/sidekiq" | |
79 | + | |
73 | 80 | |
74 | 81 | ### |
75 | 82 | # gitlab-shell | ... | ... |
files/gitlab-cookbooks/gitlab/libraries/gitlab.rb
... | ... | @@ -30,6 +30,7 @@ module Gitlab |
30 | 30 | redis Mash.new |
31 | 31 | gitlab_rails Mash.new |
32 | 32 | unicorn Mash.new |
33 | + sidekiq Mash.new | |
33 | 34 | node nil |
34 | 35 | |
35 | 36 | class << self |
... | ... | @@ -77,6 +78,7 @@ module Gitlab |
77 | 78 | "redis", |
78 | 79 | "gitlab_rails", |
79 | 80 | "unicorn", |
81 | + "sidekiq", | |
80 | 82 | "postgresql" |
81 | 83 | ].each do |key| |
82 | 84 | rkey = key.gsub('_', '-') | ... | ... |
files/gitlab-cookbooks/gitlab/recipes/default.rb
... | ... | @@ -49,10 +49,15 @@ include_recipe "gitlab::users" |
49 | 49 | include_recipe "gitlab::gitlab-shell" |
50 | 50 | include_recipe "gitlab::gitlab-rails" |
51 | 51 | |
52 | -# Create a dummy unicorn service to receive notifications, in case the | |
53 | -# gitlab::unicorn is not loaded below. | |
54 | -service "unicorn" do | |
55 | - supports [] | |
52 | +# Create dummy unicorn and sidekiq services to receive notifications, in case | |
53 | +# the corresponding service recipe is not loaded below. | |
54 | +[ | |
55 | + "unicorn", | |
56 | + "sidekiq" | |
57 | +].each do |dummy| | |
58 | + service dummy do | |
59 | + supports [] | |
60 | + end | |
56 | 61 | end |
57 | 62 | |
58 | 63 | # Install our runit instance |
... | ... | @@ -63,6 +68,7 @@ include_recipe "runit" |
63 | 68 | "redis", |
64 | 69 | "postgresql", # Postgresql depends on Redis because of `rake db:seed_fu` |
65 | 70 | "unicorn", |
71 | + "sidekiq", | |
66 | 72 | "bootstrap", |
67 | 73 | ].each do |service| |
68 | 74 | if node["gitlab"][service]["enable"] | ... | ... |
files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb
... | ... | @@ -40,6 +40,7 @@ gitlab_rails_log_dir = node['gitlab']['gitlab-rails']['log_directory'] |
40 | 40 | end |
41 | 41 | |
42 | 42 | should_notify_unicorn = OmnibusHelper.should_notify?("unicorn") |
43 | +should_notify_sidekiq = OmnibusHelper.should_notify?("sidekiq") | |
43 | 44 | |
44 | 45 | template_symlink File.join(gitlab_rails_etc_dir, "secret") do |
45 | 46 | link_from File.join(gitlab_rails_source_dir, ".secret") |
... | ... | @@ -48,6 +49,7 @@ template_symlink File.join(gitlab_rails_etc_dir, "secret") do |
48 | 49 | group "root" |
49 | 50 | mode "0644" |
50 | 51 | notifies :restart, 'service[unicorn]' if should_notify_unicorn |
52 | + notifies :restart, 'service[sidekiq]' if should_notify_sidekiq | |
51 | 53 | end |
52 | 54 | |
53 | 55 | template_symlink File.join(gitlab_rails_etc_dir, "database.yml") do |
... | ... | @@ -58,6 +60,7 @@ template_symlink File.join(gitlab_rails_etc_dir, "database.yml") do |
58 | 60 | mode "0644" |
59 | 61 | variables(node['gitlab']['postgresql'].to_hash) |
60 | 62 | notifies :restart, 'service[unicorn]' if should_notify_unicorn |
63 | + notifies :restart, 'service[sidekiq]' if should_notify_sidekiq | |
61 | 64 | end |
62 | 65 | |
63 | 66 | template_symlink File.join(gitlab_rails_etc_dir, "gitlab.yml") do |
... | ... | @@ -68,6 +71,7 @@ template_symlink File.join(gitlab_rails_etc_dir, "gitlab.yml") do |
68 | 71 | mode "0644" |
69 | 72 | variables(node['gitlab']['gitlab-rails'].to_hash) |
70 | 73 | notifies :restart, 'service[unicorn]' if should_notify_unicorn |
74 | + notifies :restart, 'service[sidekiq]' if should_notify_sidekiq | |
71 | 75 | end |
72 | 76 | |
73 | 77 | template_symlink File.join(gitlab_rails_etc_dir, "rack_attack.rb") do |
... | ... | @@ -78,6 +82,7 @@ template_symlink File.join(gitlab_rails_etc_dir, "rack_attack.rb") do |
78 | 82 | mode "0644" |
79 | 83 | variables(node['gitlab']['gitlab-rails'].to_hash) |
80 | 84 | notifies :restart, 'service[unicorn]' if should_notify_unicorn |
85 | + notifies :restart, 'service[sidekiq]' if should_notify_sidekiq | |
81 | 86 | end |
82 | 87 | |
83 | 88 | directory node['gitlab']['gitlab-rails']['satellites_path'] do | ... | ... |
... | ... | @@ -0,0 +1,38 @@ |
1 | +# | |
2 | +# Copyright:: Copyright (c) 2012 Opscode, Inc. | |
3 | +# Copyright:: Copyright (c) 2014 GitLab.com | |
4 | +# License:: Apache License, Version 2.0 | |
5 | +# | |
6 | +# Licensed under the Apache License, Version 2.0 (the "License"); | |
7 | +# you may not use this file except in compliance with the License. | |
8 | +# You may obtain a copy of the License at | |
9 | +# | |
10 | +# http://www.apache.org/licenses/LICENSE-2.0 | |
11 | +# | |
12 | +# Unless required by applicable law or agreed to in writing, software | |
13 | +# distributed under the License is distributed on an "AS IS" BASIS, | |
14 | +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
15 | +# See the License for the specific language governing permissions and | |
16 | +# limitations under the License. | |
17 | +# | |
18 | + | |
19 | +sidekiq_log_dir = node['gitlab']['sidekiq']['log_directory'] | |
20 | + | |
21 | +directory sidekiq_log_dir do | |
22 | + owner node['gitlab']['user']['username'] | |
23 | + mode '0700' | |
24 | + recursive true | |
25 | +end | |
26 | + | |
27 | +runit_service "sidekiq" do | |
28 | + down node['gitlab']['sidekiq']['ha'] | |
29 | + options({ | |
30 | + :log_directory => sidekiq_log_dir | |
31 | + }.merge(params)) | |
32 | +end | |
33 | + | |
34 | +if node['gitlab']['bootstrap']['enable'] | |
35 | + execute "/opt/gitlab/bin/gitlab-ctl start sidekiq" do | |
36 | + retries 20 | |
37 | + end | |
38 | +end | ... | ... |
files/gitlab-cookbooks/gitlab/recipes/sidekiq_disable.rb
0 → 100644
... | ... | @@ -0,0 +1,21 @@ |
1 | +# | |
2 | +# Copyright:: Copyright (c) 2012 Opscode, Inc. | |
3 | +# Copyright:: Copyright (c) 2014 GitLab.com | |
4 | +# License:: Apache License, Version 2.0 | |
5 | +# | |
6 | +# Licensed under the Apache License, Version 2.0 (the "License"); | |
7 | +# you may not use this file except in compliance with the License. | |
8 | +# You may obtain a copy of the License at | |
9 | +# | |
10 | +# http://www.apache.org/licenses/LICENSE-2.0 | |
11 | +# | |
12 | +# Unless required by applicable law or agreed to in writing, software | |
13 | +# distributed under the License is distributed on an "AS IS" BASIS, | |
14 | +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
15 | +# See the License for the specific language governing permissions and | |
16 | +# limitations under the License. | |
17 | +# | |
18 | + | |
19 | +runit_service "sidekiq" do | |
20 | + action :disable | |
21 | +end | ... | ... |
files/gitlab-cookbooks/gitlab/templates/default/sv-sidekiq-log-run.erb
0 → 100644
files/gitlab-cookbooks/gitlab/templates/default/sv-sidekiq-run.erb
0 → 100644
... | ... | @@ -0,0 +1,6 @@ |
1 | +#!/bin/sh | |
2 | + | |
3 | +cd <%= node['gitlab']['gitlab-rails']['dir'] %>/working | |
4 | + | |
5 | +exec 2>&1 | |
6 | +exec chpst -P -U <%= node['gitlab']['user']['username'] %> -u <%= node['gitlab']['user']['username'] %> /usr/bin/env BUNDLE_GEMFILE=/opt/gitlab/embedded/service/gitlab-rails/Gemfile HOME="<%= node['gitlab']['gitlab-rails']['dir'] %>" /opt/gitlab/embedded/bin/bundle exec sidekiq -q post_receive,mailer,system_hook,project_web_hook,gitlab_shell,common,default -e <%= node['gitlab']['gitlab-rails']['environment'] %> -r /opt/gitlab/embedded/service/gitlab-rails | ... | ... |