From 83cc35b8dff6727014844a9e05bc2b62d247ae9f Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 9 Sep 2025 10:26:10 +0100 Subject: [PATCH] Configure postgres cluster for dev APIs from the role --- cookbooks/dev/attributes/default.rb | 3 +- cookbooks/dev/recipes/default.rb | 20 ++++++------ roles/dev.rb | 47 +++++++++++++++-------------- 3 files changed, 38 insertions(+), 32 deletions(-) diff --git a/cookbooks/dev/attributes/default.rb b/cookbooks/dev/attributes/default.rb index 4f16412c4..61887687b 100644 --- a/cookbooks/dev/attributes/default.rb +++ b/cookbooks/dev/attributes/default.rb @@ -1 +1,2 @@ -default[:dev][:rails] = {} +default[:dev][:rails][:postgresql_cluster] = "" +default[:dev][:rails][:sites] = {} diff --git a/cookbooks/dev/recipes/default.rb b/cookbooks/dev/recipes/default.rb index 7f6475ac6..0cba087b9 100644 --- a/cookbooks/dev/recipes/default.rb +++ b/cookbooks/dev/recipes/default.rb @@ -292,9 +292,11 @@ node[:postgresql][:versions].each do |version| package "postgresql-#{version}-postgis-3" end -if node[:postgresql][:clusters][:"17/main"] +rails_cluster = node[:dev][:rails][:postgresql_cluster] + +if node[:postgresql][:clusters][rails_cluster.to_sym] postgresql_user "apis" do - cluster "17/main" + cluster rails_cluster end template "/usr/local/bin/cleanup-rails-assets" do @@ -340,10 +342,10 @@ if node[:postgresql][:clusters][:"17/main"] end Dir.glob("/srv/*.apis.dev.openstreetmap.org").each do |dir| - node.default_unless[:dev][:rails][File.basename(dir).split(".").first] = {} + node.default_unless[:dev][:rails][:sites][File.basename(dir).split(".").first] = {} end - node[:dev][:rails].each do |name, details| + node[:dev][:rails][:sites].each do |name, details| database_name = details[:database] || "apis_#{name}" site_name = "#{name}.apis.dev.openstreetmap.org" site_directory = "/srv/#{name}.apis.dev.openstreetmap.org" @@ -357,12 +359,12 @@ if node[:postgresql][:clusters][:"17/main"] secret_key_base = persistent_token("dev", "rails", name, "secret_key_base") postgresql_database database_name do - cluster "17/main" + cluster rails_cluster owner "apis" end postgresql_extension "#{database_name}_btree_gist" do - cluster "17/main" + cluster rails_cluster database database_name extension "btree_gist" end @@ -409,7 +411,7 @@ if node[:postgresql][:clusters][:"17/main"] group "apis" repository details[:repository] revision details[:revision] - database_port node[:postgresql][:clusters][:"17/main"][:port] + database_port node[:postgresql][:clusters][rails_cluster.to_sym][:port] database_name database_name database_username "apis" email_from "OpenStreetMap " @@ -486,7 +488,7 @@ if node[:postgresql][:clusters][:"17/main"] group "root" mode "640" variables :cgimap_socket => "/run/cgimap-#{name}/socket", - :database_port => node[:postgresql][:clusters][:"17/main"][:port], + :database_port => node[:postgresql][:clusters][rails_cluster.to_sym][:port], :database_name => database_name, :log_directory => log_directory, :options => details[:cgimap_options] @@ -555,7 +557,7 @@ if node[:postgresql][:clusters][:"17/main"] postgresql_database database_name do action :drop - cluster "17/main" + cluster rails_cluster end end end diff --git a/roles/dev.rb b/roles/dev.rb index a2f6816b8..73b5580e1 100644 --- a/roles/dev.rb +++ b/roles/dev.rb @@ -111,29 +111,32 @@ default_attributes( }, :dev => { :rails => { - :master => { - :repository => "https://git.openstreetmap.org/public/rails.git", - :revision => "master", - :cgimap_repository => "https://github.com/zerebubuth/openstreetmap-cgimap.git", - :cgimap_revision => "master", - :cgimap_options => { - :changeset_enhanced_stats => true + :postgresql_cluster => "17/main", + :sites => { + :master => { + :repository => "https://git.openstreetmap.org/public/rails.git", + :revision => "master", + :cgimap_repository => "https://github.com/zerebubuth/openstreetmap-cgimap.git", + :cgimap_revision => "master", + :cgimap_options => { + :changeset_enhanced_stats => true + }, + :aliases => ["master.apis.dev.osm.org", "api06.dev.openstreetmap.org", "api06.dev.osm.org"] }, - :aliases => ["master.apis.dev.osm.org", "api06.dev.openstreetmap.org", "api06.dev.osm.org"] - }, - :tomh => { - :repository => "https://github.com/tomhughes/openstreetmap-website.git", - :revision => "next", - :cgimap_repository => "https://github.com/zerebubuth/openstreetmap-cgimap.git", - :cgimap_revision => "master" - }, - :comments => { - :repository => "https://github.com/ukasiu/openstreetmap-website.git", - :revision => "comments_list" - }, - :microcosms => { - :repository => "https://github.com/openbrian/osm-microcosms.git", - :revision => "microcosms" + :tomh => { + :repository => "https://github.com/tomhughes/openstreetmap-website.git", + :revision => "next", + :cgimap_repository => "https://github.com/zerebubuth/openstreetmap-cgimap.git", + :cgimap_revision => "master" + }, + :comments => { + :repository => "https://github.com/ukasiu/openstreetmap-website.git", + :revision => "comments_list" + }, + :microcosms => { + :repository => "https://github.com/openbrian/osm-microcosms.git", + :revision => "microcosms" + } } } }, -- 2.39.5