Skip to content

Commit

Permalink
[DualStack] Support FrontendIPConfig and reconcileLB()
Browse files Browse the repository at this point in the history
* DualStack feature code
* Refactor related functions and methods
* Refactor and add new UTs

Signed-off-by: Zhecheng Li <zhechengli@microsoft.com>
  • Loading branch information
lzhecheng committed May 5, 2023
1 parent 60c8565 commit cded8c5
Show file tree
Hide file tree
Showing 11 changed files with 1,722 additions and 519 deletions.
279 changes: 199 additions & 80 deletions pkg/provider/azure_loadbalancer.go

Large diffs are not rendered by default.

45 changes: 9 additions & 36 deletions pkg/provider/azure_loadbalancer_backendpool.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,15 +85,9 @@ func isLBBackendPoolsExisting(lbBackendPoolNames map[bool]string, bpName *string
func (bc *backendPoolTypeNodeIPConfig) CleanupVMSetFromBackendPoolByCondition(slb *network.LoadBalancer, service *v1.Service, nodes []*v1.Node, clusterName string, shouldRemoveVMSetFromSLB func(string) bool) (*network.LoadBalancer, error) {
v4Enabled, v6Enabled := getIPFamiliesEnabled(service)

lbBackendPoolNames := map[bool]string{
false: getBackendPoolName(clusterName, false),
true: getBackendPoolName(clusterName, true),
}
lbBackendPoolNames := getBackendPoolNames(clusterName)
lbResourceGroup := bc.getLoadBalancerResourceGroup()
lbBackendPoolIDs := map[bool]string{
false: bc.getBackendPoolID(pointer.StringDeref(slb.Name, ""), lbResourceGroup, lbBackendPoolNames[false]),
true: bc.getBackendPoolID(pointer.StringDeref(slb.Name, ""), lbResourceGroup, lbBackendPoolNames[true]),
}
lbBackendPoolIDs := bc.getBackendPoolIDs(clusterName, pointer.StringDeref(slb.Name, ""), lbResourceGroup)
newBackendPools := make([]network.BackendAddressPool, 0)
if slb.LoadBalancerPropertiesFormat != nil && slb.BackendAddressPools != nil {
newBackendPools = *slb.BackendAddressPools
Expand Down Expand Up @@ -176,14 +170,8 @@ func (bc *backendPoolTypeNodeIPConfig) ReconcileBackendPools(clusterName string,
lbName := *lb.Name

serviceName := getServiceName(service)
lbBackendPoolNames := map[bool]string{
false: getBackendPoolName(clusterName, false),
true: getBackendPoolName(clusterName, true),
}
lbBackendPoolIDs := map[bool]string{
false: bc.getBackendPoolID(lbName, bc.getLoadBalancerResourceGroup(), lbBackendPoolNames[false]),
true: bc.getBackendPoolID(lbName, bc.getLoadBalancerResourceGroup(), lbBackendPoolNames[true]),
}
lbBackendPoolNames := getBackendPoolNames(clusterName)
lbBackendPoolIDs := bc.getBackendPoolIDs(clusterName, lbName, bc.getLoadBalancerResourceGroup())
vmSetName := bc.mapLoadBalancerNameToVMSet(lbName, clusterName)
isBackendPoolPreConfigured := bc.isBackendPoolPreConfigured(service)

Expand Down Expand Up @@ -348,10 +336,7 @@ func getBackendIPConfigurationsToBeDeleted(

func (bc *backendPoolTypeNodeIPConfig) GetBackendPrivateIPs(clusterName string, service *v1.Service, lb *network.LoadBalancer) ([]string, []string) {
serviceName := getServiceName(service)
lbBackendPoolNames := map[bool]string{
false: getBackendPoolName(clusterName, false),
true: getBackendPoolName(clusterName, true),
}
lbBackendPoolNames := getBackendPoolNames(clusterName)
if lb.LoadBalancerPropertiesFormat == nil || lb.LoadBalancerPropertiesFormat.BackendAddressPools == nil {
return nil, nil
}
Expand Down Expand Up @@ -494,10 +479,7 @@ func (bi *backendPoolTypeNodeIP) EnsureHostsInPool(service *v1.Service, nodes []
}

func (bi *backendPoolTypeNodeIP) CleanupVMSetFromBackendPoolByCondition(slb *network.LoadBalancer, service *v1.Service, nodes []*v1.Node, clusterName string, shouldRemoveVMSetFromSLB func(string) bool) (*network.LoadBalancer, error) {
lbBackendPoolNames := map[bool]string{
false: getBackendPoolName(clusterName, false),
true: getBackendPoolName(clusterName, true),
}
lbBackendPoolNames := getBackendPoolNames(clusterName)
newBackendPools := make([]network.BackendAddressPool, 0)
if slb.LoadBalancerPropertiesFormat != nil && slb.BackendAddressPools != nil {
newBackendPools = *slb.BackendAddressPools
Expand Down Expand Up @@ -565,15 +547,9 @@ func (bi *backendPoolTypeNodeIP) ReconcileBackendPools(clusterName string, servi
foundBackendPools := map[bool]bool{}
lbName := *lb.Name
serviceName := getServiceName(service)
lbBackendPoolNames := map[bool]string{
false: getBackendPoolName(clusterName, false),
true: getBackendPoolName(clusterName, true),
}
lbBackendPoolNames := getBackendPoolNames(clusterName)
vmSetName := bi.mapLoadBalancerNameToVMSet(lbName, clusterName)
lbBackendPoolIDs := map[bool]string{
false: bi.getBackendPoolID(pointer.StringDeref(lb.Name, ""), bi.getLoadBalancerResourceGroup(), lbBackendPoolNames[false]),
true: bi.getBackendPoolID(pointer.StringDeref(lb.Name, ""), bi.getLoadBalancerResourceGroup(), lbBackendPoolNames[true]),
}
lbBackendPoolIDs := bi.getBackendPoolIDs(clusterName, pointer.StringDeref(lb.Name, ""), bi.getLoadBalancerResourceGroup())
isBackendPoolPreConfigured := bi.isBackendPoolPreConfigured(service)

mc := metrics.NewMetricContext("services", "migrate_to_ip_based_backend_pool", bi.ResourceGroup, bi.getNetworkResourceSubscriptionID(), serviceName)
Expand Down Expand Up @@ -686,10 +662,7 @@ func (bi *backendPoolTypeNodeIP) ReconcileBackendPools(clusterName string, servi

func (bi *backendPoolTypeNodeIP) GetBackendPrivateIPs(clusterName string, service *v1.Service, lb *network.LoadBalancer) ([]string, []string) {
serviceName := getServiceName(service)
lbBackendPoolNames := map[bool]string{
false: getBackendPoolName(clusterName, false),
true: getBackendPoolName(clusterName, true),
}
lbBackendPoolNames := getBackendPoolNames(clusterName)
if lb.LoadBalancerPropertiesFormat == nil || lb.LoadBalancerPropertiesFormat.BackendAddressPools == nil {
return nil, nil
}
Expand Down

0 comments on commit cded8c5

Please sign in to comment.