{Branch Management} Fix merge-base: Merge release 2.86.0 hotfixes back to dev#33305
{Branch Management} Fix merge-base: Merge release 2.86.0 hotfixes back to dev#33305wangzelin007 wants to merge 4 commits intodevfrom
Conversation
…` 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>
️✔️AzureCLI-FullTest
|
|
| rule | cmd_name | rule_message | suggest_message |
|---|---|---|---|
| aks approuting gateway | sub group aks approuting gateway added |
||
| aks create | cmd aks create added parameter enable_app_routing_istio |
||
| aks create | cmd aks create added parameter enable_gateway_api |
||
| aks update | cmd aks update added parameter disable_app_routing_istio |
||
| aks update | cmd aks update added parameter disable_gateway_api |
||
| aks update | cmd aks update added parameter enable_app_routing_istio |
||
| aks update | cmd aks update added parameter enable_gateway_api |
|
Thank you for your contribution! We will review the pull request and get back to you soon. |
|
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). pip install azdev --upgrade
azdev setup -c <your azure-cli repo path> -r <your azure-cli-extensions repo path>
|
There was a problem hiding this comment.
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.
| 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 |
There was a problem hiding this comment.
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).
| 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 | ||
| ) |
There was a problem hiding this comment.
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).
| mc.ingress_profile = self.models.ManagedClusterIngressProfile() | ||
| if mc.ingress_profile.gateway_api is None: | ||
| mc.ingress_profile.gateway_api = ( | ||
| self.models.ManagedClusterIngressProfileGatewayConfiguration( |
There was a problem hiding this comment.
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.
| 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 |
Fix merge-base between
releaseanddevAfter PR #33283 (
{Branch Management} Fix merge-base: Merge release 2.86.0 back to dev), four additional commits landed onreleasefor the 2.86.0 hotfix train. This PR brings them back todevso the two branches stay in sync and future scans/CI ondevdon't drift.Commits being merged back
7d395bd67baz aks create/update: Add--enable-app-routing-istioand--disable-app-routing-istioto manage App Routing Istio gateway implementation111c94f766e018f595e0az aks create/update: Add--enable-gateway-apiand--disable-gateway-apiparameters to manage Managed Gateway API installation5eee3e7fc72.86.0Current state (before this PR)
upstream/releaseHEAD5eee3e7fc7upstream/devHEAD858de70646What this PR does
This PR exists to satisfy the
azure-production-rulesetPR requirement. It will be merged locally usinggit merge --no-ffand pushed, creating a 2-parent merge commit that linksreleasehistory intodevand 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:
git checkout dev && git pull origin dev && git merge origin/release --no-ff -m "Merge release 2.86.0 hotfixes back to dev"git push origin devReference
Same process as PR #32924 and PR #33283.