Skip to content

Commit feb195e

Browse files
authored
Merge pull request kubernetes#90834 from nilo19/bug/fix-flaky-test
Azure: Fix a flaky test for azure vmss.
2 parents 87e5d4e + 991aada commit feb195e

File tree

1 file changed

+31
-23
lines changed

1 file changed

+31
-23
lines changed

staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_test.go

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,14 @@ func newTestScaleSetWithState(ctrl *gomock.Controller) (*scaleSet, error) {
6767
return ss.(*scaleSet), nil
6868
}
6969

70-
func buildTestVMSS(lbBackendpoolIDs []string) compute.VirtualMachineScaleSet {
70+
func buildTestVMSS(name string, lbBackendpoolIDs []string) compute.VirtualMachineScaleSet {
7171
lbBackendpools := make([]compute.SubResource, 0)
7272
for _, id := range lbBackendpoolIDs {
7373
lbBackendpools = append(lbBackendpools, compute.SubResource{ID: to.StringPtr(id)})
7474
}
7575

7676
expectedVMSS := compute.VirtualMachineScaleSet{
77-
Name: to.StringPtr(testVMSSName),
77+
Name: &name,
7878
VirtualMachineScaleSetProperties: &compute.VirtualMachineScaleSetProperties{
7979
ProvisioningState: to.StringPtr("Running"),
8080
VirtualMachineProfile: &compute.VirtualMachineScaleSetVMProfile{
@@ -1732,7 +1732,7 @@ func TestEnsureVMSSInPool(t *testing.T) {
17321732
ss.LoadBalancerSku = loadBalancerSkuStandard
17331733
}
17341734

1735-
expectedVMSS := buildTestVMSS([]string{testLBBackendpoolID0})
1735+
expectedVMSS := buildTestVMSS(testVMSSName, []string{testLBBackendpoolID0})
17361736
if test.isVMSSDeallocating {
17371737
expectedVMSS.ProvisioningState = &virtualMachineScaleSetsDeallocating
17381738
}
@@ -1829,7 +1829,7 @@ func TestEnsureHostsInPool(t *testing.T) {
18291829
ss.LoadBalancerSku = loadBalancerSkuStandard
18301830
ss.ExcludeMasterFromStandardLB = to.BoolPtr(true)
18311831

1832-
expectedVMSS := buildTestVMSS([]string{testLBBackendpoolID0})
1832+
expectedVMSS := buildTestVMSS(testVMSSName, []string{testLBBackendpoolID0})
18331833
mockVMSSClient := ss.cloud.VirtualMachineScaleSetsClient.(*mockvmssclient.MockInterface)
18341834
mockVMSSClient.EXPECT().List(gomock.Any(), ss.ResourceGroup).Return([]compute.VirtualMachineScaleSet{expectedVMSS}, nil).AnyTimes()
18351835
mockVMSSClient.EXPECT().Get(gomock.Any(), ss.ResourceGroup, testVMSSName).Return(expectedVMSS, nil).MaxTimes(1)
@@ -2006,7 +2006,7 @@ func TestEnsureBackendPoolDeletedFromVMSS(t *testing.T) {
20062006

20072007
ss.LoadBalancerSku = loadBalancerSkuStandard
20082008

2009-
expectedVMSS := buildTestVMSS([]string{testLBBackendpoolID0})
2009+
expectedVMSS := buildTestVMSS(testVMSSName, []string{testLBBackendpoolID0})
20102010
if test.isVMSSDeallocating {
20112011
expectedVMSS.ProvisioningState = &virtualMachineScaleSetsDeallocating
20122012
}
@@ -2100,7 +2100,7 @@ func TestEnsureBackendPoolDeleted(t *testing.T) {
21002100
ss, err := newTestScaleSet(ctrl)
21012101
assert.NoError(t, err, test.description)
21022102

2103-
expectedVMSS := buildTestVMSS([]string{testLBBackendpoolID0})
2103+
expectedVMSS := buildTestVMSS(testVMSSName, []string{testLBBackendpoolID0})
21042104
mockVMSSClient := ss.cloud.VirtualMachineScaleSetsClient.(*mockvmssclient.MockInterface)
21052105
mockVMSSClient.EXPECT().List(gomock.Any(), ss.ResourceGroup).Return([]compute.VirtualMachineScaleSet{expectedVMSS}, nil).AnyTimes()
21062106
mockVMSSClient.EXPECT().Get(gomock.Any(), ss.ResourceGroup, testVMSSName).Return(expectedVMSS, nil).MaxTimes(1)
@@ -2130,7 +2130,7 @@ func TestEnsureBackendPoolDeletedConcurrently(t *testing.T) {
21302130
BackendIPConfigurations: &[]network.InterfaceIPConfiguration{
21312131
{
21322132
Name: to.StringPtr("ip-1"),
2133-
ID: to.StringPtr("/subscriptions/sub/resourceGroups/rg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss/virtualMachines/0/networkInterfaces/nic"),
2133+
ID: to.StringPtr("/subscriptions/sub/resourceGroups/rg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss-0/virtualMachines/0/networkInterfaces/nic"),
21342134
},
21352135
},
21362136
},
@@ -2141,7 +2141,7 @@ func TestEnsureBackendPoolDeletedConcurrently(t *testing.T) {
21412141
BackendIPConfigurations: &[]network.InterfaceIPConfiguration{
21422142
{
21432143
Name: to.StringPtr("ip-1"),
2144-
ID: to.StringPtr("/subscriptions/sub/resourceGroups/rg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss/virtualMachines/0/networkInterfaces/nic"),
2144+
ID: to.StringPtr("/subscriptions/sub/resourceGroups/rg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss-1/virtualMachines/0/networkInterfaces/nic"),
21452145
},
21462146
},
21472147
},
@@ -2153,35 +2153,43 @@ func TestEnsureBackendPoolDeletedConcurrently(t *testing.T) {
21532153
BackendIPConfigurations: &[]network.InterfaceIPConfiguration{
21542154
{
21552155
Name: to.StringPtr("ip-1"),
2156-
ID: to.StringPtr("/subscriptions/sub/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss/virtualMachines/0/networkInterfaces/nic"),
2156+
ID: to.StringPtr("/subscriptions/sub/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss-0/virtualMachines/0/networkInterfaces/nic"),
21572157
},
21582158
},
21592159
},
21602160
},
21612161
}
2162-
expectedVMSS := buildTestVMSS([]string{testLBBackendpoolID0, testLBBackendpoolID1})
2163-
2164-
expectedVMSSVMs, _, _ := buildTestVirtualMachineEnv(ss.cloud, testVMSSName, "", 0, []string{"vmss-vm-000000"}, "succeeded")
2165-
vmssVMNetworkConfigs := expectedVMSSVMs[0].NetworkProfileConfiguration
2166-
vmssVMIPConfigs := (*vmssVMNetworkConfigs.NetworkInterfaceConfigurations)[0].VirtualMachineScaleSetNetworkConfigurationProperties.IPConfigurations
2167-
lbBackendpools := (*vmssVMIPConfigs)[0].LoadBalancerBackendAddressPools
2168-
*lbBackendpools = append(*lbBackendpools, compute.SubResource{ID: to.StringPtr(testLBBackendpoolID1)})
2162+
vmss0 := buildTestVMSS("vmss-0", []string{testLBBackendpoolID0, testLBBackendpoolID1})
2163+
vmss1 := buildTestVMSS("vmss-1", []string{testLBBackendpoolID0, testLBBackendpoolID1})
2164+
2165+
expectedVMSSVMsOfVMSS0, _, _ := buildTestVirtualMachineEnv(ss.cloud, "vmss-0", "", 0, []string{"vmss-vm-000000"}, "succeeded")
2166+
expectedVMSSVMsOfVMSS1, _, _ := buildTestVirtualMachineEnv(ss.cloud, "vmss-1", "", 0, []string{"vmss-vm-000001"}, "succeeded")
2167+
for _, expectedVMSSVMs := range [][]compute.VirtualMachineScaleSetVM{expectedVMSSVMsOfVMSS0, expectedVMSSVMsOfVMSS1} {
2168+
vmssVMNetworkConfigs := expectedVMSSVMs[0].NetworkProfileConfiguration
2169+
vmssVMIPConfigs := (*vmssVMNetworkConfigs.NetworkInterfaceConfigurations)[0].VirtualMachineScaleSetNetworkConfigurationProperties.IPConfigurations
2170+
lbBackendpools := (*vmssVMIPConfigs)[0].LoadBalancerBackendAddressPools
2171+
*lbBackendpools = append(*lbBackendpools, compute.SubResource{ID: to.StringPtr(testLBBackendpoolID1)})
2172+
}
21692173

21702174
mockVMSSClient := ss.cloud.VirtualMachineScaleSetsClient.(*mockvmssclient.MockInterface)
2171-
mockVMSSClient.EXPECT().List(gomock.Any(), ss.ResourceGroup).Return([]compute.VirtualMachineScaleSet{expectedVMSS}, nil).AnyTimes()
2172-
mockVMSSClient.EXPECT().Get(gomock.Any(), ss.ResourceGroup, testVMSSName).Return(expectedVMSS, nil).MaxTimes(2)
2173-
mockVMSSClient.EXPECT().CreateOrUpdate(gomock.Any(), ss.ResourceGroup, testVMSSName, gomock.Any()).Return(nil).Times(2)
2175+
mockVMSSClient.EXPECT().List(gomock.Any(), ss.ResourceGroup).Return([]compute.VirtualMachineScaleSet{vmss0, vmss1}, nil).AnyTimes()
2176+
mockVMSSClient.EXPECT().Get(gomock.Any(), ss.ResourceGroup, "vmss-0").Return(vmss0, nil).MaxTimes(2)
2177+
mockVMSSClient.EXPECT().Get(gomock.Any(), ss.ResourceGroup, "vmss-1").Return(vmss1, nil).MaxTimes(2)
2178+
mockVMSSClient.EXPECT().CreateOrUpdate(gomock.Any(), ss.ResourceGroup, gomock.Any(), gomock.Any()).Return(nil).Times(2)
21742179

21752180
mockVMSSVMClient := ss.cloud.VirtualMachineScaleSetVMsClient.(*mockvmssvmclient.MockInterface)
2176-
mockVMSSVMClient.EXPECT().List(gomock.Any(), ss.ResourceGroup, testVMSSName, gomock.Any()).Return(expectedVMSSVMs, nil).AnyTimes()
2177-
mockVMSSVMClient.EXPECT().UpdateVMs(gomock.Any(), ss.ResourceGroup, testVMSSName, gomock.Any(), gomock.Any()).Return(nil).Times(2)
2181+
mockVMSSVMClient.EXPECT().List(gomock.Any(), ss.ResourceGroup, "vmss-0", gomock.Any()).Return(expectedVMSSVMsOfVMSS0, nil).AnyTimes()
2182+
mockVMSSVMClient.EXPECT().List(gomock.Any(), ss.ResourceGroup, "vmss-1", gomock.Any()).Return(expectedVMSSVMsOfVMSS1, nil).AnyTimes()
2183+
mockVMSSVMClient.EXPECT().UpdateVMs(gomock.Any(), ss.ResourceGroup, gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).Times(2)
21782184

21792185
backendpoolAddressIDs := []string{testLBBackendpoolID0, testLBBackendpoolID1, testLBBackendpoolID2}
2186+
testVMSSNames := []string{"vmss-0", "vmss-1", "vmss-0"}
21802187
testFunc := make([]func() error, 0)
2181-
for _, id := range backendpoolAddressIDs {
2188+
for i, id := range backendpoolAddressIDs {
2189+
i := i
21822190
id := id
21832191
testFunc = append(testFunc, func() error {
2184-
return ss.EnsureBackendPoolDeleted(&v1.Service{}, id, testVMSSName, backendAddressPools)
2192+
return ss.EnsureBackendPoolDeleted(&v1.Service{}, id, testVMSSNames[i], backendAddressPools)
21852193
})
21862194
}
21872195
errs := utilerrors.AggregateGoroutines(testFunc...)

0 commit comments

Comments
 (0)