Skip to content

[AKS] az aks create/update: Add new parameters --enable-app-routing-istio and --disable-app-routing-istio to manage App Routing Istio gateway implementation#33254

Open
meecethereese wants to merge 15 commits intoAzure:devfrom
meecethereese:maufe/app-routing-istio
Open

Conversation

@meecethereese
Copy link
Copy Markdown

@meecethereese meecethereese commented Apr 23, 2026

Related command

az aks create
az aks update

Description

Promote App Routing Istio from the aks-preview extension to the GA Azure CLI.

Adds two new mutually-exclusive flags (with --enable-ari / --disable-ari aliases) to az aks create (enable
only) and az aks update (enable and disable):

  • --enable-app-routing-istio: enable an ingress-only Istio that reconciles Gateway API resources for App
    Routing (sets ingressProfile.webAppRouting.gatewayApiImplementations.appRoutingIstio.mode to Enabled).
  • --disable-app-routing-istio: disable it (sets the value to Disabled).

This is an ingress-only deployment of Istio: it does not provide service-mesh functionality (mTLS,
inter-service traffic management). It cannot be used together with the Istio service mesh add-on
(--enable-azure-service-mesh). App Routing must be enabled on the cluster, and the managed Gateway API
installation provides the Gateway implementation that App Routing Istio binds to. This change ports the
implementation from the aks-preview extension.

Testing Guide

  # Create a cluster with App Routing + managed Gateway API + App Routing Istio
  az aks create -g $RG -n $CLUSTER \
      --enable-app-routing \
      --enable-gateway-api \
      --enable-app-routing-istio

  # Enable on an existing App Routing + Gateway API cluster
  az aks update -g $RG -n $CLUSTER --enable-app-routing-istio

  # Disable
  az aks update -g $RG -n $CLUSTER --disable-app-routing-istio

History Notes

[AKS] az aks create: Add --enable-app-routing-istio to enable Gateway API based ingress on App Routing via
Istio
[AKS] az aks update: Add --enable-app-routing-istio and --disable-app-routing-istio to manage App Routing
Istio


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

@azure-client-tools-bot-prd
Copy link
Copy Markdown

azure-client-tools-bot-prd Bot commented Apr 23, 2026

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

@azure-client-tools-bot-prd
Copy link
Copy Markdown

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

@azure-client-tools-bot-prd
Copy link
Copy Markdown

azure-client-tools-bot-prd Bot commented Apr 23, 2026

❌AzureCLI-BreakingChangeTest
❌acs
rule cmd_name rule_message suggest_message
1007 - ParaRemove aks create cmd aks create removed parameter enable_hosted_system please add back parameter enable_hosted_system for cmd aks create
1007 - ParaRemove aks create cmd aks create removed parameter node_subnet_id please add back parameter node_subnet_id for cmd aks create
1007 - ParaRemove aks create cmd aks create removed parameter system_node_subnet_id please add back parameter system_node_subnet_id for cmd aks create
1007 - ParaRemove aks mesh enable cmd aks mesh enable removed parameter proxy_redirection_mechanism please add back parameter proxy_redirection_mechanism for cmd aks mesh enable
1002 - CmdRemove aks mesh proxy-redirection-mechanism cmd aks mesh proxy-redirection-mechanism removed please confirm cmd aks mesh proxy-redirection-mechanism removed
1010 - ParaPropUpdate aks nodepool add cmd aks nodepool add update parameter spot_max_price: updated property default from nan to nan please change property default from nan to nan for parameter spot_max_price of cmd aks nodepool add
⚠️ 1011 - SubgroupAdd aks approuting gateway sub group aks approuting gateway added
⚠️ 1006 - ParaAdd aks create cmd aks create added parameter enable_app_routing_istio
⚠️ 1010 - ParaPropUpdate aks nodepool add cmd aks nodepool add update parameter os_sku: updated property choices from ['AzureContainerLinux', 'AzureLinux', 'AzureLinux3', 'CBLMariner', 'Mariner', 'Ubuntu', 'Ubuntu2204', 'Ubuntu2404', 'Windows2019', 'Windows2022', 'Windows2025'] to ['AzureContainerLinux', 'AzureLinux', 'AzureLinux3', 'CBLMariner', 'Mariner', 'Ubuntu', 'Ubuntu2204', 'Ubuntu2404', 'Windows2019', 'Windows2022']
⚠️ 1006 - ParaAdd aks update cmd aks update added parameter disable_app_routing_istio
⚠️ 1006 - ParaAdd aks update cmd aks update added parameter enable_app_routing_istio
❌appservice
rule cmd_name rule_message suggest_message
1007 - ParaRemove webapp deploy cmd webapp deploy removed parameter enriched_errors please add back parameter enriched_errors for cmd webapp deploy
1007 - ParaRemove webapp sitecontainers convert cmd webapp sitecontainers convert removed parameter main_container_name please add back parameter main_container_name for cmd webapp sitecontainers convert
1007 - ParaRemove webapp sitecontainers convert cmd webapp sitecontainers convert removed parameter yes please add back parameter yes for cmd webapp sitecontainers convert
1007 - ParaRemove webapp up cmd webapp up removed parameter enriched_errors please add back parameter enriched_errors for cmd webapp up
⚠️ 1008 - ParaPropAdd appservice plan create cmd appservice plan create update parameter sku: added property default=B1

