Most of our current puppet code expects our servers to be in pairs, a primary and secondary. Now that we have proper HA support in nearly all cases, there's no reason to think of things this way -- instead, it should all be list-based. So, for example, instead of
profile::openstack::eqiad1::nova_controller: 'cloudcontrol1003.wikimedia.org' profile::openstack::eqiad1::nova_controller_standby: 'cloudcontrol1004.wikimedia.org'
we should have something like
profile::openstack::eqiad1::nova_controllers: - 'cloudcontrol1003.wikimedia.org' - 'cloudcontrol1004.wikimedia.org'
This will be a big refactor but should be mostly no-ops that we can validate with the PCC.
The only exception will be glance, which still has a primary/secondary image store; we should probably add special-case code for that so it can be easily extracted once the backend moves to ceph.