Commit a828fe8363caa543b615b5c6b1b33d9ddf32c2e8

Authored by Chris Portman
1 parent b984b3ac

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.
files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb
... ... @@ -19,6 +19,7 @@
19 19 gitlab_rails_source_dir = "/opt/gitlab/embedded/service/gitlab-rails"
20 20 gitlab_rails_dir = node['gitlab']['gitlab-rails']['dir']
21 21 gitlab_rails_etc_dir = File.join(gitlab_rails_dir, "etc")
  22 +gitlab_rails_env_dir = File.join(gitlab_rails_etc_dir, "env")
22 23 gitlab_rails_working_dir = File.join(gitlab_rails_dir, "working")
23 24 gitlab_rails_tmp_dir = File.join(gitlab_rails_dir, "tmp")
24 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 28 [
28 29 gitlab_rails_dir,
29 30 gitlab_rails_etc_dir,
  31 + gitlab_rails_env_dir,
30 32 gitlab_rails_working_dir,
31 33 gitlab_rails_tmp_dir,
32 34 gitlab_rails_public_uploads_dir,
... ... @@ -144,6 +146,27 @@ directory node['gitlab']['gitlab-rails']['satellites_path'] do
144 146 recursive true
145 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 170 # replace empty directories in the Git repo with symlinks to /var/opt/gitlab
148 171 {
149 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 3 cd <%= node['gitlab']['gitlab-rails']['dir'] %>/working
4 4  
5 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 64  
65 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 70 function trap_signals
... ...