Please submit your Breaking Change Pre-announcement ASAP if you haven't already. Please note:

  • Breaking changes can only be merged during the designated breaking change window
  • A pre-announcement must be released at least one month in advance

For more details on how to introduce breaking changes, refer to the documentation: azure-cli/doc/how_to_introduce_breaking_changes.md

@yonzhan
Copy link
Copy Markdown
Collaborator

yonzhan commented Apr 23, 2026

Thank you for your contribution! We will review the pull request and get back to you soon.

@github-actions
Copy link
Copy Markdown

The git hooks are available for azure-cli and azure-cli-extensions repos. They could help you run required checks before creating the PR.

Please sync the latest code with latest dev branch (for azure-cli) or main branch (for azure-cli-extensions).
After that please run the following commands to enable git hooks:

pip install azdev --upgrade
azdev setup -c <your azure-cli repo path> -r <your azure-cli-extensions repo path>

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds support in az aks create/update (and new az aks approuting gateway istio subcommands) to manage the Gateway API installation and the App Routing “Istio” Gateway API implementation, backed by a newer azure-mgmt-containerservice SDK version.

Changes:

  • Bump azure-mgmt-containerservice dependency to 41.1.0 across setup + OS-specific requirements.
  • Add new CLI args for managed Gateway API installation (--enable/--disable-gateway-api) and App Routing Istio implementation (--enable/--disable-app-routing-istio, --enable/--disable-ari).
  • Implement create/update wiring in the managed cluster decorators and add unit + scenario tests and help entries, plus new az aks approuting gateway istio enable/disable commands.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
src/azure-cli/setup.py Bumps mgmt-containerservice SDK floor to pick up new model surface.
src/azure-cli/requirements.py3.windows.txt Pins mgmt-containerservice to 41.1.0 on Windows.
src/azure-cli/requirements.py3.Linux.txt Pins mgmt-containerservice to 41.1.0 on Linux.
src/azure-cli/requirements.py3.Darwin.txt Pins mgmt-containerservice to 41.1.0 on macOS.
src/azure-cli/azure/cli/command_modules/acs/_consts.py Adds constants for gateway installation + App Routing Istio modes.
src/azure-cli/azure/cli/command_modules/acs/_params.py Registers new CLI parameters for aks create/update.
src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py Wires new params into create/update request shaping.
src/azure-cli/azure/cli/command_modules/acs/custom.py Adds new approuting gateway istio enable/disable custom commands; passes new params into decorator flow.
src/azure-cli/azure/cli/command_modules/acs/commands.py Registers new aks approuting gateway istio command group.
src/azure-cli/azure/cli/command_modules/acs/_help.py Documents new args and new approuting gateway istio commands.
src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py Adds unit tests for new context getters and decorator mutations.
src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_aks_commands.py Adds new scenario tests covering gateway api + app routing istio flows.

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

Comment thread src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py Outdated
Comment thread src/azure-cli/azure/cli/command_modules/acs/_help.py
Comment thread src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_aks_commands.py Outdated
Comment thread src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py Outdated
meecethereese pushed a commit to meecethereese/azure-cli that referenced this pull request Apr 27, 2026
The cherry-picked App Routing Istio commits from PR Azure#33254 share branch
ancestry with the Managed Gateway API changes from PR Azure#33238. This commit
surgically removes the gateway-api-only code that came along, while
preserving the App Routing Istio functionality.

Removed:
- CONST_MANAGED_GATEWAY_INSTALLATION_DISABLED/STANDARD constants
- enable_gateway_api / disable_gateway_api parameters and help entries
- set_up_ingress_profile_gateway_api / update_ingress_profile_gateway_api
  decorator methods
- Associated unit and integration tests

Kept:
- App Routing Istio (CONST_APP_ROUTING_ISTIO_MODE_*)
- gateway_api_implementations.app_routing_istio field handling
Mauricio Ferrari added 11 commits April 27, 2026 17:32
The cherry-picked App Routing Istio commits from PR Azure#33254 share branch
ancestry with the Managed Gateway API changes from PR Azure#33238. This commit
surgically removes the gateway-api-only code that came along, while
preserving the App Routing Istio functionality.

Removed:
- CONST_MANAGED_GATEWAY_INSTALLATION_DISABLED/STANDARD constants
- enable_gateway_api / disable_gateway_api parameters and help entries
- set_up_ingress_profile_gateway_api / update_ingress_profile_gateway_api
  decorator methods
- Associated unit and integration tests

Kept:
- App Routing Istio (CONST_APP_ROUTING_ISTIO_MODE_*)
- gateway_api_implementations.app_routing_istio field handling
@meecethereese meecethereese force-pushed the maufe/app-routing-istio branch from dff1e2d to 0379b08 Compare April 27, 2026 21:40
Comment thread src/azure-cli/azure/cli/command_modules/acs/_params.py
@meecethereese
Copy link
Copy Markdown
Author

Passing live tests https://dev.azure.com/msazure/CloudNativeCompute/_build/results?buildId=162016635&view=results

@FumingZhang
Copy link
Copy Markdown
Member

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 3 pipeline(s).

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