Skip to content

Commit 0db7325

Browse files
authored
Merge pull request #3324 from helio/release-1.7-3243
[release-1.7] fix: networkInterfaces IPForwarding and AcceleratedNetworking
2 parents 5878815 + 99d6105 commit 0db7325

File tree

2 files changed

+40
-4
lines changed

2 files changed

+40
-4
lines changed

azure/services/scalesets/scalesets.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -564,11 +564,14 @@ func (s *Service) buildVMSSFromSpec(ctx context.Context, vmssSpec azure.ScaleSet
564564
nicConfig := compute.VirtualMachineScaleSetNetworkConfiguration{}
565565
nicConfig.VirtualMachineScaleSetNetworkConfigurationProperties = &compute.VirtualMachineScaleSetNetworkConfigurationProperties{}
566566
nicConfig.Name = to.StringPtr(vmssSpec.Name + "-" + strconv.Itoa(i))
567-
if to.Bool(n.AcceleratedNetworking) {
568-
nicConfig.VirtualMachineScaleSetNetworkConfigurationProperties.EnableAcceleratedNetworking = to.BoolPtr(true)
567+
nicConfig.EnableIPForwarding = to.BoolPtr(true)
568+
569+
if n.AcceleratedNetworking == nil {
570+
nicConfig.VirtualMachineScaleSetNetworkConfigurationProperties.EnableAcceleratedNetworking = vmssSpec.AcceleratedNetworking
569571
} else {
570-
nicConfig.VirtualMachineScaleSetNetworkConfigurationProperties.EnableAcceleratedNetworking = to.BoolPtr(false)
572+
nicConfig.VirtualMachineScaleSetNetworkConfigurationProperties.EnableAcceleratedNetworking = n.AcceleratedNetworking
571573
}
574+
572575
if n.PrivateIPConfigs == 0 {
573576
nicConfig.VirtualMachineScaleSetNetworkConfigurationProperties.IPConfigurations = &[]compute.VirtualMachineScaleSetIPConfiguration{
574577
{

azure/services/scalesets/scalesets_test.go

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,38 @@ func TestReconcileVMSS(t *testing.T) {
260260
setupCreatingSucceededExpectations(s, m, newDefaultExistingVMSS("VM_SIZE_AN"), putFuture)
261261
},
262262
},
263+
{
264+
name: "should start creating vmss with custom subnet when specified",
265+
expectedError: "failed to get VMSS my-vmss after create or update: failed to get result from future: operation type PUT on Azure resource my-rg/my-vmss is not done",
266+
expect: func(g *WithT, s *mock_scalesets.MockScaleSetScopeMockRecorder, m *mock_scalesets.MockClientMockRecorder) {
267+
spec := newDefaultVMSSSpec()
268+
spec.Size = "VM_SIZE_AN"
269+
spec.NetworkInterfaces = []infrav1.NetworkInterface{
270+
{
271+
SubnetName: "somesubnet",
272+
PrivateIPConfigs: 1, // defaulter sets this to one
273+
},
274+
}
275+
s.ScaleSetSpec().Return(spec).AnyTimes()
276+
setupDefaultVMSSStartCreatingExpectations(s, m)
277+
vmss := newDefaultVMSS("VM_SIZE_AN")
278+
netConfigs := vmss.VirtualMachineScaleSetProperties.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations
279+
(*netConfigs)[0].Name = pointer.String("my-vmss-0")
280+
(*netConfigs)[0].EnableIPForwarding = pointer.Bool(true)
281+
(*netConfigs)[0].EnableAcceleratedNetworking = pointer.Bool(true)
282+
nic1IPConfigs := (*netConfigs)[0].IPConfigurations
283+
(*nic1IPConfigs)[0].Name = pointer.String("private-ipConfig-0")
284+
(*nic1IPConfigs)[0].PrivateIPAddressVersion = compute.IPVersionIPv4
285+
(*nic1IPConfigs)[0].Subnet = &compute.APIEntityReference{
286+
ID: pointer.String("/subscriptions/123/resourceGroups/my-rg/providers/Microsoft.Network/virtualNetworks/my-vnet/subnets/somesubnet"),
287+
}
288+
(*netConfigs)[0].EnableAcceleratedNetworking = pointer.Bool(true)
289+
(*netConfigs)[0].Primary = pointer.Bool(true)
290+
m.CreateOrUpdateAsync(gomockinternal.AContext(), defaultResourceGroup, defaultVMSSName, gomockinternal.DiffEq(vmss)).
291+
Return(putFuture, nil)
292+
setupCreatingSucceededExpectations(s, m, newDefaultExistingVMSS("VM_SIZE_AN"), putFuture)
293+
},
294+
},
263295
{
264296
name: "should start creating vmss with custom networking when specified",
265297
expectedError: "failed to get VMSS my-vmss after create or update: failed to get result from future: operation type PUT on Azure resource my-rg/my-vmss is not done",
@@ -291,7 +323,7 @@ func TestReconcileVMSS(t *testing.T) {
291323
vmss.VirtualMachineScaleSetProperties.AdditionalCapabilities = &compute.AdditionalCapabilities{UltraSSDEnabled: pointer.Bool(true)}
292324
netConfigs := vmss.VirtualMachineScaleSetProperties.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations
293325
(*netConfigs)[0].Name = to.StringPtr("my-vmss-0")
294-
(*netConfigs)[0].EnableIPForwarding = nil
326+
(*netConfigs)[0].EnableIPForwarding = pointer.Bool(true)
295327
nic1IPConfigs := (*netConfigs)[0].IPConfigurations
296328
(*nic1IPConfigs)[0].Name = to.StringPtr("private-ipConfig-0")
297329
(*nic1IPConfigs)[0].PrivateIPAddressVersion = compute.IPVersionIPv4
@@ -323,6 +355,7 @@ func TestReconcileVMSS(t *testing.T) {
323355
VirtualMachineScaleSetNetworkConfigurationProperties: &compute.VirtualMachineScaleSetNetworkConfigurationProperties{
324356
EnableAcceleratedNetworking: to.BoolPtr(true),
325357
IPConfigurations: &vmssIPConfigs,
358+
EnableIPForwarding: pointer.Bool(true),
326359
},
327360
})
328361
m.CreateOrUpdateAsync(gomockinternal.AContext(), defaultResourceGroup, defaultVMSSName, gomockinternal.DiffEq(vmss)).

0 commit comments

Comments
 (0)