From a828fe8363caa543b615b5c6b1b33d9ddf32c2e8 Mon Sep 17 00:00:00 2001 From: Chris Portman Date: Thu, 29 May 2014 12:07:48 +1000 Subject: [PATCH] Accomodate ENV vars accessable by unicorn and sidekick --- files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb | 23 +++++++++++++++++++++++ files/gitlab-cookbooks/gitlab/templates/default/sv-sidekiq-run.erb | 2 +- files/gitlab-cookbooks/gitlab/templates/default/sv-unicorn-run.erb | 2 +- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb b/files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb index 485dd0b..5162c12 100644 --- a/files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb +++ b/files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb @@ -19,6 +19,7 @@ gitlab_rails_source_dir = "/opt/gitlab/embedded/service/gitlab-rails" gitlab_rails_dir = node['gitlab']['gitlab-rails']['dir'] gitlab_rails_etc_dir = File.join(gitlab_rails_dir, "etc") +gitlab_rails_env_dir = File.join(gitlab_rails_etc_dir, "env") gitlab_rails_working_dir = File.join(gitlab_rails_dir, "working") gitlab_rails_tmp_dir = File.join(gitlab_rails_dir, "tmp") 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'] [ gitlab_rails_dir, gitlab_rails_etc_dir, + gitlab_rails_env_dir, gitlab_rails_working_dir, gitlab_rails_tmp_dir, gitlab_rails_public_uploads_dir, @@ -144,6 +146,27 @@ directory node['gitlab']['gitlab-rails']['satellites_path'] do recursive true end +env_vars = node['gitlab']['gitlab-rails']['env'] || {} +env_vars.each do |key, value| + file File.join(gitlab_rails_env_dir, key) do + owner node['gitlab']['user']['username'] + group node['gitlab']['user']['group'] + mode "0600" + content value + notifies :restart, "service[unicorn]" + notifies :restart, "service[sidekiq]" + end +end + +deleted_env_vars = Dir.entries(gitlab_rails_env_dir) - env_vars.keys - %w{. ..} +deleted_env_vars.each do |deleted_var| + file deleted_var do + action :delete + notifies :restart, "service[unicorn]" + notifies :restart, "service[sidekiq]" + end +end + # replace empty directories in the Git repo with symlinks to /var/opt/gitlab { "/opt/gitlab/embedded/service/gitlab-rails/tmp" => gitlab_rails_tmp_dir, diff --git a/files/gitlab-cookbooks/gitlab/templates/default/sv-sidekiq-run.erb b/files/gitlab-cookbooks/gitlab/templates/default/sv-sidekiq-run.erb index fb7170a..bcf5f52 100644 --- a/files/gitlab-cookbooks/gitlab/templates/default/sv-sidekiq-run.erb +++ b/files/gitlab-cookbooks/gitlab/templates/default/sv-sidekiq-run.erb @@ -3,4 +3,4 @@ cd <%= node['gitlab']['gitlab-rails']['dir'] %>/working exec 2>&1 -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 +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 diff --git a/files/gitlab-cookbooks/gitlab/templates/default/sv-unicorn-run.erb b/files/gitlab-cookbooks/gitlab/templates/default/sv-unicorn-run.erb index 32967d6..6d43fc7 100644 --- a/files/gitlab-cookbooks/gitlab/templates/default/sv-unicorn-run.erb +++ b/files/gitlab-cookbooks/gitlab/templates/default/sv-unicorn-run.erb @@ -64,7 +64,7 @@ function is_unicorn function start_unicorn_master { - 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 + 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 } function trap_signals -- libgit2 0.21.2