Commit a828fe8363caa543b615b5c6b1b33d9ddf32c2e8
1 parent
b984b3ac
Exists in
master
and in
2 other branches
Accomodate ENV vars accessable by unicorn and sidekick
Allows setting of proxies and the like so that the system can access the internet for cloning remote repos.
Showing
3 changed files
with
25 additions
and
2 deletions
Show diff stats
files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb
@@ -19,6 +19,7 @@ | @@ -19,6 +19,7 @@ | ||
19 | gitlab_rails_source_dir = "/opt/gitlab/embedded/service/gitlab-rails" | 19 | gitlab_rails_source_dir = "/opt/gitlab/embedded/service/gitlab-rails" |
20 | gitlab_rails_dir = node['gitlab']['gitlab-rails']['dir'] | 20 | gitlab_rails_dir = node['gitlab']['gitlab-rails']['dir'] |
21 | gitlab_rails_etc_dir = File.join(gitlab_rails_dir, "etc") | 21 | gitlab_rails_etc_dir = File.join(gitlab_rails_dir, "etc") |
22 | +gitlab_rails_env_dir = File.join(gitlab_rails_etc_dir, "env") | ||
22 | gitlab_rails_working_dir = File.join(gitlab_rails_dir, "working") | 23 | gitlab_rails_working_dir = File.join(gitlab_rails_dir, "working") |
23 | gitlab_rails_tmp_dir = File.join(gitlab_rails_dir, "tmp") | 24 | gitlab_rails_tmp_dir = File.join(gitlab_rails_dir, "tmp") |
24 | gitlab_rails_public_uploads_dir = node['gitlab']['gitlab-rails']['uploads_directory'] | 25 | gitlab_rails_public_uploads_dir = node['gitlab']['gitlab-rails']['uploads_directory'] |
@@ -27,6 +28,7 @@ gitlab_rails_log_dir = node['gitlab']['gitlab-rails']['log_directory'] | @@ -27,6 +28,7 @@ gitlab_rails_log_dir = node['gitlab']['gitlab-rails']['log_directory'] | ||
27 | [ | 28 | [ |
28 | gitlab_rails_dir, | 29 | gitlab_rails_dir, |
29 | gitlab_rails_etc_dir, | 30 | gitlab_rails_etc_dir, |
31 | + gitlab_rails_env_dir, | ||
30 | gitlab_rails_working_dir, | 32 | gitlab_rails_working_dir, |
31 | gitlab_rails_tmp_dir, | 33 | gitlab_rails_tmp_dir, |
32 | gitlab_rails_public_uploads_dir, | 34 | gitlab_rails_public_uploads_dir, |
@@ -144,6 +146,27 @@ directory node['gitlab']['gitlab-rails']['satellites_path'] do | @@ -144,6 +146,27 @@ directory node['gitlab']['gitlab-rails']['satellites_path'] do | ||
144 | recursive true | 146 | recursive true |
145 | end | 147 | end |
146 | 148 | ||
149 | +env_vars = node['gitlab']['gitlab-rails']['env'] || {} | ||
150 | +env_vars.each do |key, value| | ||
151 | + file File.join(gitlab_rails_env_dir, key) do | ||
152 | + owner node['gitlab']['user']['username'] | ||
153 | + group node['gitlab']['user']['group'] | ||
154 | + mode "0600" | ||
155 | + content value | ||
156 | + notifies :restart, "service[unicorn]" | ||
157 | + notifies :restart, "service[sidekiq]" | ||
158 | + end | ||
159 | +end | ||
160 | + | ||
161 | +deleted_env_vars = Dir.entries(gitlab_rails_env_dir) - env_vars.keys - %w{. ..} | ||
162 | +deleted_env_vars.each do |deleted_var| | ||
163 | + file deleted_var do | ||
164 | + action :delete | ||
165 | + notifies :restart, "service[unicorn]" | ||
166 | + notifies :restart, "service[sidekiq]" | ||
167 | + end | ||
168 | +end | ||
169 | + | ||
147 | # replace empty directories in the Git repo with symlinks to /var/opt/gitlab | 170 | # replace empty directories in the Git repo with symlinks to /var/opt/gitlab |
148 | { | 171 | { |
149 | "/opt/gitlab/embedded/service/gitlab-rails/tmp" => gitlab_rails_tmp_dir, | 172 | "/opt/gitlab/embedded/service/gitlab-rails/tmp" => gitlab_rails_tmp_dir, |
files/gitlab-cookbooks/gitlab/templates/default/sv-sidekiq-run.erb
@@ -3,4 +3,4 @@ | @@ -3,4 +3,4 @@ | ||
3 | cd <%= node['gitlab']['gitlab-rails']['dir'] %>/working | 3 | cd <%= node['gitlab']['gitlab-rails']['dir'] %>/working |
4 | 4 | ||
5 | exec 2>&1 | 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']['user']['home'] %>" /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 | 6 | +exec chpst -e <%= node['gitlab']['gitlab-rails']['dir'] %>/etc/env -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']['user']['home'] %>" /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 |
files/gitlab-cookbooks/gitlab/templates/default/sv-unicorn-run.erb
@@ -64,7 +64,7 @@ function is_unicorn | @@ -64,7 +64,7 @@ function is_unicorn | ||
64 | 64 | ||
65 | function start_unicorn_master | 65 | function start_unicorn_master |
66 | { | 66 | { |
67 | - chpst -P -U <%= node['gitlab']['user']['username'] %> -u <%= node['gitlab']['user']['username'] %> /usr/bin/env HOME="<%= node['gitlab']['user']['home'] %>" /opt/gitlab/embedded/bin/bundle exec unicorn -D -E <%= node['gitlab']['gitlab-rails']['environment'] %> -c <%= File.join(node['gitlab']['gitlab-rails']['dir'], "etc", "unicorn.rb") %> /opt/gitlab/embedded/service/gitlab-rails/config.ru | 67 | + chpst -e <%= node['gitlab']['gitlab-rails']['dir'] %>/etc/env -P -U <%= node['gitlab']['user']['username'] %> -u <%= node['gitlab']['user']['username'] %> /usr/bin/env HOME="<%= node['gitlab']['user']['home'] %>" /opt/gitlab/embedded/bin/bundle exec unicorn -D -E <%= node['gitlab']['gitlab-rails']['environment'] %> -c <%= File.join(node['gitlab']['gitlab-rails']['dir'], "etc", "unicorn.rb") %> /opt/gitlab/embedded/service/gitlab-rails/config.ru |
68 | } | 68 | } |
69 | 69 | ||
70 | function trap_signals | 70 | function trap_signals |