From 87a4805ba47524b5a283f222f2333ce12dae75c6 Mon Sep 17 00:00:00 2001 From: Qi Ni Date: Fri, 23 Oct 2020 08:41:39 +0800 Subject: [PATCH] Update the frontend IP config when the service's `pipName` annotation is changed --- .../azure/azure_loadbalancer.go | 13 ++++++------- .../azure/azure_loadbalancer_test.go | 14 -------------- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go index cd0af314f4b8..930b8cfe1e44 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go @@ -531,6 +531,10 @@ func (az *Cloud) findServiceIPAddress(ctx context.Context, clusterName string, s return service.Spec.LoadBalancerIP, nil } + if len(service.Status.LoadBalancer.Ingress) > 0 && len(service.Status.LoadBalancer.Ingress[0].IP) > 0 { + return service.Status.LoadBalancer.Ingress[0].IP, nil + } + _, lbStatus, existsLb, err := az.getServiceLoadBalancer(service, clusterName, nil, false) if err != nil { return "", err @@ -664,9 +668,7 @@ func (az *Cloud) ensurePublicIPExists(service *v1.Service, pipName string, domai klog.V(2).Infof("service(%s): pip(%s) - creating as ipv4 for clusterIP:%v", serviceName, *pip.Name, service.Spec.ClusterIP) } - klog.V(2).Infof("ensurePublicIPExists for service(%s): pip(%s) - creating", serviceName, *pip.Name) - - klog.V(10).Infof("CreateOrUpdatePIP(%s, %q): start", pipResourceGroup, *pip.Name) + klog.V(2).Infof("CreateOrUpdatePIP(%s, %q): start", pipResourceGroup, *pip.Name) err = az.CreateOrUpdatePIP(service, pipResourceGroup, pip) if err != nil { klog.V(2).Infof("ensure(%s) abort backoff: pip(%s)", serviceName, *pip.Name) @@ -835,9 +837,6 @@ func (az *Cloud) isFrontendIPChanged(clusterName string, config network.Frontend } return config.PrivateIPAllocationMethod != network.Static || !strings.EqualFold(loadBalancerIP, to.String(config.PrivateIPAddress)), nil } - if loadBalancerIP == "" { - return false, nil - } pipName, _, err := az.determinePublicIPName(clusterName, service) if err != nil { return false, err @@ -1212,7 +1211,7 @@ func (az *Cloud) reconcileLoadBalancer(clusterName string, service *v1.Service, ID: to.StringPtr(fmt.Sprintf(frontendIPConfigIDTemplate, az.SubscriptionID, az.ResourceGroup, *lb.Name, defaultLBFrontendIPConfigName)), FrontendIPConfigurationPropertiesFormat: fipConfigurationProperties, }) - klog.Infof("reconcileLoadBalancer for service (%s)(%t): lb frontendconfig(%s) - adding", serviceName, wantLb, defaultLBFrontendIPConfigName) + klog.V(2).Infof("reconcileLoadBalancer for service (%s)(%t): lb frontendconfig(%s) - adding", serviceName, wantLb, defaultLBFrontendIPConfigName) dirtyConfigs = true } } diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer_test.go index 452a6b76fe6d..a98d8bb8062d 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer_test.go @@ -1373,20 +1373,6 @@ func TestIsFrontendIPChanged(t *testing.T) { expectedFlag: true, expectedError: false, }, - { - desc: "isFrontendIPChanged shall return false if no loadbalancerIP is given", - config: network.FrontendIPConfiguration{ - Name: to.StringPtr("btest1-name"), - FrontendIPConfigurationPropertiesFormat: &network.FrontendIPConfigurationPropertiesFormat{ - PrivateIPAllocationMethod: network.IPAllocationMethod("static"), - PrivateIPAddress: to.StringPtr("1.1.1.2"), - }, - }, - lbFrontendIPConfigName: "btest1-name", - service: getTestService("test1", v1.ProtocolTCP, nil, false, 80), - expectedFlag: false, - expectedError: false, - }, { desc: "isFrontendIPChanged shall return false if config.PublicIPAddress == nil", config: network.FrontendIPConfiguration{