Skip to content

compute_vm_create: Update default VM size from Standard_DS1_v2 to Standard_D2s_v5 and Fix Option Bindings for VMSS update#2415

Open
haagha wants to merge 1 commit intomicrosoft:mainfrom
haagha:haagha/fix-default-vmsize
Open

compute_vm_create: Update default VM size from Standard_DS1_v2 to Standard_D2s_v5 and Fix Option Bindings for VMSS update#2415
haagha wants to merge 1 commit intomicrosoft:mainfrom
haagha:haagha/fix-default-vmsize

Conversation

@haagha
Copy link
Copy Markdown
Contributor

@haagha haagha commented Apr 15, 2026

What does this PR do?

This PR changes the default size of VM and VMSS creation from Standard_DS1_v2 to Standard_DS2_v2.
This PR will also fixes bugs relating to VMSS update options binding.

GitHub issue number?

#2244

Pre-merge Checklist

  • Required for All PRs
    • Read contribution guidelines
    • PR title clearly describes the change
    • Commit history is clean with descriptive messages (cleanup guide)
    • Added comprehensive tests for new/modified functionality
    • Created a changelog entry if the change falls among the following: new feature, bug fix, UI/UX update, breaking change, or updated dependencies. Follow the changelog entry guide
  • For MCP tool changes:
    • One tool per PR: This PR adds or modifies only one MCP tool for faster review cycles
    • Updated servers/Azure.Mcp.Server/README.md and/or servers/Fabric.Mcp.Server/README.md documentation
    • Validate README.md changes running the script ./eng/scripts/Process-PackageReadMe.ps1. See Package README
    • For new or modified tool descriptions, ran ToolDescriptionEvaluator and obtained a score of 0.4 or more and a top 3 ranking for all related test prompts
    • For tools with new names, including new tools or renamed tools, update consolidated-tools.json
    • For renamed tools, follow the Tool Rename Checklist and tag the PR with the breaking-change label
    • For new tools associated with Azure services or publicly available tools/APIs/products, add URL to documentation in the PR description
  • Extra steps for Azure MCP Server tool changes:
    • Updated command list in servers/Azure.Mcp.Server/docs/azmcp-commands.md
    • Ran ./eng/scripts/Update-AzCommandsMetadata.ps1 to update tool metadata in azmcp-commands.md (required for CI)
    • Updated test prompts in servers/Azure.Mcp.Server/docs/e2eTestPrompts.md
    • 👉 For Community (non-Microsoft team member) PRs:
      • Security review: Reviewed code for security vulnerabilities, malicious code, or suspicious activities before running tests (crypto mining, spam, data exfiltration, etc.)
      • Manual tests run: added comment /azp run mcp - pullrequest - live to run Live Test Pipeline

@haagha haagha requested a review from g2vinay as a code owner April 15, 2026 21:02
Copilot AI review requested due to automatic review settings April 15, 2026 21:02
@haagha haagha requested review from a team as code owners April 15, 2026 21:02
@haagha haagha changed the title compute_vm_create: Update default VM size from Standard_DS1_v2 to Standard_D2s_v5 across commands and documentation compute_vm_create: Update default VM size from Standard_DS1_v2 to Standard_D2s_v5 and Fix Option Bindings for VMSS update Apr 15, 2026
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

Note

Copilot was unable to run its full agentic suite in this review.

Updates Azure Compute tool defaults to use a newer VM size and fixes option parsing so vmss update can accept capacity and related tri-state flags.

Changes:

  • Change default VM size for vm create / vmss create from Standard_DS1_v2 to Standard_D2s_v5 across service logic, tests, and docs.
  • Fix VMSS update option typing by making --capacity, --overprovision, and --enable-auto-os-upgrade nullable to distinguish “not provided” vs “set”.
  • Add changelog entries and update server docs/e2e prompts to reflect the new defaults.

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tools/Azure.Mcp.Tools.Compute/tests/Azure.Mcp.Tools.Compute.UnitTests/Vmss/VmssUpdateCommandTests.cs Adds a new validation case for --capacity in vmss update.
tools/Azure.Mcp.Tools.Compute/tests/Azure.Mcp.Tools.Compute.UnitTests/Vmss/VmssCreateCommandTests.cs Updates expected VMSS default size to Standard_D2s_v5.
tools/Azure.Mcp.Tools.Compute/tests/Azure.Mcp.Tools.Compute.UnitTests/Vm/VmCreateCommandTests.cs Updates expected VM default size to Standard_D2s_v5.
tools/Azure.Mcp.Tools.Compute/tests/Azure.Mcp.Tools.Compute.LiveTests/ComputeCommandTests.cs Updates live test assertions for VM size.
tools/Azure.Mcp.Tools.Compute/src/Services/ComputeService.cs Changes default VM size constant and related comments.
tools/Azure.Mcp.Tools.Compute/src/Options/ComputeOptionDefinitions.cs Updates help text and makes VMSS update options nullable.
tools/Azure.Mcp.Tools.Compute/src/ComputeSetup.cs Updates tool description default-size text.
tools/Azure.Mcp.Tools.Compute/src/Commands/Vmss/VmssCreateCommand.cs Updates command description default-size text.
tools/Azure.Mcp.Tools.Compute/src/Commands/Vm/VmCreateCommand.cs Updates command description default-size text.
servers/Azure.Mcp.Server/docs/e2eTestPrompts.md Updates e2e prompt to the new default size.
servers/Azure.Mcp.Server/docs/azmcp-commands.md Updates docs for default size for VM and VMSS create.
servers/Azure.Mcp.Server/changelog-entries/1776182026573.yaml Adds changelog entry for VMSS update option fix.
servers/Azure.Mcp.Server/changelog-entries/1775768065287.yaml Adds changelog entry for default VM size change.
eng/tools/ToolDescriptionEvaluator/prompts/namespace-tools.json Updates evaluator prompt tool description default-size text.


