From c38e6797d41de73853500f8de25bf5628f48487d Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sat, 22 Feb 2025 20:14:54 +0000 Subject: [PATCH] Use system ruby for tile servers --- cookbooks/ruby/attributes/default.rb | 27 ++++++++++++++--- cookbooks/ruby/recipes/default.rb | 34 +++++++++++++++------- cookbooks/ruby/resources/bundle_install.rb | 6 +++- roles/dev.rb | 3 ++ roles/tile.rb | 3 ++ roles/web-frontend.rb | 3 ++ 6 files changed, 60 insertions(+), 16 deletions(-) diff --git a/cookbooks/ruby/attributes/default.rb b/cookbooks/ruby/attributes/default.rb index 444d260b8..194f29957 100644 --- a/cookbooks/ruby/attributes/default.rb +++ b/cookbooks/ruby/attributes/default.rb @@ -1,4 +1,23 @@ -default[:ruby][:version] = "3.4" -default[:ruby][:interpreter] = "/usr/lib/fullstaq-ruby/versions/#{node[:ruby][:version]}-jemalloc/bin/ruby" -default[:ruby][:gem] = "/usr/lib/fullstaq-ruby/versions/#{node[:ruby][:version]}-jemalloc/bin/gem" -default[:ruby][:bundle] = "/usr/lib/fullstaq-ruby/versions/#{node[:ruby][:version]}-jemalloc/bin/bundle" +default[:ruby][:fullstaq] = true + +if node[:ruby][:fullstaq] + + default[:ruby][:version] = "3.4" + default[:ruby][:interpreter] = "/usr/lib/fullstaq-ruby/versions/#{node[:ruby][:version]}-jemalloc/bin/ruby" + default[:ruby][:gem] = "/usr/lib/fullstaq-ruby/versions/#{node[:ruby][:version]}-jemalloc/bin/gem" + default[:ruby][:bundle] = "/usr/lib/fullstaq-ruby/versions/#{node[:ruby][:version]}-jemalloc/bin/bundle" + +else + + default[:ruby][:version] = if platform?("debian") + "3.1" + elsif node[:lsb][:release].to_f < 22.04 + "2.7" + else + "3.0" + end + default[:ruby][:interpreter] = "/usr/bin/ruby#{node[:ruby][:version]}" + default[:ruby][:gem] = "/usr/bin/gem#{node[:ruby][:version]}" + default[:ruby][:bundle] = "/usr/bin/bundle#{node[:ruby][:version]}" + +end diff --git a/cookbooks/ruby/recipes/default.rb b/cookbooks/ruby/recipes/default.rb index cbf2c53f3..7301e372c 100644 --- a/cookbooks/ruby/recipes/default.rb +++ b/cookbooks/ruby/recipes/default.rb @@ -17,19 +17,31 @@ # limitations under the License. # -include_recipe "apt::fullstaq-ruby" - ruby_version = node[:ruby][:version] -package %W[ - fullstaq-ruby-common - fullstaq-ruby-#{ruby_version}-jemalloc -] +if node[:ruby][:fullstaq] + + include_recipe "apt::fullstaq-ruby" + + package %W[ + fullstaq-ruby-common + fullstaq-ruby-#{ruby_version}-jemalloc + ] -%w[bundle bundler erb gem irb racc rake rbs rdbg rdoc ri ruby syntax_suggest typeproc].each do |command| - link "/usr/local/bin/#{command}" do - to "/usr/lib/fullstaq-ruby/versions/#{ruby_version}-jemalloc/bin/#{command}" - owner "root" - group "root" + %w[bundle bundler erb gem irb racc rake rbs rdbg rdoc ri ruby syntax_suggest typeproc].each do |command| + link "/usr/local/bin/#{command}" do + to "/usr/lib/fullstaq-ruby/versions/#{ruby_version}-jemalloc/bin/#{command}" + owner "root" + group "root" + end end + +else + + package %W[ + ruby + ruby-dev + ruby-bundler + ] + end diff --git a/cookbooks/ruby/resources/bundle_install.rb b/cookbooks/ruby/resources/bundle_install.rb index 2cf7ee632..9facccc27 100644 --- a/cookbooks/ruby/resources/bundle_install.rb +++ b/cookbooks/ruby/resources/bundle_install.rb @@ -47,5 +47,9 @@ action_class do end def after_created - subscribes :run, "package[fullstaq-ruby-#{node[:ruby][:version]}-jemalloc]" + if node[:ruby][:fullstaq] + subscribes :run, "package[fullstaq-ruby-#{node[:ruby][:version]}-jemalloc]" + else + subscribes :run, "package[ruby-bundler]" + end end diff --git a/roles/dev.rb b/roles/dev.rb index f85849e88..a3e67e0f0 100644 --- a/roles/dev.rb +++ b/roles/dev.rb @@ -159,6 +159,9 @@ default_attributes( } } }, + :ruby => { + :fullstaq => true + }, :sysctl => { :postgres => { :comment => "Increase shared memory for postgres", diff --git a/roles/tile.rb b/roles/tile.rb index 20bded97f..550c99f66 100644 --- a/roles/tile.rb +++ b/roles/tile.rb @@ -46,6 +46,9 @@ default_attributes( } } }, + :ruby => { + :fullstaq => false + }, :ssl => { :ct_report_uri => false }, diff --git a/roles/web-frontend.rb b/roles/web-frontend.rb index 396cf36db..e7c0e5850 100644 --- a/roles/web-frontend.rb +++ b/roles/web-frontend.rb @@ -30,6 +30,9 @@ default_attributes( :passenger => { :max_pool_size => 50 }, + :ruby => { + :fullstaq => true + }, :exim => { :local_domains => ["messages.openstreetmap.org"], :routes => { -- 2.39.5