diff --git a/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go b/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go index c5d95ffb620..4dc5b8bf6c9 100644 --- a/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go +++ b/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go @@ -881,10 +881,6 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv glog.V(2).Infof("Deleted obsolete listener: %s", listener.ID) } - status := &v1.LoadBalancerStatus{} - - status.Ingress = []v1.LoadBalancerIngress{{IP: loadbalancer.VipAddress}} - portID := loadbalancer.VipPortID floatIP, err := getFloatingIPByPortID(lbaas.network, portID) if err != nil && err != ErrNotFound { @@ -907,8 +903,13 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv return nil, fmt.Errorf("Error creating LB floatingip %+v: %v", floatIPOpts, err) } } + + status := &v1.LoadBalancerStatus{} + if floatIP != nil { - status.Ingress = append(status.Ingress, v1.LoadBalancerIngress{IP: floatIP.FloatingIP}) + status.Ingress = []v1.LoadBalancerIngress{{IP: floatIP.FloatingIP}} + } else { + status.Ingress = []v1.LoadBalancerIngress{{IP: loadbalancer.VipAddress}} } if lbaas.opts.ManageSecurityGroups { @@ -1474,9 +1475,6 @@ func (lb *LbaasV1) EnsureLoadBalancer(clusterName string, apiService *v1.Service } status := &v1.LoadBalancerStatus{} - - status.Ingress = []v1.LoadBalancerIngress{{IP: vip.Address}} - if floatingPool != "" && !internalAnnotation { floatIPOpts := floatingips.CreateOpts{ FloatingNetworkID: floatingPool, @@ -1493,7 +1491,9 @@ func (lb *LbaasV1) EnsureLoadBalancer(clusterName string, apiService *v1.Service return nil, fmt.Errorf("Error creating floatingip for openstack load balancer %s: %v", name, err) } - status.Ingress = append(status.Ingress, v1.LoadBalancerIngress{IP: floatIP.FloatingIP}) + status.Ingress = []v1.LoadBalancerIngress{{IP: floatIP.FloatingIP}} + } else { + status.Ingress = []v1.LoadBalancerIngress{{IP: vip.Address}} } return status, nil