Skip to content

feat(appservice): Add --in-place flag for cv1 to flex upgrade support - #33863

Draft
Sreemoyee Sadhukhan (Sreemoyee26) wants to merge 3 commits into
Azure:devfrom
Sreemoyee26:user/ssadhukhan/functionsCV1-upgrade
Draft

feat(appservice): Add --in-place flag for cv1 to flex upgrade support#33863
Sreemoyee Sadhukhan (Sreemoyee26) wants to merge 3 commits into
Azure:devfrom
Sreemoyee26:user/ssadhukhan/functionsCV1-upgrade

Conversation

@Sreemoyee26

@Sreemoyee26 Sreemoyee Sadhukhan (Sreemoyee26) commented Aug 7, 2026

Copy link
Copy Markdown

🤖 PR Validation — ️✔️ All clear

Tests
️✔️ 130/130

… to Flex upgrade

Add in-place CV1 Linux Consumption -> Flex Consumption upgrade support to the existing 'az functionapp flex-migration start' command via a new '--in-place' flag. When set, the command upgrades the source app directly (same app, same name, same hostname) instead of creating a new side-by-side app.

Changes:

  • custom.py: Add in_place branching + _upgrade_consumption_to_flex_in_place()
  • _params.py: Add --in-place/-i and deployment-storage/scale params
  • _help.py: Update group summary and add in-place example
  • tests: Add 7 mock unit tests + 4 live scenario tests

Design: based on cv1-to-flex-upgrade-uber-design/14-azure-cli.md

Related command

Description

Testing Guide
Validated command in ncus stage functionapp - cv1-flex-ncusstage8:
image

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature


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

… to Flex upgrade

Add in-place CV1 Linux Consumption -> Flex Consumption upgrade support
to the existing 'az functionapp flex-migration start' command via a new
'--in-place' flag. When set, the command upgrades the source app directly
(same app, same name, same hostname) instead of creating a new side-by-side
app.

Changes:
- custom.py: Add in_place branching + _upgrade_consumption_to_flex_in_place()
- _params.py: Add --in-place/-i and deployment-storage/scale params
- _help.py: Update group summary and add in-place example
- tests: Add 7 mock unit tests + 4 live scenario tests

Design: based on cv1-to-flex-upgrade-uber-design/14-azure-cli.md

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@microsoft-github-policy-service microsoft-github-policy-service Bot added the customer-reported Issues that are reported by GitHub users external to the Azure organization. label Aug 7, 2026
@microsoft-github-policy-service

Copy link
Copy Markdown
Contributor

Thank you for your contribution Sreemoyee Sadhukhan (@Sreemoyee26)! We will review the pull request and get back to you soon.

@Sreemoyee26 Sreemoyee Sadhukhan (Sreemoyee26) changed the title feat(appservice): add --in-place flag to flex-migration start for CV1… feat(appservice): Add --in-place flag to cv1 to flex-migration Aug 7, 2026
@Sreemoyee26 Sreemoyee Sadhukhan (Sreemoyee26) changed the title feat(appservice): Add --in-place flag to cv1 to flex-migration feat(appservice): Add --in-place flag for cv1 to flex upgrade support Aug 7, 2026
@a0x1ab

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

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

@yonzhan

Copy link
Copy Markdown
Collaborator

appservice

…eLimit) before Flex PUT

The GET-mutate-PUT pattern carries CV1-specific siteConfig properties that the
server rejects for Flex Consumption sites. Clear linux_fx_version and
function_app_scale_limit before submitting the upgrade PUT request.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@a0x1ab

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

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

The server-side SkuTransitionResolver reads siteEnvelope.Sku.Name (top-level),
not properties.sku. The SDK Site model serializes sku into properties, so we
serialize to dict and inject the top-level sku: {name: 'FlexConsumption'}
manually. This enables the CV1-to-Flex upgrade orchestrator to fire correctly.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@a0x1ab

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 Auto-Assign Auto assign by bot customer-reported Issues that are reported by GitHub users external to the Azure organization. Functions az functionapp

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants