Create a multi-node secondary on staging with GET

Summary

In https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/12517 and recent working group meetings, we discussed the possibility of using the GitLab Environment Toolkit (GET) as an option to set-up a multi-node Geo secondary on staging. It is understood that this is an initial iteration and may be a temporary solution until we settle upon the appropriate tooling.

With https://gitlab.com/gitlab-com/gl-infra/mstaff/-/issues/34#note_471435886, we've decided to start with a 3k reference architecture.

With this issue, we'll plan and execute the creation of a multi-node secondary site on staging.

Steps

A broad outline of the steps to create the multi-node secondary. We'll continue to expand with more detail or consider promoting this to an epic and adding issues for each step.

  • Set up necessary accounts and shared VM to run GET
  • Using GET, deploy a 3k reference architecture to a yet-to-be determined GCP project
  • Set up database replication using a Patroni standby cluster on the secondary site
  • Configure the secondary node
  • Add the secondary node to the primary
  • Set up selective sync
  • Document the required steps and automate
  • Set up monitoring

We can also look to the epic for the initial set up of Geo on staging for some guidance.

Edited by Nick Nguyen