Skip to content

Commit 4561a08

Browse files
authored
Merge pull request #3294 from k8s-infra-cherrypick-robot/cherry-pick-3243-to-release-1.8
[release-1.8] fix: networkInterfaces IPForwarding and AcceleratedNetworking
2 parents c12205e + 0ee6b89 commit 4561a08

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 = pointer.String(vmssSpec.Name + "-" + strconv.Itoa(i))
567-
if pointer.BoolDeref(n.AcceleratedNetworking, false) {
568-
nicConfig.VirtualMachineScaleSetNetworkConfigurationProperties.EnableAcceleratedNetworking = pointer.Bool(true)
567+
nicConfig.EnableIPForwarding = pointer.Bool(true)
568+
569+
if n.AcceleratedNetworking == nil {
570+
nicConfig.VirtualMachineScaleSetNetworkConfigurationProperties.EnableAcceleratedNetworking = vmssSpec.AcceleratedNetworking
569571
} else {
570-
nicConfig.VirtualMachineScaleSetNetworkConfigurationProperties.EnableAcceleratedNetworking = pointer.Bool(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
@@ -259,6 +259,38 @@ func TestReconcileVMSS(t *testing.T) {
259259
setupCreatingSucceededExpectations(s, m, newDefaultExistingVMSS("VM_SIZE_AN"), putFuture)
260260
},
261261
},
262+
{
263+
name: "should start creating vmss with custom subnet when specified",
264+
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",
265+
expect: func(g *WithT, s *mock_scalesets.MockScaleSetScopeMockRecorder, m *mock_scalesets.MockClientMockRecorder) {
266+
spec := newDefaultVMSSSpec()
267+
spec.Size = "VM_SIZE_AN"
268+
spec.NetworkInterfaces = []infrav1.NetworkInterface{
269+
{
270+
SubnetName: "somesubnet",
271+
PrivateIPConfigs: 1, // defaulter sets this to one
272+
},
273+
}
274+
s.ScaleSetSpec().Return(spec).AnyTimes()
275+
setupDefaultVMSSStartCreatingExpectations(s, m)
276+
vmss := newDefaultVMSS("VM_SIZE_AN")
277+
netConfigs := vmss.VirtualMachineScaleSetProperties.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations
278+
(*netConfigs)[0].Name = pointer.String("my-vmss-0")
279+
(*netConfigs)[0].EnableIPForwarding = pointer.Bool(true)
280+
(*netConfigs)[0].EnableAcceleratedNetworking = pointer.Bool(true)
281+
nic1IPConfigs := (*netConfigs)[0].IPConfigurations
282+
(*nic1IPConfigs)[0].Name = pointer.String("private-ipConfig-0")
283+
(*nic1IPConfigs)[0].PrivateIPAddressVersion = compute.IPVersionIPv4
284+
(*nic1IPConfigs)[0].Subnet = &compute.APIEntityReference{
285+
ID: pointer.String("/subscriptions/123/resourceGroups/my-rg/providers/Microsoft.Network/virtualNetworks/my-vnet/subnets/somesubnet"),
286+
}
287+
(*netConfigs)[0].EnableAcceleratedNetworking = pointer.Bool(true)
288+
(*netConfigs)[0].Primary = pointer.Bool(true)
289+
m.CreateOrUpdateAsync(gomockinternal.AContext(), defaultResourceGroup, defaultVMSSName, gomockinternal.DiffEq(vmss)).
290+
Return(putFuture, nil)
291+
setupCreatingSucceededExpectations(s, m, newDefaultExistingVMSS("VM_SIZE_AN"), putFuture)
292+
},
293+
},
262294
{
263295
name: "should start creating vmss with custom networking when specified",
264296
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",
@@ -290,7 +322,7 @@ func TestReconcileVMSS(t *testing.T) {
290322
vmss.VirtualMachineScaleSetProperties.AdditionalCapabilities = &compute.AdditionalCapabilities{UltraSSDEnabled: pointer.Bool(true)}
291323
netConfigs := vmss.VirtualMachineScaleSetProperties.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations
292324
(*netConfigs)[0].Name = pointer.String("my-vmss-0")
293-
(*netConfigs)[0].EnableIPForwarding = nil
325+
(*netConfigs)[0].EnableIPForwarding = pointer.Bool(true)
294326
nic1IPConfigs := (*netConfigs)[0].IPConfigurations
295327
(*nic1IPConfigs)[0].Name = pointer.String("private-ipConfig-0")
296328
(*nic1IPConfigs)[0].PrivateIPAddressVersion = compute.IPVersionIPv4
@@ -322,6 +354,7 @@ func TestReconcileVMSS(t *testing.T) {
322354
VirtualMachineScaleSetNetworkConfigurationProperties: &compute.VirtualMachineScaleSetNetworkConfigurationProperties{
323355
EnableAcceleratedNetworking: pointer.Bool(true),
324356
IPConfigurations: &vmssIPConfigs,
357+
EnableIPForwarding: pointer.Bool(true),
325358
},
326359
})
327360
m.CreateOrUpdateAsync(gomockinternal.AContext(), defaultResourceGroup, defaultVMSSName, gomockinternal.DiffEq(vmss)).

0 commit comments

Comments
 (0)