Skip to content

Conversation

Copy link

Copilot AI commented Nov 20, 2025

Description

Adds HighSpeedInterconnectPlacement parameter to New-AzVmss and New-AzVmssConfig cmdlets for controlling Infiniband network interconnect on RDMA-capable VM sizes. Accepts values: None or Trunk.

Changes:

  • Added parameter to both cmdlets with PSArgumentCompleter
  • Updated PSVirtualMachineScaleSet model
  • Plumbed through both Uniform and Flexible orchestration modes in VirtualMachineScaleSetStrategy.cs
  • Added help documentation and test coverage

Usage:

# Simple parameter set
New-AzVmss -Name "MyVmss" -Credential $cred `
    -HighSpeedInterconnectPlacement "Trunk" -Location "westus2"

# Config-based
$config = New-AzVmssConfig -Location "westus2" `
    -HighSpeedInterconnectPlacement "None"
New-AzVmss -ResourceGroupName "MyRG" -Name "MyVmss" `
    -VirtualMachineScaleSet $config

Requirements:

  • API version 2025-04-01 or higher
  • SDK already includes property in VirtualMachineScaleSet model

Mandatory Checklist

  • SHOULD update ChangeLog.md file(s) appropriately
    • Update src/{{SERVICE}}/{{SERVICE}}/ChangeLog.md.
      • A snippet outlining the change(s) made in the PR should be written under the ## Upcoming Release header in the past tense.
    • Should not change ChangeLog.md if no new release is required, such as fixing test case only.
  • SHOULD regenerate markdown help files if there is cmdlet API change. Instruction
  • SHOULD have proper test coverage for changes in pull request.
  • SHOULD NOT adjust version of module manually in pull request

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • 1n8vsblobprodwus2184.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • 40vvsblobprodwus2135.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • 6yfvsblobprodwus2121.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • 7q7vsblobprodwus2144.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • 84hvsblobprodwus2148.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • 8wdvsblobprodwus2137.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • 9yyvsblobprodwus2157.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • b53vsblobprodwus2154.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • ba0vsblobprodwus2130.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • balvsblobprodwus2129.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • cbvvsblobprodwus2131.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • cffvsblobprodwus218.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • d94vsblobprodwus2119.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • ezcvsblobprodwus2170.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • faxvsblobprodwus2122.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • g3xvsblobprodwus2151.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • i01vsblobprodwus216.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • isvvsblobprodwus2147.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • jhgvsblobprodwus2167.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • k4pvsblobprodwus2140.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • ldhvsblobprodwus2153.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • mt2vsblobprodwus2110.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • nudvsblobprodwus214.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • p2tvsblobprodwus2189.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • s8nvsblobprodwus2158.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • tn2vsblobprodwus2124.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • wlnvsblobprodwus2188.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • wztvsblobprodwus2155.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • y5lvsblobprodwus2179.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)
  • yf8vsblobprodwus212.vsblob.vsassets.io
    • Triggering command: dotnet build src/Compute/Compute/Compute.csproj -c Debug (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>Add highSpeedInterconnectPlacement property in VMSS</issue_title>
<issue_description>

Guidelines

The purpose of the Azure PowerShell design review is to ensure that the cmdlets follow the same pattern across the Azure modules. An early design review reduces the risk of unnecessary implementation changes caused by a cmdlet syntax design change.

Please ensure your cmdlets comply with the design guidelines outlined in the PowerShell Design Guidelines document.

Please generate cmdlets syntax using GenerateCmdletDesignMarkdown.ps1 for review if your cmdlet is generated from API spec directly by Autorest.PowerShell.

If you just add parameter to existing cmdlets and parameter definition complies with guideline, the design review is not expected.

  • Have you read above statement?

    • Yes

Service Release Details

  • Is this an Embargoed Preview, A Public Preview, or a General Release?

    • General Release
  • What is the expected service release date?

    • { EXPECTED RELEASE DATE HERE }
  • Which Powershell module are these changes being made in?

    • Az.Compute

Contact Information

  • Main developer contacts (emails + github aliases)

  • PM contact (email + github alias)

    • NA
  • Other people who should attend a design review (email)

    • NA

High Level Scenarios

  • Describe how your feature is intended to be used by customers.

    • The HighSpeedInterconnectPlacement property allows customers to enable/opt out of Infiniband network interconnect between RDMA VM sizes.
  • Piping scenarios / how these cmdlets are used with existing cmdlets

    • These are existing cmdlets and the new feature parameter will not change the piping scenarios.
  • Sample of end-to-end usage

    • Please provide comprehensive examples that don't assume additional setup. It helps the audience understand your feature.

Syntax changes

Indicate if you are requesting an edit to existing cmdlets, adding new cmdlets, or both. Then edit the corresponding section below.

Expecting to add something like -HighSpeedInterconnectPlacement to the New-AvVMSS cmdlet:
Update the Full parameter set to add HighSpeedInterconnectPlacement


New-AzVmss
   [[-ResourceGroupName] <String>]
   [-VMScaleSetName] <String>
   [-AsJob]
   [-ImageName <String>]
   -Credential <PSCredential>
   [-InstanceCount <Int32>]
   [-VirtualNetworkName <String>]
   [-SubnetName <String>]
   [-PublicIpAddressName <String>]
   [-DomainNameLabel <String>]
   [-SecurityGroupName <String>]
   [-LoadBalancerName <String>]
   [-BackendPort <Int32[]>]
   [-Location <String>]
   [-VmSize <String>]
   [-UpgradePolicyMode <UpgradeMode>]
   [-AllocationMethod <String>]
   [-VnetAddressPrefix <String>]
   [-SubnetAddressPrefix <String>]
   [-FrontendPoolName <String>]
   [-BackendPoolName <String>]
   [-SystemAssignedIdentity]
   [-UserAssignedIdentity <String>]
   [-EnableUltraSSD]
   [-Zone <System.Collections.Generic.List`1[System.String]>]
   [-NatBackendPort <Int32[]>]
   [-DataDiskSizeInGb <Int32[]>]
   [-ProximityPlacementGroupId <String>]
   [-Priority <String>]
   [-EvictionPolicy <String>]
   [-MaxPrice <Double>]
   [-ScaleInPolicy <String[]>]
   [-SkipExtensionsOnOverprovisionedVMs]
   [-DefaultProfile <IAzureContextContainer>]
   [- OrchestrationMode <String>] 
   ** [-HighSpeedInterconnectPlacement <HighSpeedInterconnectPlacement>] **
   [-SinglePlacementGroup]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Also add highSpeedInterconnectPlacement mode to New-AzVmssConfig

