@@ -17164,3 +17164,78 @@ def test_aks_update_with_disable_upstream_kubescheduler_user_configuration(
1716417164 self.is_empty(),
1716517165 ],
1716617166 )
17167+
17168+ @AllowLargeResponse()
17169+ @AKSCustomResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2')
17170+ def test_aks_create_autoscaler_then_update_vms_pool(self, resource_group, resource_group_location):
17171+ aks_name = self.create_random_name('cliakstest', 16)
17172+ self.kwargs.update({
17173+ 'name': aks_name,
17174+ 'resource_group': resource_group,
17175+ 'nodepool_name': "vmspool",
17176+ "location": resource_group_location,
17177+ 'node_vm_size1': "standard_d2s_v3",
17178+ 'node_vm_size2': "standard_d4s_v3",
17179+ 'ssh_key_value': self.generate_ssh_keys()
17180+ })
17181+
17182+ # create cluster with autoscaler enabled
17183+ create_cmd = 'aks create --resource-group={resource_group} --name={name} --location={location} ' \
17184+ '--ssh-key-value={ssh_key_value} ' \
17185+ '--vm-set-type VirtualMachines ' \
17186+ '--enable-cluster-autoscaler ' \
17187+ '--node-vm-size={node_vm_size1} ' \
17188+ '--min-count 1 --max-count 3'
17189+ self.cmd(create_cmd, checks=[
17190+ self.check('provisioningState', 'Succeeded'),
17191+ self.check("agentPoolProfiles[0].type", "VirtualMachines"),
17192+ self.check('agentPoolProfiles[0].virtualMachinesProfile.scale.autoscale.size', 'standard_d2s_v3'),
17193+ self.check('agentPoolProfiles[0].virtualMachinesProfile.scale.autoscale.minCount', 1),
17194+ self.check('agentPoolProfiles[0].virtualMachinesProfile.scale.autoscale.maxCount', 3),
17195+ ])
17196+
17197+ # add another vms nodepool with autoscaler enabled
17198+ add_nodepool_cmd = 'aks nodepool add -g {resource_group} --cluster-name {name} -n {nodepool_name} ' \
17199+ '--vm-set-type VirtualMachines --mode user ' \
17200+ '--node-vm-size {node_vm_size1} ' \
17201+ '--enable-cluster-autoscaler ' \
17202+ '--min-count 0 --max-count 3'
17203+ self.cmd(add_nodepool_cmd, checks=[
17204+ self.check('provisioningState', 'Succeeded'),
17205+ self.check('virtualMachinesProfile.scale.autoscale.size', 'standard_d2s_v3'),
17206+ self.check('virtualMachinesProfile.scale.autoscale.minCount', 0),
17207+ self.check('virtualMachinesProfile.scale.autoscale.maxCount', 3),
17208+ ])
17209+
17210+ # update a VirtualMachines node pool with autoscaler enabled to change the VM size and min/max node count.
17211+ update_nodepool_cmd = 'aks nodepool update -g {resource_group} --cluster-name {name} -n {nodepool_name} ' \
17212+ '--node-vm-size {node_vm_size2} ' \
17213+ '--update-cluster-autoscaler ' \
17214+ '--min-count 1 --max-count 5'
17215+ self.cmd(update_nodepool_cmd, checks=[
17216+ self.check('provisioningState', 'Succeeded'),
17217+ self.check('virtualMachinesProfile.scale.autoscale.size', 'standard_d4s_v3'),
17218+ self.check('virtualMachinesProfile.scale.autoscale.minCount', 1),
17219+ self.check('virtualMachinesProfile.scale.autoscale.maxCount', 5),
17220+ ])
17221+
17222+ # disable autoscaler (auto to manual)
17223+ disable_autoscaler_cmd = 'aks nodepool update -g {resource_group} --cluster-name {name} -n {nodepool_name} ' \
17224+ '--disable-cluster-autoscaler'
17225+ self.cmd(disable_autoscaler_cmd, checks=[
17226+ self.check('provisioningState', 'Succeeded'),
17227+ self.check('virtualMachinesProfile.scale.manual[0].size', 'standard_d4s_v3'),
17228+ ])
17229+
17230+ # enable autoscaler (manual to auto)
17231+ enable_autoscaler_cmd = 'aks nodepool update -g {resource_group} --cluster-name {name} -n {nodepool_name} ' \
17232+ '--enable-cluster-autoscaler --min-count 1 --max-count 3'
17233+ self.cmd(enable_autoscaler_cmd, checks=[
17234+ self.check('provisioningState', 'Succeeded'),
17235+ self.check('virtualMachinesProfile.scale.autoscale.size', 'standard_d4s_v3'),
17236+ self.check('virtualMachinesProfile.scale.autoscale.minCount', 1),
17237+ self.check('virtualMachinesProfile.scale.autoscale.maxCount', 3),
17238+ ])
17239+
17240+ # delete
17241+ self.cmd('aks delete -g {resource_group} -n {name} --yes --no-wait', checks=[self.is_empty()])
0 commit comments