Skip to content

[Feature Request] Allow provisioning one Load Balancer per Availability Zone for multi-AZ deployments #2488

@sebltm

Description

@sebltm

/kind feature

Describe the solution you'd like
Today although the OpenStack cluster supports a multi-availability-zone deployment, the APIServer Load Balancer is only pinned to a single AZ. If this AZ goes down, even though the compute is multi-AZ, the cluster would still fail which defeats the purpose of the multiple availability zones.

Octavia does not support multi-availability-zone Load Balancers, so I instead propose allowing users to create one Load Balancer per AZ. In addition to this, the Load Balancers should have a setting to allow registering the Control Plane Machines to only the Load Balancer within their AZ (ensuring AZ local traffic), or to all the Load Balancers (where a Load Balancer in AZ1 could forward traffic to Load Balancer in AZ2 or 3).

In the case where a single AZ is given, the logic does not change from today. However in the case where there are multiple AZs given, then we make an assumption that the order in which the AZs are listed and the order in which the Subnets are listed in the APIServerLoadBalancer match and then we create a mapping of LB to Subnet.

Anything else you would like to add:
I have a draft version of this working, happy to contribute and get feedback

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureCategorizes issue or PR as related to a new feature.

    Type

    No type

    Projects

    Status

    Inbox

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions