The master switchovers have been tremendously simplified since Amir created https://switchmaster.toolforge.org/. Right now it supports sX and x1.
We need to include external store sections (only those which are writable - currently es6 and es7).
The template needs to be adapted, as it is slightly different than a sX
Depending on the active DC (as we do with sX) we need to provide two different templates, the one for the primary DC (where writes need to be disabled) and the one for the secondary DC, where writes don't need any changes.
This would be a template for the primary DC (where writes HAVE to be disabled):
Some considerations for the above template:
- Puppet patches should be generated automatically like we do with sX
- DNS patches should be generated automatically like we do with sX
- MediaWiki config writes disablement patch isn't required to be generated in this iteration, instead just reference to an example patch like: https://gerrit.wikimedia.org/r/c/operations/mediawiki-config/+/922376
This would be a template for the secondary DC (where writes do not need to be touched):
Some considerations for the above template:
- Puppet patches should be generated automatically like we do with sX
- DNS aren't needed for secondary DC switches.
- MediaWiki references aren't needed for secondary DC switches.
This task is only for writable sections (as of today es6 and es7) as RO sections (es1, es2, es3, es4, es5) only need a dbctl command (which is really a NOOP so no need to cover for them)
For now the Switchover Master menu should only allow the user to use es6 and es7, if any other esX is used, an error should be displayed.