// Default VM size matching Azure CLI (az vm create --size default)
private const string DefaultVmSize = "Standard_DS1_v2";
// Default VM size (D-series v5: 2 vCPU, 8 GB RAM, available in all regions)
Copy link

Copilot AI Apr 15, 2026

Choose a reason for hiding this comment

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

The comment claims Standard_D2s_v5 is “available in all regions”, which is not a safe guarantee and can become inaccurate (availability varies by region/subscription and can change over time). Consider removing the region-availability claim and keeping the comment to the intent (tool default) and the approximate spec, or link to authoritative docs if the statement must remain.

Suggested change
// Default VM size (D-series v5: 2 vCPU, 8 GB RAM, available in all regions)
// Default VM size (D-series v5, approximately 2 vCPU and 8 GB RAM)

Copilot uses AI. Check for mistakes.
[--os-disk-type <os-disk-type>]

Defaults to the Azure CLI baseline of Standard_DS1_v2 size and the Ubuntu2404 image when not specified. When new NSG rules are created, SSH/RDP access is allowed from any source unless `--source-address-prefix` is provided.
Defaults to the Azure CLI baseline of Standard_D2s_v5 size and the Ubuntu2404 image when not specified. When new NSG rules are created, SSH/RDP access is allowed from any source unless `--source-address-prefix` is provided.
Copy link

Copilot AI Apr 15, 2026

Choose a reason for hiding this comment

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

This line states “Defaults to the Azure CLI baseline of Standard_D2s_v5”, but the tool’s default is a product choice and may not match Azure CLI defaults (which have historically differed and may change independently). Suggest rewording to avoid attributing this to Azure CLI, e.g. “Defaults to Standard_D2s_v5 size …” unless there’s a verified source that Azure CLI’s baseline is indeed D2s_v5.

Suggested change
Defaults to the Azure CLI baseline of Standard_D2s_v5 size and the Ubuntu2404 image when not specified. When new NSG rules are created, SSH/RDP access is allowed from any source unless `--source-address-prefix` is provided.
Defaults to Standard_D2s_v5 size and the Ubuntu2404 image when not specified. When new NSG rules are created, SSH/RDP access is allowed from any source unless `--source-address-prefix` is provided.

Copilot uses AI. Check for mistakes.
Comment on lines 55 to 60
[Theory]
[InlineData("--vmss-name test-vmss --resource-group test-rg --subscription sub123 --upgrade-policy Automatic", true)]
[InlineData("--vmss-name test-vmss --resource-group test-rg --subscription sub123 --capacity 5", true)]
[InlineData("--vmss-name test-vmss --resource-group test-rg --subscription sub123 --tags env=test", true)]
[InlineData("--vmss-name test-vmss --resource-group test-rg --subscription sub123 --scale-in-policy OldestVM", true)]
[InlineData("--vmss-name test-vmss --resource-group test-rg --subscription sub123", false)] // No update property
Copy link

Copilot AI Apr 15, 2026

Choose a reason for hiding this comment

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

The changelog claims vmss update now accepts --capacity, --overprovision, and --enable-auto-os-upgrade, but this test only adds coverage for --capacity. Add InlineData cases for --overprovision true/false and --enable-auto-os-upgrade true/false (and any expected failure cases) to ensure the option-type change actually fixes parsing/binding for those flags.

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +3
changes:
- section: "Bugs Fixed"
description: "Fixed `vmss update` command not accepting `--capacity`, `--overprovision`, or `--enable-auto-os-upgrade` options due to option type mismatch" No newline at end of file
Copy link

Copilot AI Apr 15, 2026

Choose a reason for hiding this comment

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

This PR includes a functional bug fix to vmss update option parsing in addition to the default VM size change described by the PR title, and the PR description template is still unfilled. Please update the PR description (and ideally the title) to explicitly include the vmss update option parsing fix, or split into separate PRs if you want to keep changes scoped to the default-size update.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Untriaged

Development

Successfully merging this pull request may close these issues.

2 participants