feature: support multiple regiond endpoints
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
Invalid
|
Undecided
|
Unassigned | ||
OpenStack HA Cluster Charm |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Currently MAAS client library only supports specifying a single target region controller endpoint.
For non-shared-L2 scenarios, however, there are multiple endpoints on different subnets without a shared VIP to hide them.
It should be possible to specify multiple target endpoints in a client library similar to how libpq handles this with PostgreSQL 10 (see https:/
The problem is that MAAS is the first thing to be deployed on a given OAM network and there are no load-balancers or other infrastructure to provide means of proper handling of multi-endpoint scenarios.
Any python software that uses maas client would benefit from the multi-endpoint connection logic.
A specific example would be charm-hacluster which is used to manage address records with 0 TTL in MAAS in order to solve the multi-endpoint problem for MAAS API services. It does solve a problem by creating those records but it cannot connect to multiple MAAS region endpoints by using MAAS client as it expects a single target endpoint.
https:/
https:/
An interim solution for this charm would be to deploy haproxy on every unit and use a localhost MAAS URL:
client -> http://
The charm would have to keep in mind that openstack API charms already deploy haproxy so it would have to use a separate config file and systemd unit to create a localhost load-balancer.
Changed in maas: | |
status: | Invalid → New |
I think we discussed this last week (or the one before); The approach the charms take to HA in non-shared l2 deployments is to use DNS-HA for the deployment; MAAS could take the same approach, providing a single managed DNS entry based on availability for clients to connect to.
Then we're not just implementing client-side loadbalancing in the hacluster charm.