Skip to content

Commit af46d97

Browse files
authored
Restrict VirtualMachines node pool manual profile vm_sizes field to support single sku size (#8702)
1 parent aa1d4e8 commit af46d97

File tree

7 files changed

+1607
-1497
lines changed

7 files changed

+1607
-1497
lines changed

src/aks-preview/HISTORY.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ Pending
1313
+++++++
1414
* Remove TrustedAccess commands from aks-preview extension as it is GA and exists in azure-cli for long time.
1515

16+
15.0.0b1
17+
++++++++
18+
* [BREAKING CHANGE] Change `--vm-sizes` for VirtualMachines manual profile to awalys support single SKU size.
19+
1620
14.0.0b7
1721
++++++++
1822
* Add `az aks create/update --enable-retina-flow-logs` and `az aks update --disable-retina-flow-logs` commands.

src/aks-preview/azext_aks_preview/agentpool_decorator.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -982,12 +982,14 @@ def set_up_virtual_machines_profile(self, agentpool: AgentPool) -> AgentPool:
982982
return agentpool
983983

984984
sizes = self.context.get_vm_sizes()
985+
if len(sizes) != 1:
986+
raise InvalidArgumentValueError(f"We only accept single sku size for manual profile. {sizes} is invalid.")
985987
count, _, _, _ = self.context.get_node_count_and_enable_cluster_autoscaler_min_max_count()
986988
agentpool.virtual_machines_profile = self.models.VirtualMachinesProfile(
987989
scale=self.models.ScaleProfile(
988990
manual=[
989991
self.models.ManualScaleProfile(
990-
sizes=sizes,
992+
size=sizes[0],
991993
count=count,
992994
)
993995
]

src/aks-preview/azext_aks_preview/custom.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1685,7 +1685,9 @@ def aks_agentpool_manual_scale_add(cmd,
16851685
operation_group="managed_clusters",
16861686
)
16871687
sizes = [x.strip() for x in vm_sizes.split(",")]
1688-
new_manual_scale_profile = ManualScaleProfile(sizes=sizes, count=int(node_count))
1688+
if len(sizes) != 1:
1689+
raise ClientRequestError("We only accept single sku size for manual profile.")
1690+
new_manual_scale_profile = ManualScaleProfile(size=sizes[0], count=int(node_count))
16891691
instance.virtual_machines_profile.scale.manual.append(new_manual_scale_profile)
16901692

16911693
return sdk_no_wait(
@@ -1715,19 +1717,25 @@ def aks_agentpool_manual_scale_update(cmd, # pylint: disable=unused-argument
17151717
raise ClientRequestError("Cannot update manual in a non-virtualmachines node pool.")
17161718

17171719
_current_vm_sizes = [x.strip() for x in current_vm_sizes.split(",")]
1720+
if len(_current_vm_sizes) != 1:
1721+
raise InvalidArgumentValueError(
1722+
f"We only accept single sku size for manual profile. {current_vm_sizes} is invalid."
1723+
)
17181724
_vm_sizes = [x.strip() for x in vm_sizes.split(",")] if vm_sizes else []
1725+
if len(_vm_sizes) != 1:
1726+
raise InvalidArgumentValueError(f"We only accept single sku size for manual profile. {vm_sizes} is invalid.")
17191727
manual_exists = False
17201728
for m in instance.virtual_machines_profile.scale.manual:
1721-
if m.sizes == _current_vm_sizes:
1729+
if m.size == _current_vm_sizes[0]:
17221730
manual_exists = True
17231731
if vm_sizes:
1724-
m.sizes = _vm_sizes
1732+
m.size = _vm_sizes[0]
17251733
if node_count:
17261734
m.count = int(node_count)
17271735
break
17281736
if not manual_exists:
17291737
raise InvalidArgumentValueError(
1730-
f"Manual with sizes {current_vm_sizes} doesn't exist in node pool {nodepool_name}"
1738+
f"Manual with size {current_vm_sizes[0]} doesn't exist in node pool {nodepool_name}"
17311739
)
17321740

17331741
return sdk_no_wait(
@@ -1751,15 +1759,19 @@ def aks_agentpool_manual_scale_delete(cmd, # pylint: disable=unused-argument
17511759
if instance.type_properties_type != CONST_VIRTUAL_MACHINES:
17521760
raise CLIError("Cannot delete manual in a non-virtualmachines node pool.")
17531761
_current_vm_sizes = [x.strip() for x in current_vm_sizes.split(",")]
1762+
if len(_current_vm_sizes) != 1:
1763+
raise InvalidArgumentValueError(
1764+
f"We only accept single sku size for manual profile. {current_vm_sizes} is invalid."
1765+
)
17541766
manual_exists = False
17551767
for m in instance.virtual_machines_profile.scale.manual:
1756-
if m.sizes == _current_vm_sizes:
1768+
if m.size == _current_vm_sizes[0]:
17571769
manual_exists = True
17581770
instance.virtual_machines_profile.scale.manual.remove(m)
17591771
break
17601772
if not manual_exists:
17611773
raise InvalidArgumentValueError(
1762-
f"Manual with sizes {current_vm_sizes} doesn't exist in node pool {nodepool_name}"
1774+
f"Manual with size {current_vm_sizes[0]} doesn't exist in node pool {nodepool_name}"
17631775
)
17641776

17651777
return sdk_no_wait(

0 commit comments

Comments
 (0)