feature: support multiple regiond endpoints

Bug #1796395 reported by Dmitrii Shcherbakov
12
This bug affects 2 people
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://bugs.launchpad.net/maas/+bug/1791957).

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://github.com/openstack/charm-hacluster/blob/stable/18.08/ocf/maas/maas_dns.py#L60-L66
https://github.com/openstack/charm-hacluster/blob/stable/18.08/ocf/maas/dns

An interim solution for this charm would be to deploy haproxy on every unit and use a localhost MAAS URL:

client -> http://localhost:5240/MAAS -> haproxy -> multiple maas region endpoints

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.

Tags: cpe-onsite
Revision history for this message
James Page (james-page) wrote :

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.

Changed in charm-hacluster:
status: New → Invalid
Revision history for this message
Adam Collard (adam-collard) wrote :

This bug has not seen any activity in the last 6 months, so it is being automatically closed.

If you are still experiencing this issue, please feel free to re-open.

MAAS Team

Changed in maas:
status: New → Invalid
Changed in maas:
status: Invalid → New
Revision history for this message
Alberto Donato (ack) wrote :

Thanks for your feature request, please could you start a thread over on our Discourse (https://discourse.maas.io/c/features) to discuss the feature?

Changed in maas:
status: New → Invalid
Revision history for this message
Dmitrii Shcherbakov (dmitriis) wrote :
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.