mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 11:21:47 +00:00
Merge pull request #90834 from nilo19/bug/fix-flaky-test
Azure: Fix a flaky test for azure vmss.
This commit is contained in:
commit
feb195ea22
@ -67,14 +67,14 @@ func newTestScaleSetWithState(ctrl *gomock.Controller) (*scaleSet, error) {
|
||||
return ss.(*scaleSet), nil
|
||||
}
|
||||
|
||||
func buildTestVMSS(lbBackendpoolIDs []string) compute.VirtualMachineScaleSet {
|
||||
func buildTestVMSS(name string, lbBackendpoolIDs []string) compute.VirtualMachineScaleSet {
|
||||
lbBackendpools := make([]compute.SubResource, 0)
|
||||
for _, id := range lbBackendpoolIDs {
|
||||
lbBackendpools = append(lbBackendpools, compute.SubResource{ID: to.StringPtr(id)})
|
||||
}
|
||||
|
||||
expectedVMSS := compute.VirtualMachineScaleSet{
|
||||
Name: to.StringPtr(testVMSSName),
|
||||
Name: &name,
|
||||
VirtualMachineScaleSetProperties: &compute.VirtualMachineScaleSetProperties{
|
||||
ProvisioningState: to.StringPtr("Running"),
|
||||
VirtualMachineProfile: &compute.VirtualMachineScaleSetVMProfile{
|
||||
@ -1732,7 +1732,7 @@ func TestEnsureVMSSInPool(t *testing.T) {
|
||||
ss.LoadBalancerSku = loadBalancerSkuStandard
|
||||
}
|
||||
|
||||
expectedVMSS := buildTestVMSS([]string{testLBBackendpoolID0})
|
||||
expectedVMSS := buildTestVMSS(testVMSSName, []string{testLBBackendpoolID0})
|
||||
if test.isVMSSDeallocating {
|
||||
expectedVMSS.ProvisioningState = &virtualMachineScaleSetsDeallocating
|
||||
}
|
||||
@ -1829,7 +1829,7 @@ func TestEnsureHostsInPool(t *testing.T) {
|
||||
ss.LoadBalancerSku = loadBalancerSkuStandard
|
||||
ss.ExcludeMasterFromStandardLB = to.BoolPtr(true)
|
||||
|
||||
expectedVMSS := buildTestVMSS([]string{testLBBackendpoolID0})
|
||||
expectedVMSS := buildTestVMSS(testVMSSName, []string{testLBBackendpoolID0})
|
||||
mockVMSSClient := ss.cloud.VirtualMachineScaleSetsClient.(*mockvmssclient.MockInterface)
|
||||
mockVMSSClient.EXPECT().List(gomock.Any(), ss.ResourceGroup).Return([]compute.VirtualMachineScaleSet{expectedVMSS}, nil).AnyTimes()
|
||||
mockVMSSClient.EXPECT().Get(gomock.Any(), ss.ResourceGroup, testVMSSName).Return(expectedVMSS, nil).MaxTimes(1)
|
||||
@ -2006,7 +2006,7 @@ func TestEnsureBackendPoolDeletedFromVMSS(t *testing.T) {
|
||||
|
||||
ss.LoadBalancerSku = loadBalancerSkuStandard
|
||||
|
||||
expectedVMSS := buildTestVMSS([]string{testLBBackendpoolID0})
|
||||
expectedVMSS := buildTestVMSS(testVMSSName, []string{testLBBackendpoolID0})
|
||||
if test.isVMSSDeallocating {
|
||||
expectedVMSS.ProvisioningState = &virtualMachineScaleSetsDeallocating
|
||||
}
|
||||
@ -2100,7 +2100,7 @@ func TestEnsureBackendPoolDeleted(t *testing.T) {
|
||||
ss, err := newTestScaleSet(ctrl)
|
||||
assert.NoError(t, err, test.description)
|
||||
|
||||
expectedVMSS := buildTestVMSS([]string{testLBBackendpoolID0})
|
||||
expectedVMSS := buildTestVMSS(testVMSSName, []string{testLBBackendpoolID0})
|
||||
mockVMSSClient := ss.cloud.VirtualMachineScaleSetsClient.(*mockvmssclient.MockInterface)
|
||||
mockVMSSClient.EXPECT().List(gomock.Any(), ss.ResourceGroup).Return([]compute.VirtualMachineScaleSet{expectedVMSS}, nil).AnyTimes()
|
||||
mockVMSSClient.EXPECT().Get(gomock.Any(), ss.ResourceGroup, testVMSSName).Return(expectedVMSS, nil).MaxTimes(1)
|
||||
@ -2130,7 +2130,7 @@ func TestEnsureBackendPoolDeletedConcurrently(t *testing.T) {
|
||||
BackendIPConfigurations: &[]network.InterfaceIPConfiguration{
|
||||
{
|
||||
Name: to.StringPtr("ip-1"),
|
||||
ID: to.StringPtr("/subscriptions/sub/resourceGroups/rg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss/virtualMachines/0/networkInterfaces/nic"),
|
||||
ID: to.StringPtr("/subscriptions/sub/resourceGroups/rg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss-0/virtualMachines/0/networkInterfaces/nic"),
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -2141,7 +2141,7 @@ func TestEnsureBackendPoolDeletedConcurrently(t *testing.T) {
|
||||
BackendIPConfigurations: &[]network.InterfaceIPConfiguration{
|
||||
{
|
||||
Name: to.StringPtr("ip-1"),
|
||||
ID: to.StringPtr("/subscriptions/sub/resourceGroups/rg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss/virtualMachines/0/networkInterfaces/nic"),
|
||||
ID: to.StringPtr("/subscriptions/sub/resourceGroups/rg/providers/Microsoft.Compute/virtualMachineScaleSets/vmss-1/virtualMachines/0/networkInterfaces/nic"),
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -2153,35 +2153,43 @@ func TestEnsureBackendPoolDeletedConcurrently(t *testing.T) {
|
||||
BackendIPConfigurations: &[]network.InterfaceIPConfiguration{
|
||||
{
|
||||
Name: to.StringPtr("ip-1"),
|
||||
ID: to.StringPtr("/subscriptions/sub/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss/virtualMachines/0/networkInterfaces/nic"),
|
||||
ID: to.StringPtr("/subscriptions/sub/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss-0/virtualMachines/0/networkInterfaces/nic"),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
expectedVMSS := buildTestVMSS([]string{testLBBackendpoolID0, testLBBackendpoolID1})
|
||||
vmss0 := buildTestVMSS("vmss-0", []string{testLBBackendpoolID0, testLBBackendpoolID1})
|
||||
vmss1 := buildTestVMSS("vmss-1", []string{testLBBackendpoolID0, testLBBackendpoolID1})
|
||||
|
||||
expectedVMSSVMs, _, _ := buildTestVirtualMachineEnv(ss.cloud, testVMSSName, "", 0, []string{"vmss-vm-000000"}, "succeeded")
|
||||
vmssVMNetworkConfigs := expectedVMSSVMs[0].NetworkProfileConfiguration
|
||||
vmssVMIPConfigs := (*vmssVMNetworkConfigs.NetworkInterfaceConfigurations)[0].VirtualMachineScaleSetNetworkConfigurationProperties.IPConfigurations
|
||||
lbBackendpools := (*vmssVMIPConfigs)[0].LoadBalancerBackendAddressPools
|
||||
*lbBackendpools = append(*lbBackendpools, compute.SubResource{ID: to.StringPtr(testLBBackendpoolID1)})
|
||||
expectedVMSSVMsOfVMSS0, _, _ := buildTestVirtualMachineEnv(ss.cloud, "vmss-0", "", 0, []string{"vmss-vm-000000"}, "succeeded")
|
||||
expectedVMSSVMsOfVMSS1, _, _ := buildTestVirtualMachineEnv(ss.cloud, "vmss-1", "", 0, []string{"vmss-vm-000001"}, "succeeded")
|
||||
for _, expectedVMSSVMs := range [][]compute.VirtualMachineScaleSetVM{expectedVMSSVMsOfVMSS0, expectedVMSSVMsOfVMSS1} {
|
||||
vmssVMNetworkConfigs := expectedVMSSVMs[0].NetworkProfileConfiguration
|
||||
vmssVMIPConfigs := (*vmssVMNetworkConfigs.NetworkInterfaceConfigurations)[0].VirtualMachineScaleSetNetworkConfigurationProperties.IPConfigurations
|
||||
lbBackendpools := (*vmssVMIPConfigs)[0].LoadBalancerBackendAddressPools
|
||||
*lbBackendpools = append(*lbBackendpools, compute.SubResource{ID: to.StringPtr(testLBBackendpoolID1)})
|
||||
}
|
||||
|
||||
mockVMSSClient := ss.cloud.VirtualMachineScaleSetsClient.(*mockvmssclient.MockInterface)
|
||||
mockVMSSClient.EXPECT().List(gomock.Any(), ss.ResourceGroup).Return([]compute.VirtualMachineScaleSet{expectedVMSS}, nil).AnyTimes()
|
||||
mockVMSSClient.EXPECT().Get(gomock.Any(), ss.ResourceGroup, testVMSSName).Return(expectedVMSS, nil).MaxTimes(2)
|
||||
mockVMSSClient.EXPECT().CreateOrUpdate(gomock.Any(), ss.ResourceGroup, testVMSSName, gomock.Any()).Return(nil).Times(2)
|
||||
mockVMSSClient.EXPECT().List(gomock.Any(), ss.ResourceGroup).Return([]compute.VirtualMachineScaleSet{vmss0, vmss1}, nil).AnyTimes()
|
||||
mockVMSSClient.EXPECT().Get(gomock.Any(), ss.ResourceGroup, "vmss-0").Return(vmss0, nil).MaxTimes(2)
|
||||
mockVMSSClient.EXPECT().Get(gomock.Any(), ss.ResourceGroup, "vmss-1").Return(vmss1, nil).MaxTimes(2)
|
||||
mockVMSSClient.EXPECT().CreateOrUpdate(gomock.Any(), ss.ResourceGroup, gomock.Any(), gomock.Any()).Return(nil).Times(2)
|
||||
|
||||
mockVMSSVMClient := ss.cloud.VirtualMachineScaleSetVMsClient.(*mockvmssvmclient.MockInterface)
|
||||
mockVMSSVMClient.EXPECT().List(gomock.Any(), ss.ResourceGroup, testVMSSName, gomock.Any()).Return(expectedVMSSVMs, nil).AnyTimes()
|
||||
mockVMSSVMClient.EXPECT().UpdateVMs(gomock.Any(), ss.ResourceGroup, testVMSSName, gomock.Any(), gomock.Any()).Return(nil).Times(2)
|
||||
mockVMSSVMClient.EXPECT().List(gomock.Any(), ss.ResourceGroup, "vmss-0", gomock.Any()).Return(expectedVMSSVMsOfVMSS0, nil).AnyTimes()
|
||||
mockVMSSVMClient.EXPECT().List(gomock.Any(), ss.ResourceGroup, "vmss-1", gomock.Any()).Return(expectedVMSSVMsOfVMSS1, nil).AnyTimes()
|
||||
mockVMSSVMClient.EXPECT().UpdateVMs(gomock.Any(), ss.ResourceGroup, gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).Times(2)
|
||||
|
||||
backendpoolAddressIDs := []string{testLBBackendpoolID0, testLBBackendpoolID1, testLBBackendpoolID2}
|
||||
testVMSSNames := []string{"vmss-0", "vmss-1", "vmss-0"}
|
||||
testFunc := make([]func() error, 0)
|
||||
for _, id := range backendpoolAddressIDs {
|
||||
for i, id := range backendpoolAddressIDs {
|
||||
i := i
|
||||
id := id
|
||||
testFunc = append(testFunc, func() error {
|
||||
return ss.EnsureBackendPoolDeleted(&v1.Service{}, id, testVMSSName, backendAddressPools)
|
||||
return ss.EnsureBackendPoolDeleted(&v1.Service{}, id, testVMSSNames[i], backendAddressPools)
|
||||
})
|
||||
}
|
||||
errs := utilerrors.AggregateGoroutines(testFunc...)
|
||||
|
Loading…
Reference in New Issue
Block a user