Skip to content

{Branch Management} Fix merge-base: Merge release 2.86.0 hotfixes back to dev#33305

Open
wangzelin007 wants to merge 4 commits intodevfrom
release
Open

{Branch Management} Fix merge-base: Merge release 2.86.0 hotfixes back to dev#33305
wangzelin007 wants to merge 4 commits intodevfrom
release

Conversation

@wangzelin007
Copy link
Copy Markdown
Member

Fix merge-base between release and dev

After PR #33283 ({Branch Management} Fix merge-base: Merge release 2.86.0 back to dev), four additional commits landed on release for the 2.86.0 hotfix train. This PR brings them back to dev so the two branches stay in sync and future scans/CI on dev don't drift.

Commits being merged back

# SHA PR Title
1 7d395bd67b #33287 [AKS] Hotfix: az aks create/update: Add --enable-app-routing-istio and --disable-app-routing-istio to manage App Routing Istio gateway implementation
2 111c94f766 #33295 {App Service} Skip failing tests
3 e018f595e0 #33286 [AKS] Hotfix: az aks create/update: Add --enable-gateway-api and --disable-gateway-api parameters to manage Managed Gateway API installation
4 5eee3e7fc7 #33293 {AKS} Update history notes for Azure CLI version 2.86.0

Current state (before this PR)

Metric Value
upstream/release HEAD 5eee3e7fc7
upstream/dev HEAD 858de70646
Commits in release not in dev 4
Files changed 18

What this PR does

This PR exists to satisfy the azure-production-ruleset PR requirement. It will be merged locally using git merge --no-ff and pushed, creating a 2-parent merge commit that links release history into dev and advances the merge-base.

How to merge

🛑 Do NOT use the GitHub UI merge button or GitHub CLI gh pr merge.

Follow the documented hotfix process:

  1. ✅ Create this PR (done)
  2. ✅ Approve this PR in GitHub UI
  3. Merge locally: git checkout dev && git pull origin dev && git merge origin/release --no-ff -m "Merge release 2.86.0 hotfixes back to dev"
  4. Push: git push origin dev
  5. This PR will automatically be marked as Merged

Reference

Same process as PR #32924 and PR #33283.

