This task collects some ideas to improve the cloudgw implementation. Mostly in the shape of cleanups and puppet code refactor.
- use a general puppet namespace wmcs rather than openstack. The cloudgw deployment is not tied to a specific openstack deployment. And we can reuse it for other projects, similar to cloudlb. This is https://gerrit.wikimedia.org/r/961363
- adopt general nftables base firewall profile (already happening via T336497: Add support for nftables in profile::firewall)
- renumber cloudgw <-> neutron subnet from /30 to /29 so each cloudgw node can have their own IP address (see T348140: Change cloud-instance-transport vlan subnets from /30 to /29)
- adopt cloud-private (see T338334: cloudgw: add cloud-private subnet support)
- replace keepalived with BGP (see T347687: cloudgw: replace keepalived with BGP)