From 745641dfc992a33a82b626e43602cb2e17afd95f Mon Sep 17 00:00:00 2001 From: InduSridhar Date: Fri, 27 Mar 2026 18:45:37 +0000 Subject: [PATCH 1/2] Remove readOnly from nodeImageVersion in agent pool models to unblock rollback The TypeSpec conversion in Azure/azure-rest-api-specs#38641 incorrectly re-added readOnly to nodeImageVersion in agent pool models. This was intentionally removed in Azure/azure-rest-api-specs#37229 to enable agentpool rollback functionality. The upstream spec fix is tracked in Azure/azure-rest-api-specs#41598 but vendoring may take a week+. This is a temporary SDK-level workaround to unblock the rollback feature that is already in preview for customers. Removes readonly from nodeImageVersion in: - AgentPool - ManagedClusterAgentPoolProfileProperties - ManagedClusterAgentPoolProfile MachineProperties and Snapshot retain readonly as nodeImageVersion is genuinely read-only on those resources. --- .../vendored_sdks/azure_mgmt_preview_aks/models/_models_py3.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/models/_models_py3.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/models/_models_py3.py index e5f651e67e7..a4a4c5e7d55 100644 --- a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/models/_models_py3.py +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/models/_models_py3.py @@ -556,7 +556,6 @@ class AgentPool(ProxyResource): "e_tag": {"readonly": True}, "os_disk_size_gb": {"maximum": 2048, "minimum": 0}, "current_orchestrator_version": {"readonly": True}, - "node_image_version": {"readonly": True}, "provisioning_state": {"readonly": True}, } @@ -6517,7 +6516,6 @@ class ManagedClusterAgentPoolProfileProperties(_serialization.Model): "e_tag": {"readonly": True}, "os_disk_size_gb": {"maximum": 2048, "minimum": 0}, "current_orchestrator_version": {"readonly": True}, - "node_image_version": {"readonly": True}, "provisioning_state": {"readonly": True}, } @@ -7173,7 +7171,6 @@ class ManagedClusterAgentPoolProfile(ManagedClusterAgentPoolProfileProperties): "e_tag": {"readonly": True}, "os_disk_size_gb": {"maximum": 2048, "minimum": 0}, "current_orchestrator_version": {"readonly": True}, - "node_image_version": {"readonly": True}, "provisioning_state": {"readonly": True}, "name": {"required": True, "pattern": r"^[a-z][a-z0-9]{0,11}$"}, } From f7963cbd0b1fa93229a0f7450328b825b03ca09f Mon Sep 17 00:00:00 2001 From: Fuming Zhang Date: Mon, 30 Mar 2026 14:27:32 +1100 Subject: [PATCH 2/2] fix --- .../azure_mgmt_preview_aks/models/_models_py3.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/models/_models_py3.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/models/_models_py3.py index a4a4c5e7d55..f2a24c9b09d 100644 --- a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/models/_models_py3.py +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/models/_models_py3.py @@ -661,6 +661,7 @@ def __init__( # pylint: disable=too-many-locals type_properties_type: Optional[Union[str, "_models.AgentPoolType"]] = None, mode: Optional[Union[str, "_models.AgentPoolMode"]] = None, orchestrator_version: Optional[str] = None, + node_image_version: Optional[str] = None, upgrade_strategy: Optional[Union[str, "_models.UpgradeStrategy"]] = None, enable_os_disk_full_caching: Optional[bool] = None, upgrade_settings: Optional["_models.AgentPoolUpgradeSettings"] = None, @@ -943,7 +944,7 @@ def __init__( # pylint: disable=too-many-locals self.mode = mode self.orchestrator_version = orchestrator_version self.current_orchestrator_version: Optional[str] = None - self.node_image_version: Optional[str] = None + self.node_image_version = node_image_version self.upgrade_strategy = upgrade_strategy self.enable_os_disk_full_caching = enable_os_disk_full_caching self.upgrade_settings = upgrade_settings @@ -6605,6 +6606,7 @@ def __init__( # pylint: disable=too-many-locals type: Optional[Union[str, "_models.AgentPoolType"]] = None, mode: Optional[Union[str, "_models.AgentPoolMode"]] = None, orchestrator_version: Optional[str] = None, + node_image_version: Optional[str] = None, upgrade_strategy: Optional[Union[str, "_models.UpgradeStrategy"]] = None, enable_os_disk_full_caching: Optional[bool] = None, upgrade_settings: Optional["_models.AgentPoolUpgradeSettings"] = None, @@ -6887,7 +6889,7 @@ def __init__( # pylint: disable=too-many-locals self.mode = mode self.orchestrator_version = orchestrator_version self.current_orchestrator_version: Optional[str] = None - self.node_image_version: Optional[str] = None + self.node_image_version = node_image_version self.upgrade_strategy = upgrade_strategy self.enable_os_disk_full_caching = enable_os_disk_full_caching self.upgrade_settings = upgrade_settings @@ -7263,6 +7265,7 @@ def __init__( # pylint: disable=too-many-locals type: Optional[Union[str, "_models.AgentPoolType"]] = None, mode: Optional[Union[str, "_models.AgentPoolMode"]] = None, orchestrator_version: Optional[str] = None, + node_image_version: Optional[str] = None, upgrade_strategy: Optional[Union[str, "_models.UpgradeStrategy"]] = None, enable_os_disk_full_caching: Optional[bool] = None, upgrade_settings: Optional["_models.AgentPoolUpgradeSettings"] = None, @@ -7546,6 +7549,7 @@ def __init__( # pylint: disable=too-many-locals type=type, mode=mode, orchestrator_version=orchestrator_version, + node_image_version=node_image_version, upgrade_strategy=upgrade_strategy, enable_os_disk_full_caching=enable_os_disk_full_caching, upgrade_settings=upgrade_settings,