From 8aa113a47c833a9606906f44c8c0e174b09c2d8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Tue, 21 Mar 2023 19:01:26 +0100 Subject: [PATCH] Unify deploy secret keys for the main server We were using `server` on staging but `server1` and `server2` on preproduction and production. The reason behind it is we've always used one server on staging but sometimes we've used several servers on preproduction and production. However, this is a bit of a mess on installations which have only one server on preproduction or production and need to use the `server` key for the staging environments but `server1` for other environments. So, in order to keep compatibility with existing Consul installations, we're now allowing either `server` or `server1` on any environment. --- config/deploy-secrets.yml.example | 4 ++-- config/deploy.rb | 10 +++++++++- config/deploy/preproduction.rb | 2 +- config/deploy/production.rb | 2 +- config/deploy/staging.rb | 2 +- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/config/deploy-secrets.yml.example b/config/deploy-secrets.yml.example index 62caca99f..958d48d79 100644 --- a/config/deploy-secrets.yml.example +++ b/config/deploy-secrets.yml.example @@ -7,12 +7,12 @@ staging: preproduction: deploy_to: "/home/deploy/consul" ssh_port: "2222" - server1: xxx.xxx.xxx.xxx + server: xxx.xxx.xxx.xxx user: "deploy" production: deploy_to: "/home/deploy/consul" ssh_port: "22" - server1: xxx.xxx.xxx.xxx + server: xxx.xxx.xxx.xxx server2: xxx.xxx.xxx.xxx user: "deploy" diff --git a/config/deploy.rb b/config/deploy.rb index ebbe03a3f..34944a9c8 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -3,7 +3,15 @@ lock "~> 3.17.1" def deploysecret(key) @deploy_secrets_yml ||= YAML.load_file("config/deploy-secrets.yml")[fetch(:stage).to_s] - @deploy_secrets_yml.fetch(key.to_s, "undefined") + @deploy_secrets_yml.fetch(key.to_s, "") +end + +def main_deploy_server + if deploysecret(:server1) && !deploysecret(:server1).empty? + deploysecret(:server1) + else + deploysecret(:server) + end end set :rails_env, fetch(:stage) diff --git a/config/deploy/preproduction.rb b/config/deploy/preproduction.rb index ca225008f..e9560d2c6 100644 --- a/config/deploy/preproduction.rb +++ b/config/deploy/preproduction.rb @@ -1,3 +1,3 @@ set :branch, ENV["branch"] || :master -server deploysecret(:server1), user: deploysecret(:user), roles: %w[web app db importer cron background] +server main_deploy_server, user: deploysecret(:user), roles: %w[web app db importer cron background] diff --git a/config/deploy/production.rb b/config/deploy/production.rb index eccfaa056..20279bbdc 100644 --- a/config/deploy/production.rb +++ b/config/deploy/production.rb @@ -1,6 +1,6 @@ set :branch, ENV["branch"] || :master -server deploysecret(:server1), user: deploysecret(:user), roles: %w[web app db importer cron background] +server main_deploy_server, user: deploysecret(:user), roles: %w[web app db importer cron background] #server deploysecret(:server2), user: deploysecret(:user), roles: %w(web app db importer cron background) #server deploysecret(:server3), user: deploysecret(:user), roles: %w(web app db importer) #server deploysecret(:server4), user: deploysecret(:user), roles: %w(web app db importer) diff --git a/config/deploy/staging.rb b/config/deploy/staging.rb index 32c13a35c..e9560d2c6 100644 --- a/config/deploy/staging.rb +++ b/config/deploy/staging.rb @@ -1,3 +1,3 @@ set :branch, ENV["branch"] || :master -server deploysecret(:server), user: deploysecret(:user), roles: %w[web app db importer cron background] +server main_deploy_server, user: deploysecret(:user), roles: %w[web app db importer cron background]