Create blessed node to improve the deployment procedure
The deployment procedure is becoming more and more complex. On the long run we want to just perform a rolling upgrade using some form of orchestrator, but we can't just do this right now with our current infrastructure.
On light of the last events (https://gitlab.com/gitlab-com/infrastructure/issues/1602) we have decided that we will create a specific node that has the gitlab ee package installed, but is not servicing any form of requests.
This node is the one that will be used to run migrations.
Also, this node will have load balancing disabled and will point directly to the primary database ip (the Azure LB), this way we will not be piping queries through pgbouncer, but rather hit the DB directly.
So, actions are:
-
Create a node worker-blessed.fe.gitlab.com (for ex), this node can be really small and cheap, since it will have no load whatsoever. -
Apply the blessed role to this role -
Change the role to remove services and to make sure that we don't get any form of traffic. -
Change the role to point to the right database server -
Configure this node so it uses database port 5432 for Rails ( db_port
in the gitlab-rails section)
cc/ @gl-infra