Azure / Azure/azure-rest-api-specs

[FEATURE REQ] Support private IP prefix (Prefix on NIC) on VMSS IP configurations

Open Beginner friendly
#44,144 0 comments 0 reactions 0 assignees View on GitHub
Compute customer-reported feature-request Mgmt question Service Attention
Dominant language
TypeSpec
Stars
3.1k
Forks
5.9k
Avg merge
2d 22h
Merged PRs (30d)
444

Description

### API Spec link

https://github.com/Azure/azure-rest-api-specs/blob/main/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/models.tsp

### API Spec version

2026-03-01

### Please describe the feature.

### Summary

`Microsoft.Network` supports "Prefix on NIC": assigning a private IP **CIDR block** to a network interface IP configuration instead of a single address. `Microsoft.Compute` exposes no equivalent for VMSS instance NICs, which are defined inline via the VMSS network profile and cannot be configured through `Microsoft.Network` out-of-band.

### Where it exists today (Network)

`Microsoft.Network` defines this on the NIC IP configuration:

- File: `specification/network/resource-manager/Microsoft.Network/Network/Common/main.tsp`
- Model: `InterfaceIPConfigurationPropertiesFormat`
- Field:

```tsp
/**
* The private IP address prefix length. If specified and the allocation method is
* dynamic, the service will allocate a CIDR block instead of a single IP address.
*/
@minValue(1)
@maxValue(128)
privateIPAddressPrefixLength?: int32 | null;
```

### What's missing (Compute / VMSS)

The corresponding VMSS IP-configuration model has no prefix-length property:

- File: `specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/models.tsp`
- Model: `VirtualMachineScaleSetIPConfigurationProperties` (and the update variant used for PATCH)
- Current fields: `subnet`, `primary`, `publicIPAddressConfiguration`, `privateIPAddressVersion`, `applicationGatewayBackendAddressPools`, `applicationSecurityGroups`, `loadBalancerBackendAddressPools`, `loadBalancerInboundNatPools`, no `privateIPAddressPrefixLength`.

### Requested change

Add a `privateIPAddressPrefixLength?: int32` property to `VirtualMachineScaleSetIPConfigurationProperties` (and its update counterpart), mirroring the `Microsoft.Network` semantics, so a VMSS network profile can request a CIDR block per instance NIC.

### Motivation

Workloads that need a routable IP block per instance (e.g. per-pod/container IP allocation, NVA scenarios) can already get this on standalone NICs and individual VMs, but not on scale-set instances. This blocks the pattern on VMSS entirely from the typed SDKs (e.g. `armcompute` for Go has no field to set), forcing raw-REST/template workarounds.

Contributor guide

Open the contributing guide

Research direction

Start in specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/models.tsp and inspect VirtualMachineScaleSetIPConfigurationProperties plus its update counterpart. Compare the existing privateIPAddressPrefixLength definition in specification/network/resource-manager/Microsoft.Network/Network/Common/main.tsp, then verify both VMSS models expose the requested property with matching semantics.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure
Domain
api, cloud
Issue type
Feature
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
78/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.