From e51c629b4eb8fc91d3a89ede136aebf544cbffce Mon Sep 17 00:00:00 2001 From: Daniel Gonzalez Date: Thu, 19 Oct 2017 00:00:12 +0200 Subject: [PATCH] Make OpenStack LBaaS v2 Provider configurable Add option 'lb-provider' to the Loadbalancer section of the OpenStack cloudprovider configuration to allow using a different LBaaS v2 provider than the default. --- pkg/cloudprovider/providers/openstack/openstack.go | 1 + pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go | 1 + pkg/cloudprovider/providers/openstack/openstack_test.go | 1 + 3 files changed, 3 insertions(+) diff --git a/pkg/cloudprovider/providers/openstack/openstack.go b/pkg/cloudprovider/providers/openstack/openstack.go index e1fe42c84758..52f09bf91632 100644 --- a/pkg/cloudprovider/providers/openstack/openstack.go +++ b/pkg/cloudprovider/providers/openstack/openstack.go @@ -83,6 +83,7 @@ type LoadBalancerOpts struct { SubnetId string `gcfg:"subnet-id"` // overrides autodetection. FloatingNetworkId string `gcfg:"floating-network-id"` // If specified, will create floating ip for loadbalancer, or do not create floating ip. LBMethod string `gcfg:"lb-method"` // default to ROUND_ROBIN. + LBProvider string `gcfg:"lb-provider"` CreateMonitor bool `gcfg:"create-monitor"` MonitorDelay MyDuration `gcfg:"monitor-delay"` MonitorTimeout MyDuration `gcfg:"monitor-timeout"` diff --git a/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go b/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go index 75d0c851941f..7b89fca1541f 100644 --- a/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go +++ b/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go @@ -513,6 +513,7 @@ func (lbaas *LbaasV2) createLoadBalancer(service *v1.Service, name string, inter Name: name, Description: fmt.Sprintf("Kubernetes external service %s", name), VipSubnetID: lbaas.opts.SubnetId, + Provider: lbaas.opts.LBProvider, } loadBalancerIP := service.Spec.LoadBalancerIP diff --git a/pkg/cloudprovider/providers/openstack/openstack_test.go b/pkg/cloudprovider/providers/openstack/openstack_test.go index 3306d69584a9..e60ef7169d31 100644 --- a/pkg/cloudprovider/providers/openstack/openstack_test.go +++ b/pkg/cloudprovider/providers/openstack/openstack_test.go @@ -162,6 +162,7 @@ func TestCheckOpenStackOpts(t *testing.T) { SubnetId: "6261548e-ffde-4bc7-bd22-59c83578c5ef", FloatingNetworkId: "38b8b5f9-64dc-4424-bf86-679595714786", LBMethod: "ROUND_ROBIN", + LBProvider: "haproxy", CreateMonitor: true, MonitorDelay: delay, MonitorTimeout: timeout,