HomePhabricator

When `cluster.databases` is configured, read the master connection from it

Description

When cluster.databases is configured, read the master connection from it

Summary:
Ref T4571. Ref T10759. Ref T10758. This isn't complete, but gets most of the job done:

  • When cluster.databases is set up, most things ignore mysql.host now.
  • You can bin/storage upgrade and stuff works.
  • You can browse around in the web UI and stuff works.

There's still a lot of weird tricky stuff to navigate, and this has real no advantages over configuring a single server yet (no automatic failover, etc).

Test Plan:

  • Configured cluster.databases to point at my t1.micro hosts in EC2 (master + replica).
  • Ran bin/storage upgrade, got a new install setup on them properly.
  • Survived setup warnings, browsed around.
  • Switched back to local config, ran bin/storage upgrade, browsed around, went through setup checks.
  • Intentionally broke config (bad hosts, no masters) and things seemed to react reasonably well.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T4571, T10758, T10759

Differential Revision: https://secure.phabricator.com/D15668