Support disabling OpenStack Loadbalancer integration

Bug #1995746 reported by Nikolay Vinogradov
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Kubernetes Control Plane Charm
Fix Released
High
George Kraft
Openstack Integrator Charm
Fix Released
High
George Kraft

Bug Description

Hi all,

 Sometimes it might be useful to support alternative LB implementations when running Charmed Kubernetes on Openstack, such as MetalLB for example, or others. Openstack Cloud Controller Manager provides not only the load balancer integration, but also Cinder volume integration, so it is not easy to completely avoid deploying it on top of Charmed Kubernetes on Openstack. Then, if we wanted to use MetalLB (say in L2 mode) as the load balancer instead of Octavia and Cinder volume integration from openstack-integrator charm, we would deploy MetalLB operator next to openstack-integrator. However, by default, if we expose a Kubernetes service with LoadBalancer type, then both Openstack Cloud Controller Manager (C-C-M) and MetalLB attempt to create a load balancer for the service and only one of them will be actually providing the external IP for the service.

 To prevent that, it would be good if openstack-integrator charm allowed to disable Loadbalancer integration as described in [1]: by exposing 'enabled-lb' option that is propagated to the cloud.conf secret used by the C-C-M.

 It is worth mentioning here that MetalLB charm can also be improved to support filtering by loadBalancerClass [2], as per [3].

 [1] https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/openstack-cloud-controller-manager/using-openstack-cloud-controller-manager.md#load-balancer
 [2] https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
 [3] https://bugs.launchpad.net/operator-metallb/+bug/1994064/comments/1

Revision history for this message
Nikolay Vinogradov (nikolay.vinogradov) wrote :
George Kraft (cynerva)
Changed in charm-openstack-integrator:
importance: Undecided → High
status: New → In Progress
Changed in charm-kubernetes-master:
importance: Undecided → High
status: New → In Progress
status: In Progress → Triaged
Changed in charm-openstack-integrator:
status: In Progress → Triaged
George Kraft (cynerva)
Changed in charm-kubernetes-master:
milestone: none → 1.26+ck1
Changed in charm-openstack-integrator:
milestone: none → 1.26+ck1
George Kraft (cynerva)
Changed in charm-openstack-integrator:
assignee: nobody → George Kraft (cynerva)
Changed in charm-kubernetes-master:
assignee: nobody → George Kraft (cynerva)
status: Triaged → In Progress
Changed in charm-openstack-integrator:
status: Triaged → In Progress
Revision history for this message
George Kraft (cynerva) wrote :
George Kraft (cynerva)
Changed in charm-kubernetes-master:
status: In Progress → Fix Committed
Changed in charm-openstack-integrator:
status: In Progress → Fix Committed
Adam Dyess (addyess)
tags: added: backport-needed
Adam Dyess (addyess)
tags: removed: backport-needed
Changed in charm-kubernetes-master:
status: Fix Committed → Fix Released
Changed in charm-openstack-integrator:
status: Fix Committed → Fix Released
Revision history for this message
Nikolay Vinogradov (nikolay.vinogradov) wrote :

Probably it is worth mentioning here that the feature is available in the Openstack Cloud Controller Manager image since version 1.24 and newer.

See https://github.com/kubernetes/cloud-provider-openstack/pull/1777/files for more information.

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.