New-AzVmssConfig
   [[-Overprovision] <Boolean>]
   [[-Location] <String>]
   [[-Tag] <Hashtable>]
   [[-SkuName] <String>]
   [[-SkuTier] <String>]
   [[-SkuCapacity] <Int32>]
   [[-UpgradePolicyMode] <UpgradeMode>]
   [[-OsProfile] <VirtualMachineScaleSetOSProfile>]
   [[-StorageProfile] <VirtualMachineScaleSetStorageProfile>]
   [[-NetworkInterfaceConfiguration] <VirtualMachineScaleSetNetworkConfiguration[]>]
   [[-Extension] <PSVirtualMachineScaleSetExtension[]>]
   [-SkipExtensionsOnOverprovisionedVMs]
   ** [-HighSpeedInterconnectPlacement <HighSpeedInterconnectPlacement>] **
   [-OrchestrationMode <String>] 
   [-SinglePlacementGroup <Boolean>]
   [-ZoneBalance]
   [-PlatformFaultDomainCount <Int32>]
   [-Zone <String[]>]
   [-PlanName <String>]
   [-PlanPublisher <String>]
   [-Pla...

</details>


> **Custom agent used: PowerShell Pull Request Agent**
> Specialized agent for creating PowerShell pull requests based on a design request

- Fixes Azure/azure-powershell-cmdlet-review-pr#1500

<!-- START COPILOT CODING AGENT TIPS -->
---

✨ Let Copilot coding agent [set things up for you](https://github.com/audreyttt/azure-powershell/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot) — coding agent works faster and does higher quality work when set up for your repo.

audreyttt and others added 3 commits November 20, 2025 13:23
Updated agent configuration to specify a PowerShell Pull Request Agent with detailed objectives and rules for modifying cmdlets.
Copilot AI changed the title [WIP] Add highSpeedInterconnectPlacement property in VMSS Add HighSpeedInterconnectPlacement parameter to VMSS cmdlets Nov 20, 2025
Copilot AI requested a review from audreyttt November 20, 2025 18:46
audreyttt pushed a commit that referenced this pull request Dec 1, 2025
Fix PS release due to missing online version URL in NVA help file
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants