Skip to content

[AKS] Clarify outbound-type update error for managed VNet clusters#33607

Closed
Copilot wants to merge 2 commits into
devfrom
copilot/fix-aks-update-outbound-type-again
Closed

[AKS] Clarify outbound-type update error for managed VNet clusters#33607
Copilot wants to merge 2 commits into
devfrom
copilot/fix-aks-update-outbound-type-again

Conversation

Copilot AI commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Related command
az aks update -g <rg> -n <name> --outbound-type userDefinedRouting

Description
az aks update --outbound-type userDefinedRouting could return a contradictory requirement for --vnet-subnet-id even though that argument is not accepted on update. This PR makes update-time validation explicit: migration to userDefinedRouting/userAssignedNATGateway is only allowed for clusters created with BYO VNet.

  • Validation path update (AKS managed cluster decorator)

    • AKSManagedClusterContext._raise_missing_vnet_subnet_for_outbound_type(...) now takes decorator_mode.
    • In DecoratorMode.UPDATE, it raises a targeted InvalidArgumentValueError explaining managed-VNet clusters cannot be updated to those outbound types and points to migration-path docs.
    • Existing create-time validation remains unchanged (still enforces subnet requirements for BYO scenarios).
  • Call-site wiring

    • _get_outbound_type(...) now passes self.decorator_mode into _raise_missing_vnet_subnet_for_outbound_type(...).
  • Unit coverage

    • Added focused test in test_get_outbound_type for update + managed VNet + userDefinedRouting, asserting the new update-specific error text.
if decorator_mode == DecoratorMode.UPDATE:
    raise InvalidArgumentValueError(
        "Updating --outbound-type to {outbound_type} is only supported for "
        "clusters created with a custom virtual network (BYO VNet)..."
    )

Testing Guide
N/A (behavioral validation path change with focused existing unit coverage in AKS decorator tests).

History Notes
[AKS] az aks update: Clarify outbound-type migration error for clusters not created with BYO VNet.


This checklist is used to make sure that common guidelines for a pull request are followed.

@azure-client-tools-bot-prd

azure-client-tools-bot-prd Bot commented Jun 22, 2026

Copy link
Copy Markdown
️✔️AzureCLI-FullTest
️✔️acr
️✔️latest
️✔️3.12
️✔️3.14
️✔️acs
️✔️latest
️✔️3.12
️✔️3.14
️✔️advisor
️✔️latest
️✔️3.12
️✔️3.14
️✔️ams
️✔️latest
️✔️3.12
️✔️3.14
️✔️apim
️✔️latest
️✔️3.12
️✔️3.14
️✔️appconfig
️✔️latest
️✔️3.12
️✔️3.14
️✔️appservice
️✔️latest
️✔️3.12
️✔️3.14
️✔️aro
️✔️latest
️✔️3.12
️✔️3.14
️✔️backup
️✔️latest
️✔️3.12
️✔️3.14
️✔️batch
️✔️latest
️✔️3.12
️✔️3.14
️✔️batchai
️✔️latest
️✔️3.12
️✔️3.14
️✔️billing
️✔️latest
️✔️3.12
️✔️3.14
️✔️botservice
️✔️latest
️✔️3.12
️✔️3.14
️✔️cloud
️✔️latest
️✔️3.12
️✔️3.14
️✔️cognitiveservices
️✔️latest
️✔️3.12
️✔️3.14
️✔️compute_recommender
️✔️latest
️✔️3.12
️✔️3.14
️✔️computefleet
️✔️latest
️✔️3.12
️✔️3.14
️✔️config
️✔️latest
️✔️3.12
️✔️3.14
️✔️configure
️✔️latest
️✔️3.12
️✔️3.14
️✔️consumption
️✔️latest
️✔️3.12
️✔️3.14
️✔️container
️✔️latest
️✔️3.12
️✔️3.14
️✔️containerapp
️✔️latest
️✔️3.12
️✔️3.14
️✔️core
️✔️latest
️✔️3.12
️✔️3.14
️✔️cosmosdb
️✔️latest
️✔️3.12
️✔️3.14
️✔️databoxedge
️✔️latest
️✔️3.12
️✔️3.14
️✔️dls
️✔️latest
️✔️3.12
️✔️3.14
️✔️dms
️✔️latest
️✔️3.12
️✔️3.14
️✔️eventgrid
️✔️latest
️✔️3.12
️✔️3.14
️✔️eventhubs
️✔️latest
️✔️3.12
️✔️3.14
️✔️feedback
️✔️latest
️✔️3.12
️✔️3.14
️✔️find
️✔️latest
️✔️3.12
️✔️3.14
️✔️hdinsight
️✔️latest
️✔️3.12
️✔️3.14
️✔️identity
️✔️latest
️✔️3.12
️✔️3.14
️✔️iot
️✔️latest
️✔️3.12
️✔️3.14
️✔️keyvault
️✔️latest
️✔️3.12
️✔️3.14
️✔️lab
️✔️latest
️✔️3.12
️✔️3.14
️✔️managedservices
️✔️latest
️✔️3.12
️✔️3.14
️✔️maps
️✔️latest
️✔️3.12
️✔️3.14
️✔️marketplaceordering
️✔️latest
️✔️3.12
️✔️3.14
️✔️monitor
️✔️latest
️✔️3.12
️✔️3.14
️✔️mysql
️✔️latest
️✔️3.12
️✔️3.14
️✔️netappfiles
️✔️latest
️✔️3.12
️✔️3.14
️✔️network
️✔️latest
️✔️3.12
️✔️3.14
️✔️policyinsights
️✔️latest
️✔️3.12
️✔️3.14
️✔️postgresql
️✔️latest
️✔️3.12
️✔️3.14
️✔️privatedns
️✔️latest
️✔️3.12
️✔️3.14
️✔️profile
️✔️latest
️✔️3.12
️✔️3.14
️✔️rdbms
️✔️latest
️✔️3.12
️✔️3.14
️✔️redis
️✔️latest
️✔️3.12
️✔️3.14
️✔️relay
️✔️latest
️✔️3.12
️✔️3.14
️✔️resource
️✔️latest
️✔️3.12
️✔️3.14
️✔️role
️✔️latest
️✔️3.12
️✔️3.14
️✔️search
️✔️latest
️✔️3.12
️✔️3.14
️✔️security
️✔️latest
️✔️3.12
️✔️3.14
️✔️servicebus
️✔️latest
️✔️3.12
️✔️3.14
️✔️serviceconnector
️✔️latest
️✔️3.12
️✔️3.14
️✔️servicefabric
️✔️latest
️✔️3.12
️✔️3.14
️✔️signalr
️✔️latest
️✔️3.12
️✔️3.14
️✔️sql
️✔️latest
️✔️3.12
️✔️3.14
️✔️sqlvm
️✔️latest
️✔️3.12
️✔️3.14
️✔️storage
️✔️latest
️✔️3.12
️✔️3.14
️✔️synapse
️✔️latest
️✔️3.12
️✔️3.14
️✔️telemetry
️✔️latest
️✔️3.12
️✔️3.14
️✔️util
️✔️latest
️✔️3.12
️✔️3.14
️✔️vm
️✔️latest
️✔️3.12
️✔️3.14

@azure-client-tools-bot-prd

Copy link
Copy Markdown

Hi @copilot,
Since the current milestone time is less than 7 days, this pr will be reviewed in the next milestone.

@azure-client-tools-bot-prd

azure-client-tools-bot-prd Bot commented Jun 22, 2026

Copy link
Copy Markdown
️✔️AzureCLI-BreakingChangeTest
️✔️Non Breaking Changes

Copilot AI changed the title [WIP] Fix aks update command for userDefinedRouting [AKS] Clarify outbound-type update error for managed VNet clusters Jun 22, 2026
Copilot AI requested a review from a0x1ab June 22, 2026 13:50
@azclibot

Copy link
Copy Markdown
Collaborator

Live test results — azdev test --live --series (changed test files only)

PASS

Selectors: test_managed_cluster_decorator (module)
PR head ref: copilot/fix-aks-update-outbound-type-again
PR head sha: a52584420bf9afa507fda7684487716d57f4e3b8
PR base ref: dev
New test files in PR: false

Changed test files run
src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py

Workflow run: https://github.com/Azure/issue-sentinel/actions/runs/27957759641

Last 80 lines of azdev output
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_ensure_azure_keyvault_secrets_provider_addon_profile PASSED [ 72%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_ensure_mc PASSED [ 72%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_fetch_mc PASSED [ 73%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_get_acns_advanced_networkpolicies PASSED [ 73%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_immediate_processing_after_request PASSED [ 73%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_init PASSED [ 74%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_mc_get_acns_datapath_acceleration_mode PASSED [ 74%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_mc_get_acns_enablement_with_perf PASSED [ 74%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_mc_get_acns_transit_encryption_type PASSED [ 75%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_postprocessing_after_mc_created PASSED [ 75%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_process_attach_detach_acr PASSED [ 76%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_put_mc PASSED [ 76%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_set_up_app_routing_profile PASSED [ 76%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_set_up_app_routing_profile_with_no_nginx PASSED [ 77%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_set_up_app_routing_profile_with_specified_nginx PASSED [ 77%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_set_up_custom_ca_trust_certificates PASSED [ 77%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_set_up_ingress_profile_app_routing_istio PASSED [ 78%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_set_up_ingress_profile_gateway_api PASSED [ 78%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_set_up_ingress_web_app_routing PASSED [ 78%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_set_up_network_profile_acns_advanced_networkpolicies PASSED [ 79%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_set_up_network_profile_acns_performance PASSED [ 79%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_set_up_run_command PASSED [ 80%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_setup_supportPlan PASSED [ 80%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_aad_profile PASSED [ 80%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_addon_profiles PASSED [ 81%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_agentpool_profile PASSED [ 81%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_api_server_access_profile PASSED [ 81%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_app_routing_profile PASSED [ 82%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_auto_scaler_profile PASSED [ 82%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_auto_upgrade_profile PASSED [ 82%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_azure_keyvault_secrets_provider_addon_profile PASSED [ 83%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_azure_monitor_profile_disable_app_monitoring PASSED [ 83%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_azure_monitor_profile_disable_app_monitoring_no_existing_app_monitoring PASSED [ 84%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_azure_monitor_profile_disable_app_monitoring_no_existing_profile PASSED [ 84%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_azure_monitor_profile_enable_app_monitoring PASSED [ 84%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_azure_monitor_profile_enable_app_monitoring_with_existing_metrics PASSED [ 85%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_bootstrap_profile PASSED [ 85%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_custom_ca_certificates PASSED [ 85%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_defender PASSED [ 86%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_disable_control_plane_metrics_sets_enabled_false PASSED [ 86%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_disable_local_accounts PASSED [ 86%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_enable_control_plane_metrics_already_enabled_cluster_succeeds PASSED [ 87%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_enable_control_plane_metrics_requires_parent_metrics PASSED [ 87%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_enable_control_plane_metrics_with_disable_control_plane_raises PASSED [ 88%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_enable_control_plane_metrics_with_disable_metrics_raises PASSED [ 88%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_http_proxy_config PASSED [ 88%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_identity PASSED [ 89%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_identity_profile PASSED [ 89%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_image_cleaner PASSED [ 89%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_ingress_profile_app_routing_istio PASSED [ 90%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_ingress_profile_gateway_api PASSED [ 90%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_kubernetes_version_and_orchestrator_version PASSED [ 90%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_load_balancer_profile PASSED [ 91%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_mc PASSED [ 91%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_mc_profile_default PASSED [ 92%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_nat_gateway_profile PASSED [ 92%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_network_plugin_settings PASSED [ 92%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_network_profile_advanced_networking PASSED [ 93%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_network_profile_advanced_networking_acns_no_performance PASSED [ 93%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_network_profile_advanced_networking_preserves_existing_state PASSED [ 93%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_network_profile_advanced_networking_with_networkpolicies PASSED [ 94%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_network_profile_advanced_networking_with_transit_encryption PASSED [ 94%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_network_profile_load_balancer_sku PASSED [ 94%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_node_provisioning_profile PASSED [ 95%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_outbound_type PASSED [ 95%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_run_command PASSED [ 96%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_service_mesh_profile PASSED [ 96%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_sku PASSED [ 96%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_storage_profile PASSED [ 97%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_supportPlan PASSED [ 97%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_tags PASSED [ 97%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_upgrade_settings PASSED [ 98%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_vmas_to_vms PASSED [ 98%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_windows_profile PASSED [ 98%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_workload_identity_profile__default_value PASSED [ 99%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_workload_identity_profile__disabled PASSED [ 99%]
azure-cli/src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py::AKSManagedClusterUpdateDecoratorTestCase::test_update_workload_identity_profile__enabled PASSED [100%]

- generated xml file: /home/runner/work/issue-sentinel/issue-sentinel/test-output/results.xml -
============================= 275 passed in 5.94s ==============================

Posted by agent-assist live-test workflow.

@yonzhan

yonzhan commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

AKS

@FumingZhang

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 3 pipeline(s).

@FumingZhang FumingZhang marked this pull request as ready for review June 23, 2026 03:15
Copilot AI review requested due to automatic review settings June 23, 2026 03:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR clarifies the validation/error behavior for az aks update --outbound-type userDefinedRouting|userAssignedNATGateway when the target cluster was created with a managed VNet (i.e., not BYO VNet). Instead of emitting a contradictory “missing --vnet-subnet-id” requirement (an argument not accepted on update), update-mode validation now raises a targeted InvalidArgumentValueError explaining that these outbound-type migrations are only supported for BYO VNet clusters and links to the relevant docs.

Changes:

  • Extend _raise_missing_vnet_subnet_for_outbound_type(...) to accept decorator_mode and raise an update-specific InvalidArgumentValueError for managed-VNet clusters.
  • Wire self.decorator_mode into the _get_outbound_type(...) validation path.
  • Add a unit test asserting the new update-mode error message for managed-VNet clusters attempting userDefinedRouting.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py Adds update-mode-specific outbound-type migration validation and improved error messaging for managed-VNet clusters.
src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py Adds focused unit coverage validating the new update-time error behavior/message.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jsntcy jsntcy closed this Jun 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

act-observability-squad AKS az aks/acs/openshift Auto-Assign Auto assign by bot

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants