@@ -16906,6 +16906,112 @@ def test_aks_nodepool_create_with_nsg_control(
1690616906 ],
1690716907 )
1690816908
16909+ @AllowLargeResponse()
16910+ @AKSCustomResourceGroupPreparer(
16911+ random_name_length=17, name_prefix="clitest", location="eastus"
16912+ )
16913+ def test_aks_nodepool_add_with_secondary_network_interfaces(
16914+ self, resource_group, resource_group_location
16915+ ):
16916+ aks_name = self.create_random_name("cliakstest", 16)
16917+ nodepool_name = self.create_random_name("n", 6)
16918+
16919+ self.kwargs.update(
16920+ {
16921+ "resource_group": resource_group,
16922+ "name": aks_name,
16923+ "location": resource_group_location,
16924+ "ssh_key_value": self.generate_ssh_keys(),
16925+ "node_pool_name": nodepool_name,
16926+ "node_vm_size": "standard_d8s_v3",
16927+ }
16928+ )
16929+
16930+ # Create a VNet with subnets for nodes and secondary NICs
16931+ self.cmd(
16932+ "network vnet create "
16933+ "--resource-group={resource_group} "
16934+ "--name=testvnet "
16935+ "--address-prefix 10.0.0.0/16",
16936+ )
16937+ self.cmd(
16938+ "network vnet subnet create "
16939+ "--resource-group={resource_group} "
16940+ "--vnet-name=testvnet "
16941+ "--name=nodesubnet "
16942+ "--address-prefix 10.0.0.0/24",
16943+ )
16944+ subnet = self.cmd(
16945+ "network vnet subnet create "
16946+ "--resource-group={resource_group} "
16947+ "--vnet-name=testvnet "
16948+ "--name=secondarysubnet "
16949+ "--address-prefix 10.0.1.0/24",
16950+ ).get_output_in_json()
16951+
16952+ node_subnet_id = (
16953+ f"/subscriptions/{self.get_subscription_id()}"
16954+ f"/resourceGroups/{resource_group}"
16955+ "/providers/Microsoft.Network/virtualNetworks/testvnet/subnets/nodesubnet"
16956+ )
16957+ secondary_subnet_id = subnet["id"]
16958+
16959+ self.kwargs.update(
16960+ {
16961+ "node_subnet_id": node_subnet_id,
16962+ "secondary_nics": f'[{{"type":"Standard","vnetSubnetId":"{secondary_subnet_id}"}}]',
16963+ }
16964+ )
16965+
16966+ # Create the cluster
16967+ self.cmd(
16968+ "aks create "
16969+ "--resource-group={resource_group} "
16970+ "--name={name} "
16971+ "--location={location} "
16972+ "--ssh-key-value={ssh_key_value} "
16973+ "--node-count=1 "
16974+ "--node-vm-size={node_vm_size} "
16975+ "--vnet-subnet-id={node_subnet_id} ",
16976+ checks=[
16977+ self.check("provisioningState", "Succeeded"),
16978+ ],
16979+ )
16980+
16981+ # Add nodepool with secondary network interfaces
16982+ self.cmd(
16983+ "aks nodepool add "
16984+ "--resource-group={resource_group} "
16985+ "--cluster-name={name} "
16986+ "--name={node_pool_name} "
16987+ "--node-vm-size={node_vm_size} "
16988+ "--node-count=1 "
16989+ "--vnet-subnet-id={node_subnet_id} "
16990+ "--secondary-network-interfaces '{secondary_nics}' ",
16991+ checks=[
16992+ self.check("provisioningState", "Succeeded"),
16993+ self.check(
16994+ "networkProfile.secondaryNetworkInterfaces[0].vnetSubnetId",
16995+ secondary_subnet_id,
16996+ ),
16997+ self.check(
16998+ "networkProfile.secondaryNetworkInterfaces[0].type",
16999+ "Standard",
17000+ ),
17001+ ],
17002+ )
17003+
17004+ # delete
17005+ cmd = (
17006+ "aks delete --resource-group={resource_group} --name={name} --yes --no-wait"
17007+ )
17008+ self.cmd(
17009+ cmd,
17010+ checks=[
17011+ self.is_empty(),
17012+ ],
17013+ )
17014+
1690917015 @AllowLargeResponse()
1691017016 @AKSCustomResourceGroupPreparer(
1691117017 random_name_length=17, name_prefix="clitest", location="eastus"
0 commit comments