Skip to content

Commit

Permalink
Merge pull request #2431 from k8s-infra-cherrypick-robot/cherry-pick-…
Browse files Browse the repository at this point in the history
…2430-to-release-1.23

[release-1.23] chore: get node private IPs from cache but NIC
  • Loading branch information
k8s-ci-robot committed Sep 30, 2022
2 parents 6f84607 + e3ff13b commit cbd6044
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 12 deletions.
21 changes: 10 additions & 11 deletions pkg/provider/azure_loadbalancer_backendpool.go
Original file line number Diff line number Diff line change
Expand Up @@ -251,19 +251,18 @@ func (bc *backendPoolTypeNodeIPConfig) GetBackendPrivateIPs(clusterName string,
klog.Errorf("bc.GetBackendPrivateIPs for service (%s): GetNodeNameByIPConfigurationID failed with error: %v", serviceName, err)
continue
}
privateIPs, err := bc.VMSet.GetPrivateIPsByNodeName(nodeName)
if err != nil {
klog.Errorf("bc.GetBackendPrivateIPs for service (%s): GetPrivateIPsByNodeName(%s) failed with error: %v", serviceName, nodeName, err)
privateIPsSet, ok := bc.nodePrivateIPs[nodeName]
if !ok {
klog.Warningf("bc.GetBackendPrivateIPs for service (%s): failed to get private IPs of node %s", serviceName, nodeName)
continue
}
if privateIPs != nil {
klog.V(2).Infof("bc.GetBackendPrivateIPs for service (%s): lb backendpool - found private IPs %v of node %s", serviceName, privateIPs, nodeName)
for _, ip := range privateIPs {
if utilnet.IsIPv4String(ip) {
backendPrivateIPv4s.Insert(ip)
} else {
backendPrivateIPv6s.Insert(ip)
}
privateIPs := privateIPsSet.List()
for _, ip := range privateIPs {
klog.V(2).Infof("bc.GetBackendPrivateIPs for service (%s): lb backendpool - found private IPs %s of node %s", serviceName, ip, nodeName)
if utilnet.IsIPv4String(ip) {
backendPrivateIPv4s.Insert(ip)
} else {
backendPrivateIPv6s.Insert(ip)
}
}
}
Expand Down
22 changes: 21 additions & 1 deletion pkg/provider/azure_loadbalancer_backendpool_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -464,7 +464,6 @@ func TestReconcileBackendPoolsNodeIPConfigToIP(t *testing.T) {

az := GetTestCloud(ctrl)
az.VMSet = mockVMSet
//az.LoadBalancerClient = mockLBClient
bi := newBackendPoolTypeNodeIP(az)
svc := getTestService("test", v1.ProtocolTCP, nil, false, 80)
_, _, err := bi.ReconcileBackendPools(testClusterName, &svc, &lb)
Expand Down Expand Up @@ -526,3 +525,24 @@ func TestRemoveNodeIPAddressFromBackendPool(t *testing.T) {
removeNodeIPAddressesFromBackendPool(backendPool, nodeIPAddresses, false)
assert.Equal(t, expectedBackendPool, backendPool)
}

func TestGetBackendPrivateIPsNodeIPConfig(t *testing.T) {
ctrl := gomock.NewController(t)
defer ctrl.Finish()

lb := buildDefaultTestLB(testClusterName, []string{"ipconfig1", "ipconfig2"})
mockVMSet := NewMockVMSet(ctrl)
mockVMSet.EXPECT().GetNodeNameByIPConfigurationID("ipconfig1").Return("node1", "", nil)
mockVMSet.EXPECT().GetNodeNameByIPConfigurationID("ipconfig2").Return("node2", "", nil)

az := GetTestCloud(ctrl)
az.nodePrivateIPs = map[string]sets.String{
"node1": sets.NewString("1.2.3.4", "fe80::1"),
}
az.VMSet = mockVMSet
bc := newBackendPoolTypeNodeIPConfig(az)
svc := getTestService("svc1", "TCP", nil, false)
ipv4, ipv6 := bc.GetBackendPrivateIPs(testClusterName, &svc, &lb)
assert.Equal(t, []string{"1.2.3.4"}, ipv4)
assert.Equal(t, []string{"fe80::1"}, ipv6)
}

0 comments on commit cbd6044

Please sign in to comment.