Support ServiceAnnotationLoadBalancerFloatingNetworkId for LB v1

This commit is contained in:
FengyunPan 2017-08-21 07:48:07 +08:00
parent e633a1604f
commit e8fe9b65c5

View File

@ -1281,6 +1281,9 @@ func (lb *LbaasV1) EnsureLoadBalancer(clusterName string, apiService *v1.Service
lb.opts.SubnetId = subnetID lb.opts.SubnetId = subnetID
} }
floatingPool := getStringFromServiceAnnotation(apiService, ServiceAnnotationLoadBalancerFloatingNetworkId, lb.opts.FloatingNetworkId)
glog.V(4).Infof("EnsureLoadBalancer using floatingPool: %v", floatingPool)
ports := apiService.Spec.Ports ports := apiService.Spec.Ports
if len(ports) > 1 { if len(ports) > 1 {
return nil, fmt.Errorf("multiple ports are not supported in openstack v1 load balancers") return nil, fmt.Errorf("multiple ports are not supported in openstack v1 load balancers")
@ -1404,9 +1407,9 @@ func (lb *LbaasV1) EnsureLoadBalancer(clusterName string, apiService *v1.Service
status.Ingress = []v1.LoadBalancerIngress{{IP: vip.Address}} status.Ingress = []v1.LoadBalancerIngress{{IP: vip.Address}}
if lb.opts.FloatingNetworkId != "" { if floatingPool != "" {
floatIPOpts := floatingips.CreateOpts{ floatIPOpts := floatingips.CreateOpts{
FloatingNetworkID: lb.opts.FloatingNetworkId, FloatingNetworkID: floatingPool,
PortID: vip.PortID, PortID: vip.PortID,
} }
floatIP, err := floatingips.Create(lb.network, floatIPOpts).Extract() floatIP, err := floatingips.Create(lb.network, floatIPOpts).Extract()
@ -1492,7 +1495,7 @@ func (lb *LbaasV1) EnsureLoadBalancerDeleted(clusterName string, service *v1.Ser
return err return err
} }
if lb.opts.FloatingNetworkId != "" && vip != nil { if vip != nil && vip.PortID != "" {
floatingIP, err := getFloatingIPByPortID(lb.network, vip.PortID) floatingIP, err := getFloatingIPByPortID(lb.network, vip.PortID)
if err != nil && !isNotFound(err) { if err != nil && !isNotFound(err) {
return err return err