Skip to content

Commit

Permalink
fix: remove lb from vmss when the backend pool is empty
Browse files Browse the repository at this point in the history
  • Loading branch information
nilo19 committed Nov 16, 2022
1 parent e9a699a commit 357c69f
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 23 deletions.
10 changes: 4 additions & 6 deletions pkg/provider/azure_loadbalancer.go
Original file line number Diff line number Diff line change
Expand Up @@ -522,12 +522,10 @@ func (az *Cloud) cleanOrphanedLoadBalancer(lb *network.LoadBalancer, existingLBs

// safeDeleteLoadBalancer deletes the load balancer after decoupling it from the vmSet
func (az *Cloud) safeDeleteLoadBalancer(lb network.LoadBalancer, clusterName, vmSetName string, service *v1.Service) *retry.Error {
if isLBBackendPoolTypeIPConfig(service, &lb, clusterName) {
lbBackendPoolID := az.getBackendPoolID(to.String(lb.Name), az.getLoadBalancerResourceGroup(), getBackendPoolName(clusterName, service))
err := az.VMSet.EnsureBackendPoolDeleted(service, lbBackendPoolID, vmSetName, lb.BackendAddressPools, true)
if err != nil {
return retry.NewError(false, fmt.Errorf("safeDeleteLoadBalancer: failed to EnsureBackendPoolDeleted: %w", err))
}
lbBackendPoolID := az.getBackendPoolID(to.String(lb.Name), az.getLoadBalancerResourceGroup(), getBackendPoolName(clusterName, service))
err := az.VMSet.EnsureBackendPoolDeleted(service, lbBackendPoolID, vmSetName, lb.BackendAddressPools, true)
if err != nil {
return retry.NewError(false, fmt.Errorf("safeDeleteLoadBalancer: failed to EnsureBackendPoolDeleted: %w", err))
}

klog.V(2).Infof("safeDeleteLoadBalancer: deleting LB %s", to.String(lb.Name))
Expand Down
16 changes: 0 additions & 16 deletions pkg/provider/azure_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -261,22 +261,6 @@ func getNodePrivateIPAddresses(node *v1.Node) []string {
return addresses
}

func isLBBackendPoolTypeIPConfig(service *v1.Service, lb *network.LoadBalancer, clusterName string) bool {
if lb == nil || lb.LoadBalancerPropertiesFormat == nil || lb.BackendAddressPools == nil {
klog.V(4).Infof("isLBBackendPoolTypeIPConfig: no backend pools in the LB %s", to.String(lb.Name))
return false
}
lbBackendPoolName := getBackendPoolName(clusterName, service)
for _, bp := range *lb.BackendAddressPools {
if strings.EqualFold(to.String(bp.Name), lbBackendPoolName) {
return bp.BackendAddressPoolPropertiesFormat != nil &&
bp.BackendIPConfigurations != nil &&
len(*bp.BackendIPConfigurations) != 0
}
}
return false
}

func getBoolValueFromServiceAnnotations(service *v1.Service, key string) bool {
if l, found := service.Annotations[key]; found {
return strings.EqualFold(strings.TrimSpace(l), consts.TrueAnnotationValue)
Expand Down
2 changes: 1 addition & 1 deletion pkg/provider/azure_vmss.go
Original file line number Diff line number Diff line change
Expand Up @@ -1732,7 +1732,7 @@ func (ss *ScaleSet) ensureBackendPoolDeletedFromVMSS(backendPoolID, vmSetName st
if err != nil {
return err
}
if !ss.DisableAvailabilitySetNodes || ss.EnableVmssFlexNodes {
if ss.EnableVmssFlexNodes {
flexScaleSet := ss.flexScaleSet.(*FlexScaleSet)
err = flexScaleSet.ensureBackendPoolDeletedFromVmssFlex(backendPoolID, vmSetName)
}
Expand Down

0 comments on commit 357c69f

Please sign in to comment.