Skip to content

Make OpenStack LB provider configurable per UC #14567

@judge-red

Description

@judge-red

Description of the feature you would like to add / User story

Currently the UC's LB provider must be specified on a per-datacenter level. However, sometimes a different LB provider makes more sense for a specific UC's use case. OpenStack octavia's LB providers Amphora and OVN differ a lot. Thus it should be possible to specify the provider during cluster creation.

Note that one of the differences in support are the LB methods, support for those is mutually exclusive, so if the LB provider is changed the LB method must be changed as well and thus both should be made configurable.

Solution details

  • During cluster creation (e.g. using the cluster creation wizard), the end user can optionally change the LB provider and LB method.
  • If the LB provider is changed, the available LB methods must be replaced and/or compatibility of the selected pair must be verified.
  • The chosen LB provider and LB method are then written into the UC's cloud-config.
  • The defaults for the UI should come from what's configured on the datacenter level.
  • Whether or not the end user may select/change the LB provider and method should be configurable on the datacenter level, as OpenStack can be configured with support just for Amphora, just for OVN or for both.

Alternative approaches

Hm, configure all datacenters twice with different names and LB providers/methods? (Or up to 4 times if all LB methods are to be supported).

Use cases

Amphora and OVN providers both have their strengths and weaknesses. To keep it simple, I'd say Amphora are way more powerful while OVN is way more efficient (both in terms of resource usage and speed/latency).

Additional information

Most OpenStack Cloud Controller Manager settings can be overwritten on a per-service base using annotations. This is actually true for the LB method too (so supporting just one LB method per LB provider would be acceptable I guess), but unfortunately it's not true for the LB provider.

Metadata

Metadata

Labels

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

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions