Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Feature flags control whether selected Network Fabric capabilities are active on your instance. Starting with release 12.0, supported feature flags are properties of the Network Fabric resource, so you can view them through the same API and CLI that you already use for other fabric configuration.
Key concepts
Each feature flag returned by the Network Fabric resource has three properties:
featureFlagName: The descriptive name of the flag.featureFlagValue: Your requested configuration, eitherEnableorDisable.featureFlagState: The operational state of the feature, managed by the platform.
The following example shows the featureFlags property on a Network Fabric resource:
"featureFlags": [
{
"featureFlagName": "AggRouteV2RT",
"featureFlagValue": "Enable",
"featureFlagState": "Active"
}
]
Requested value compared to operational state
featureFlagValue and featureFlagState answer different questions. featureFlagValue records what you asked for. featureFlagState records what's actually running on the fabric.
You set the value. The platform manages the state. Because enabling a feature can require orchestration, a runtime upgrade, or both, the two properties can differ for as long as that work is outstanding. For example, you might see the following combination while a commit is still pending:
"featureFlagValue": "Enable",
"featureFlagState": "PendingActivation"
A featureFlagValue of Enable doesn't confirm that the feature is active. To confirm activation, check featureFlagState.
Feature flag states
The featureFlagState property is read-only and takes one of the following values:
| State | Description |
|---|---|
Active |
The feature is active on the Network Fabric. |
Inactive |
The feature isn't active on the Network Fabric. |
PendingActivation |
You requested enablement, but a required action, such as a runtime upgrade, didn't finish successfully. |
PendingDeactivation |
You requested disablement, but a required action didn't finish successfully. |
Note
A flag that's waiting for a runtime upgrade stays at PendingActivation. There's no separate state for this condition.
When you enable a flag, the state moves from Inactive to PendingActivation, and then to Active after the required effectuation action completes. Disabling a flag follows the same pattern in reverse, moving from Active to PendingDeactivation, and then to Inactive.
Feature flags available
Not every visible flag is settable. The service returns read-only flags so that you can see their state, but it rejects requests to change them.
| Flag | Description | Default | Effectuation | Settable |
|---|---|---|---|---|
AggRouteV2RT |
De-preference aggregate routes on Azure Operator Nexus devices. | Disable |
Commit, followed by a runtime upgrade | Yes |
UseMicroBfd |
Enable the Micro-BFD feature on the Network Fabric. | Disable |
Commit | No |
How feature flag changes are applied
Changing a feature flag can require updates across the resource provider, Azure Resource Manager, the orchestrator, and the network devices themselves. Depending on the flag, final effectuation can also depend on a runtime upgrade, a maintenance-based upgrade, or a feature-specific workflow.
Network Fabric applies these changes through the commit workflow v2, the same workflow used for other enabled fabric resources.
For more information, see Commit workflow v2 in Azure Operator Nexus - Network Fabric.
Adoption
New fabrics
On a Network Fabric that you create on release 12.0, supported flags become visible with their default values as part of the creation and provisioning lifecycle. You can change a settable flag from its default in the initial PUT request, or with a PATCH request before provisioning. The flag is effectuated as part of successful provisioning, and the state becomes Active.
Note
Read-only flags are populated during the provisioning flow rather than during fabric creation, so not every flag is present immediately after the create call returns.
Existing fabrics
On a Network Fabric that already exists, an upgrade to release 12.0 is required before supported flags become visible through a GET request.
Surfacing the flags doesn't change how your fabric behaves. Initial flag defaults are aligned with the current behavior of the instance, so behavior changes only after you explicitly change a flag. After the flags are visible, you request changes with a PATCH request and apply them through the commit workflow v2, along with any other effectuation action that the flag requires.
Constraints
Consider the following constraints before you plan a feature flag change.
Include the complete flag array
The featureFlags property follows Azure Resource Manager array replacement semantics. A PATCH request must include every persisted flag and its current value, not just the flag you're changing. The service rejects requests that omit flags with an error.
Retrieve the current array with a GET request, change the entry you want, and submit the complete array.
Changes are blocked during other operations
The service rejects feature flag changes while the Network Fabric is running another mutually exclusive operation, including:
- Another commit
- An upgrade
- A reboot
- Provisioning or deprovisioning
- Certificate rotation
- An active administrative lock
- An active configuration lock
The API returns an error that identifies the blocking condition. This error appears in the Activity Log alongside other Network Fabric operations.
Effectuation can require more than a commit
The commit workflow v2 is the unified configuration workflow, but it isn't always sufficient on its own to activate or deactivate a feature. Activation can stay pending until a runtime upgrade, a maintenance-based upgrade, or another feature-specific workflow completes.