From 8818966d1fec9c3228e25c12552fc564500eb095 Mon Sep 17 00:00:00 2001 From: Angus Lees Date: Thu, 23 Apr 2015 15:19:14 +1000 Subject: [PATCH] OpenStack: lb_method required when creating LbaaS pool This change takes lb-method from [LoadBalancer] section of cloud provider config file, defaulting to ROUND_ROBIN. Fixes #7199 --- pkg/cloudprovider/openstack/openstack.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/cloudprovider/openstack/openstack.go b/pkg/cloudprovider/openstack/openstack.go index 97c9d2ce22f..367d49bac11 100644 --- a/pkg/cloudprovider/openstack/openstack.go +++ b/pkg/cloudprovider/openstack/openstack.go @@ -67,6 +67,7 @@ func (d *MyDuration) UnmarshalText(text []byte) error { type LoadBalancerOpts struct { SubnetId string `gcfg:"subnet-id"` // required + LBMethod string `gfcg:"lb-method"` CreateMonitor bool `gcfg:"create-monitor"` MonitorDelay MyDuration `gcfg:"monitor-delay"` MonitorTimeout MyDuration `gcfg:"monitor-timeout"` @@ -485,10 +486,15 @@ func (lb *LoadBalancer) CreateTCPLoadBalancer(name, region string, externalIP ne return "", fmt.Errorf("unsupported load balancer affinity: %v", affinity) } + lbmethod := lb.opts.LBMethod + if lbmethod == "" { + lbmethod = pools.LBMethodRoundRobin + } pool, err := pools.Create(lb.network, pools.CreateOpts{ Name: name, Protocol: pools.ProtocolTCP, SubnetID: lb.opts.SubnetId, + LBMethod: lbmethod, }).Extract() if err != nil { return "", err