Edit

Share via


How to use Commit Workflow v2 in Azure Operator Nexus

This article explains how to use Commit Workflow Version 2 (Commit V2) in Azure Operator Nexus. It helps you safely stage changes, review them, commit the changes you want, or discard the ones you don’t need—across supported resources.

Prerequisites

  • Runtime version: 5.0.1 or later is required for Commit Workflow v2.

  • Azure CLI version 8.0.0b3 or later is installed

  • Your Network Fabric must be in Provisioned state and configuration state must be Succeeded.

  • The fabric and all impacted resources must have admin state set to Enabled.

  • You must have BYOS (Bring Your Own Storage) configured on the fabric to use the optional validation step.

Commit Workflow v2 overview

Commit V2 enables you to update supported resources in a draft state, validate configuration changes, view configuration differences, and explicitly commit or discard the changes. It ensures atomicity, operational control, and improved user experience for complex network fabric operations.

Benefits of Commit V2

  • Faster commit operations: Reduces the time to apply configuration changes.

  • Review pending configuration: View and validate configuration differences before committing.

  • Discard commit batch: Revert staged changes if necessary.

  • Lock configuration: Prevent conflicting changes during staging and review.

  • Foundation for advanced scenarios: Enables A/B commit strategy and multi-user sessions in future releases.

Workflow summary

The Commit V2 workflow includes the following steps:

  • Update supported resources in draft mode using PATCH operations.

  • Lock the fabric configuration to review or discard staged changes.

  • Optionally, view configuration differences for each device.

  • Either commit or discard the changes.

  • After commit/discard, the fabric and all related resources return to a Provisioned state.

Step 1: Update resources in draft mode

Resources can be updated using PATCH operations that leave the resource in a draft (ConfigurationState: Accepted) until explicitly committed. These changes are not applied to the data plane until committed.

Example scenario

  • Create a new Route Policy and attach it to Internal Network 1

  • Create another Internal Network 2

All these changes are batched, but not applied to devices yet.

Step 2: Lock fabric configuration

Before you can view the configuration diff or discard the commit, the fabric must be locked in configuration mode.

Lock the configuration to signal that all intended updates are completed. After this lock, no further updates can be made to any fabric-related resources until you unlock.

Azure CLI Command

az networkfabric fabric lock-fabric \
    --action Lock \
    --lock-type Configuration \
    --network-fabric-name "example-fabric" \
    --resource-group "example-rg"

Note

Ensure fabric configuration state is Accepted.
Fabric is not under maintenance due to unrelated (non-commit) operations.
Network Fabric version is >= 5.0.1.
Fabric is in ProvisioningState: Succeeded.

Another key functionality commit V2 provides is to view the pending commit configuration and last committed configuration for each device (except Network Packet Broker (NPB) devices) so that users can compare them to validate the intended configuration. If there's any discrepancy, users can unlock the fabric, make necessary change, lock fabric, review pending commit followed by commit operation.

Validate the configuration using the view-device-configuration post-action. This step provides insight into the expected configuration outcomes.

Important

The fabric must be locked in configuration mode.
BYOS must be configured on the Network Fabric.

Azure CLI Command


az networkfabric fabric view-device-configuration \
    --network-fabric-name "example-fabric"\
    --resource-group "example-rg"

Configuration diff location

Configuration diff files are stored in the customer-provided storage account in the following format:

https://<storageAccountName>.blob.core.windows.net/<NF_name>/CommitOperations/DeviceConfigDiff/<CommitBatchId>

You can retrieve the current CommitBatchId by performing a GET request on the fabric resource with API version 2024-06-15-preview or higher.

Step 3a: Discard commit batch (Optional)

Commit Discard is a POST action on NetworkFabric, allowed before a commit is performed. This operation allows a user to revert the changes made to the resources via PATCH operations for a specific commit session. Users may choose to discard pending configuration updates if issues are found during validation using ViewDeviceConfiguration. This operation restores the ARM resource state to its last known good configuration and resets the fabric state from Accepted & Locked to Succeeded.

Note

You can retrieve the CommitBatchId by performing a GET request on the fabric resource with API version 2024-06-15-preview or above.

Important

If your Network Fabric resource is associated with a User Assigned Managed Identity (UAMI)—for example, when using a customer-managed storage account—you must ensure that the Microsoft.ManagedNetworkFabric resource provider has the Managed Identity Operator (MIO) role on the UAMI. Without this permission, the commit discard operation fails. This requirement is applicable only when the Network Fabric is linked to a UAMI. Network Fabrics that aren't associated with a UAMI don’t need any extra permission for commit discard.

az networkfabric fabric discard-commit-batch \
  --resource-group "example-rg" \
  --network-fabric-name "example-fabric"
  --commit-batch-id "example-commit-batch-id"

Note

Internal/External network resources move to Admin State: Disabled and Config State: Rejected.
Resources aren't deleted, user must delete them manually if required.
Network Monitor handling includes additional constraints (disabled monitors revert to rejected state).

Need to Make More Updates?

Unlock the configuration to make further changes, then repeat the lock/validate/commit steps.

Unlock Example

az networkfabric fabric lock-fabric \
    --action Unlock \
    --lock-type Configuration \
    --network-fabric-name "example-fabric" \
    --resource-group "example-rg"

Step 4: Commit Configuration (Mandatory)

Commit the configuration to apply the batched changes to all relevant fabric devices.

Azure CLI Command

az networkfabric fabric commit-configuration \
  --resource-group "example-rg" \
  --resource-name "example-fabric"
  • The operation returns a status: Succeeded, InProgress, or Failed

  • Use CLI polling or Azure Activity Logs to monitor progress

Important

  • This workflow applies only when the fabric is in Provisioned state and admin state is Enabled.
  • Locking is mandatory before commit; commit cannot proceed without locking first.
  • Rollback is not supported – any incorrect configuration must be updated and re-committed.
  • Updates outside of this workflow (e.g., to tags or disconnected resources) do not require commit.