From 7682e272457db74fe366195db53260283a0135a4 Mon Sep 17 00:00:00 2001 From: Pengfei Ni Date: Wed, 31 Jan 2018 10:27:27 +0800 Subject: [PATCH] Ensure IP is set for Azure internal loadbalancer --- .../providers/azure/azure_loadbalancer.go | 13 +++++++++++++ pkg/cloudprovider/providers/azure/azure_wrap.go | 16 ++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/pkg/cloudprovider/providers/azure/azure_loadbalancer.go b/pkg/cloudprovider/providers/azure/azure_loadbalancer.go index 9d4551eefab0d..8cb2c364cfd74 100644 --- a/pkg/cloudprovider/providers/azure/azure_loadbalancer.go +++ b/pkg/cloudprovider/providers/azure/azure_loadbalancer.go @@ -772,6 +772,19 @@ func (az *Cloud) reconcileLoadBalancer(clusterName string, service *v1.Service, glog.V(2).Infof("ensure(%s) abort backoff: lb(%s) - updating", serviceName, lbName) return nil, err } + + if isInternal { + // Refresh updated lb which will be used later in other places. + newLB, exist, err := az.getAzureLoadBalancer(lbName) + if err != nil { + glog.V(2).Infof("getAzureLoadBalancer(%s) failed: %v", lbName, err) + return nil, err + } + if !exist { + return nil, fmt.Errorf("load balancer %q not found", lbName) + } + lb = &newLB + } } } diff --git a/pkg/cloudprovider/providers/azure/azure_wrap.go b/pkg/cloudprovider/providers/azure/azure_wrap.go index d80ac4455c0ca..e37ac8ca950d7 100644 --- a/pkg/cloudprovider/providers/azure/azure_wrap.go +++ b/pkg/cloudprovider/providers/azure/azure_wrap.go @@ -173,3 +173,19 @@ func (az *Cloud) getSubnet(virtualNetworkName string, subnetName string) (subnet return subnet, exists, err } + +func (az *Cloud) getAzureLoadBalancer(name string) (lb network.LoadBalancer, exists bool, err error) { + var realErr error + + lb, err = az.LoadBalancerClient.Get(az.ResourceGroup, name, "") + exists, realErr = checkResourceExistsFromError(err) + if realErr != nil { + return lb, false, realErr + } + + if !exists { + return lb, false, nil + } + + return lb, exists, err +}