Geo: Automate preflight-checks
## Introduction
When performing a failover, systems administrators should perform a number of preflight checks *before* promoting a secondary to a primary. These checks are listed here https://docs.gitlab.com/ee/administration/geo/disaster_recovery/planned_failover.html#preflight-checks
## Problem to solve
Many of the preflight checks are manual operations and require systems administrators to perform various actions in the UI and via command line. We should automate as many as possible and run them before issuing `gitlab-ctl promote-to-primary-node`.
## Proposal
**CAVEAT:** For the first iteration, we are focusing on automating those steps that don't require any advanced orchestration via Consul or similar.
* When running gitlab-ctl promote-to-primary-node, preflight checks should run first.
* If checks fail, abort promotion.
* Offer suggestions on what to do when checks fail
* Checks should be idempotent
### Permissions and Security
Some checks may require `sudo` rights
### Documentation
https://docs.gitlab.com/ee/administration/geo/disaster_recovery/planned_failover.html#preflight-checks needs to be updated in line with changes made in this epic.
### Availability & Testing
- Should be tested manuall in GCP and in staging
### What does success look like, and how can we measure that?
- Reduce the number of manual preflight checks (need to figure out how to count most acurately)
### What is the type of buyer?
Premium and Ultimate
epic