meecethereese and others added 4 commits April 30, 2026 16:27
…` and `--disable-app-routing-istio` to manage App Routing Istio gateway implementation (#33287)

Co-authored-by: Mauricio Ferrari <meece@MeeceSurface.localdomain>
Co-authored-by: Naga Nandyala <naga.s.p.nandyala@gmail.com>
…`--disable-gateway-api` parameters to manage Managed Gateway API installation (#33286)

Co-authored-by: Mauricio Ferrari <meece@MeeceSurface.localdomain>
Co-authored-by: Naga Nandyala <naga.s.p.nandyala@gmail.com>
Copilot AI review requested due to automatic review settings May 1, 2026 00:36
@azure-client-tools-bot-prd
Copy link
Copy Markdown

azure-client-tools-bot-prd Bot commented May 1, 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

azure-client-tools-bot-prd Bot commented May 1, 2026

⚠️AzureCLI-BreakingChangeTest
⚠️acs
rule cmd_name rule_message suggest_message
⚠️ 1011 - SubgroupAdd aks approuting gateway sub group aks approuting gateway added
⚠️ 1006 - ParaAdd aks create cmd aks create added parameter enable_app_routing_istio
⚠️ 1006 - ParaAdd aks create cmd aks create added parameter enable_gateway_api
⚠️ 1006 - ParaAdd aks update cmd aks update added parameter disable_app_routing_istio
⚠️ 1006 - ParaAdd aks update cmd aks update added parameter disable_gateway_api
⚠️ 1006 - ParaAdd aks update cmd aks update added parameter enable_app_routing_istio
⚠️ 1006 - ParaAdd aks update cmd aks update added parameter enable_gateway_api

@yonzhan
Copy link
Copy Markdown
Collaborator

yonzhan commented May 1, 2026

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

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 1, 2026

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

Syncs release 2.86.0 hotfix commits back into dev to repair/advance the merge-base and keep both branches aligned, bringing along AKS CLI surface-area changes, test adjustments, and history notes.

Changes:

  • Adds new AKS flags/commands for App Routing Istio and managed Gateway API installation, including help + constants updates.
  • Adds/updates AKS unit + scenario tests and associated recordings for the new ingress profile behaviors.
  • Marks several App Service scenario tests as @live_only() to avoid failures in non-live runs; updates HISTORY entries.

Reviewed changes

Copilot reviewed 11 out of 18 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands.py Marks several scenario tests as live-only.
src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py Adds context getters + create/update decorators for App Routing Istio and managed Gateway API ingress profile fields.
src/azure-cli/azure/cli/command_modules/acs/custom.py Wires new flags into aks create/update and adds aks approuting gateway istio enable/disable commands.
src/azure-cli/azure/cli/command_modules/acs/commands.py Registers the new aks approuting gateway istio command group.
src/azure-cli/azure/cli/command_modules/acs/_params.py Adds CLI parameters for --enable/disable-app-routing-istio and --enable/disable-gateway-api.
src/azure-cli/azure/cli/command_modules/acs/_help.py Documents the new parameters and command group help.
src/azure-cli/azure/cli/command_modules/acs/_consts.py Adds constants for App Routing Istio mode and managed Gateway API installation.
src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py Adds unit tests for new context getters and ingress profile mutations.
src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_aks_commands.py Adds scenario tests validating new flags/commands and interactions with Azure Service Mesh.
src/azure-cli/azure/cli/command_modules/acs/tests/latest/recordings/test_aks_create_with_app_routing_istio_fails_when_asm_enabled.yaml Adds recording for the new failure scenario test.
src/azure-cli/HISTORY.rst Adds history notes for the two AKS hotfix features.

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

Comment on lines +7764 to +7777
if self.context.get_enable_app_routing_istio():
if mc.ingress_profile is None:
mc.ingress_profile = self.models.ManagedClusterIngressProfile() # pylint: disable=no-member
if mc.ingress_profile.web_app_routing is None:
mc.ingress_profile.web_app_routing = (
self.models.ManagedClusterIngressProfileWebAppRouting() # pylint: disable=no-member
)
if mc.ingress_profile.web_app_routing.gateway_api_implementations is None:
mc.ingress_profile.web_app_routing.gateway_api_implementations = (
self.models.ManagedClusterWebAppRoutingGatewayAPIImplementations() # pylint: disable=no-member
)
mc.ingress_profile.web_app_routing.gateway_api_implementations.app_routing_istio = (
self.models.ManagedClusterAppRoutingIstio( # pylint: disable=no-member
mode=CONST_APP_ROUTING_ISTIO_MODE_ENABLED
Copy link

Copilot AI May 1, 2026

Choose a reason for hiding this comment

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

set_up_ingress_profile_app_routing_istio can synthesize ingress_profile.web_app_routing without enabling App Routing (web_app_routing.enabled=True). If a user runs az aks create --enable-app-routing-istio without also enabling App Routing, the request payload ends up with an Istio implementation configured under a disabled/undefined App Routing profile, which is internally inconsistent and likely to fail server-side. Consider either (a) setting web_app_routing.enabled=True when enabling App Routing Istio, or (b) raising a CLIError/RequiredArgumentMissingError instructing users to enable App Routing first (or use az aks approuting enable).

Copilot uses AI. Check for mistakes.
Comment on lines +9480 to +9490
if enable_app_routing_istio or disable_app_routing_istio:
if mc.ingress_profile is None:
mc.ingress_profile = self.models.ManagedClusterIngressProfile() # pylint: disable=no-member
if mc.ingress_profile.web_app_routing is None:
mc.ingress_profile.web_app_routing = (
self.models.ManagedClusterIngressProfileWebAppRouting() # pylint: disable=no-member
)
if mc.ingress_profile.web_app_routing.gateway_api_implementations is None:
mc.ingress_profile.web_app_routing.gateway_api_implementations = (
self.models.ManagedClusterWebAppRoutingGatewayAPIImplementations() # pylint: disable=no-member
)
Copy link

Copilot AI May 1, 2026

Choose a reason for hiding this comment

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

update_ingress_profile_app_routing_istio creates ingress_profile.web_app_routing when either flag is set, but it never checks whether App Routing is enabled (web_app_routing.enabled). This allows az aks update --enable-app-routing-istio (or the approuting gateway istio commands) to build a payload where App Routing Istio is configured under a disabled/undefined App Routing profile. Consider validating that App Routing is enabled before enabling/disabling the implementation, and avoid creating web_app_routing when App Routing is not enabled (e.g., raise a CLIError telling users to enable App Routing first).

Copilot uses AI. Check for mistakes.
Comment on lines +7787 to +7790
mc.ingress_profile = self.models.ManagedClusterIngressProfile()
if mc.ingress_profile.gateway_api is None:
mc.ingress_profile.gateway_api = (
self.models.ManagedClusterIngressProfileGatewayConfiguration(
Copy link

Copilot AI May 1, 2026

Choose a reason for hiding this comment

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

In set_up_ingress_profile_gateway_api, the self.models.ManagedClusterIngressProfile() and self.models.ManagedClusterIngressProfileGatewayConfiguration(...) calls are missing the local # pylint: disable=no-member suppression that is used for the same model factories elsewhere in this file (e.g., set_up_ingress_web_app_routing). This is likely to reintroduce pylint no-member failures for these newly added lines; please align with the existing pattern in this module.

Suggested change
mc.ingress_profile = self.models.ManagedClusterIngressProfile()
if mc.ingress_profile.gateway_api is None:
mc.ingress_profile.gateway_api = (
self.models.ManagedClusterIngressProfileGatewayConfiguration(
mc.ingress_profile = self.models.ManagedClusterIngressProfile() # pylint: disable=no-member
if mc.ingress_profile.gateway_api is None:
mc.ingress_profile.gateway_api = (
self.models.ManagedClusterIngressProfileGatewayConfiguration( # pylint: disable=no-member

Copilot uses AI. Check for mistakes.
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.

5 participants