Microsoft.ContainerService fleets/updateRuns

Bicep resource definition

The fleets/updateRuns resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.ContainerService/fleets/updateRuns resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.ContainerService/fleets/updateRuns@2026-03-02-preview' = {
  parent: resourceSymbolicName
  name: 'string'
  properties: {
    managedClusterUpdate: {
      nodeImageSelection: {
        customNodeImageVersions: [
          {}
        ]
        type: 'string'
      }
      upgrade: {
        kubernetesVersion: 'string'
        type: 'string'
      }
    }
    strategy: {
      stages: [
        {
          afterGates: [
            {
              displayName: 'string'
              type: 'string'
            }
          ]
          afterStageWaitInSeconds: int
          beforeGates: [
            {
              displayName: 'string'
              type: 'string'
            }
          ]
          groups: [
            {
              afterGates: [
                {
                  displayName: 'string'
                  type: 'string'
                }
              ]
              beforeGates: [
                {
                  displayName: 'string'
                  type: 'string'
                }
              ]
              maxConcurrency: 'string'
              name: 'string'
            }
          ]
          maxConcurrency: 'string'
          name: 'string'
        }
      ]
    }
    updateStrategyId: 'string'
  }
}

Property Values

Microsoft.ContainerService/fleets/updateRuns

Name Description Value
name The resource name string

Constraints:
Min length = 1
Max length = 50
Pattern = ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ (required)
parent In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.

For more information, see Child resource outside parent resource.
Symbolic name for resource of type: fleets
properties The resource-specific properties for this resource. UpdateRunProperties

GateConfiguration

Name Description Value
displayName The human-readable display name of the Gate. string

Constraints:
Min length = 1
Max length = 100
type The type of the Gate determines how it is completed. 'Approval' (required)

ManagedClusterUpdate

Name Description Value
nodeImageSelection The node image upgrade to be applied to the target nodes in update run. NodeImageSelection
upgrade The upgrade to apply to the ManagedClusters. ManagedClusterUpgradeSpec (required)

ManagedClusterUpgradeSpec

Name Description Value
kubernetesVersion The Kubernetes version to upgrade the member clusters to. string
type ManagedClusterUpgradeType is the type of upgrade to be applied. 'ControlPlaneOnly'
'Full'
'NodeImageOnly' (required)

NodeImageSelection

Name Description Value
customNodeImageVersions Custom node image versions to upgrade the nodes to. This field is required if node image selection type is Custom. Otherwise, it must be empty. For each node image family (e.g., 'AKSUbuntu-1804gen2containerd'), this field can contain at most one version (e.g., only one of 'AKSUbuntu-1804gen2containerd-2023.01.12' or 'AKSUbuntu-1804gen2containerd-2023.02.12', not both). If the nodes belong to a family without a matching image version in this field, they are not upgraded. NodeImageVersion[]
type The node image upgrade type. 'Consistent'
'Custom'
'Latest' (required)

NodeImageVersion

Name Description Value

UpdateGroup

Name Description Value
afterGates A list of Gates that will be created after this Group is executed. GateConfiguration[]
beforeGates A list of Gates that will be created before this Group is executed. GateConfiguration[]
maxConcurrency The max number of upgrades that can run concurrently in this specific group.
Acts as a ceiling (and not a quota) for the number of concurrent upgrades within the group you want to tolerate at a time.
Actual concurrency may be lower depending on stage-level concurrency limits or individual member conditions.
Group maxConcurrency has a min value of "1". The max value is min(number of clusters in the group, the stage maxConcurrency).
If no value is provided, defaults to 1.
Accepts either:
• A fixed count, e.g. "3"
• A percentage, e.g. "25%" (range 1–100). Percentage is of the number of clusters in the group.
Fractional results are rounded down. A minimum of 1 upgrade is enforced.
Examples:
• "3" --> up to 3 members from this group upgrade at once.
• "100%" --> “all at once”, up to all members for this group upgrade at the same time.
• "25%" --> up to 25% of the members in the group will be upgraded at the same time.
string

Constraints:
Pattern = ^(?:([1-9]\d*)|([1-9]\d?|100)%)$
name Name of the group.
It must match a group name of an existing fleet member.
string

Constraints:
Min length = 1
Max length = 50
Pattern = ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ (required)

UpdateRunProperties

Name Description Value
managedClusterUpdate The update to be applied to all clusters in the UpdateRun. The managedClusterUpdate can be modified until the run is started. ManagedClusterUpdate (required)
strategy The strategy defines the order in which the clusters will be updated.
If not set, all members will be updated sequentially. The UpdateRun status will show a single UpdateStage and a single UpdateGroup targeting all members.
The strategy of the UpdateRun can be modified until the run is started.
UpdateRunStrategy
updateStrategyId The resource id of the FleetUpdateStrategy resource to reference.

When creating a new run, there are three ways to define a strategy for the run:
1. Define a new strategy in place: Set the "strategy" field.
2. Use an existing strategy: Set the "updateStrategyId" field. (since 2023-08-15-preview)
3. Use the default strategy to update all the members one by one: Leave both "updateStrategyId" and "strategy" unset. (since 2023-08-15-preview)

Setting both "updateStrategyId" and "strategy" is invalid.

UpdateRuns created by "updateStrategyId" snapshot the referenced UpdateStrategy at the time of creation and store it in the "strategy" field.
Subsequent changes to the referenced FleetUpdateStrategy resource do not propagate.
UpdateRunStrategy changes can be made directly on the "strategy" field before launching the UpdateRun.
string

UpdateRunStrategy

Name Description Value
stages The list of stages that compose this update run. Min size: 1. UpdateStage[] (required)

UpdateStage

Name Description Value
afterGates A list of Gates that will be created after this Stage is executed. GateConfiguration[]
afterStageWaitInSeconds The time in seconds to wait at the end of this stage before starting the next one. Defaults to 0 seconds if unspecified. int
beforeGates A list of Gates that will be created before this Stage is executed. GateConfiguration[]
groups Defines the groups to be executed in parallel in this stage. Duplicate groups are not allowed. Min size: 1. UpdateGroup[]
maxConcurrency The max number of upgrades that can run concurrently across all groups in this stage.
Acts as a ceiling (and not a quota) for the number of concurrent upgrades within the stage you want to tolerate at a time.
Actual concurrency may be lower depending on group-level concurrency limits or individual member conditions.
Stage maxConcurrency has a min value of "1".
Accepts either:
• A fixed count, e.g., "3"
• A percentage, e.g., "25%" (range 1–100). Percentage is of the total number of clusters across all groups in the stage.
Fractional results are rounded down. A minimum of 1 upgrade is enforced.
Examples:
• "3" --> up to 3 clusters from this stage upgrade at once (across all groups).
• "100%" --> “all at once”; up to all clusters in this stage upgrade at the same time.
• "25%" --> up to 25% of the stage’s total clusters upgrade at the same time.
string

Constraints:
Pattern = ^(?:([1-9]\d*)|([1-9]\d?|100)%)$
name The name of the stage. Must be unique within the UpdateRun. string

Constraints:
Min length = 1
Max length = 50
Pattern = ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ (required)

ARM template resource definition

The fleets/updateRuns resource type can be deployed with operations that target:

Usage Examples

Resource format

To create a Microsoft.ContainerService/fleets/updateRuns resource, add the following JSON to your template.

{
  "type": "Microsoft.ContainerService/fleets/updateRuns",
  "apiVersion": "2026-03-02-preview",
  "name": "string",
  "properties": {
    "managedClusterUpdate": {
      "nodeImageSelection": {
        "customNodeImageVersions": [
          {
          }
        ],
        "type": "string"
      },
      "upgrade": {
        "kubernetesVersion": "string",
        "type": "string"
      }
    },
    "strategy": {
      "stages": [
        {
          "afterGates": [
            {
              "displayName": "string",
              "type": "string"
            }
          ],
          "afterStageWaitInSeconds": "int",
          "beforeGates": [
            {
              "displayName": "string",
              "type": "string"
            }
          ],
          "groups": [
            {
              "afterGates": [
                {
                  "displayName": "string",
                  "type": "string"
                }
              ],
              "beforeGates": [
                {
                  "displayName": "string",
                  "type": "string"
                }
              ],
              "maxConcurrency": "string",
              "name": "string"
            }
          ],
          "maxConcurrency": "string",
          "name": "string"
        }
      ]
    },
    "updateStrategyId": "string"
  }
}

Property Values

Microsoft.ContainerService/fleets/updateRuns

Name Description Value
apiVersion The api version '2026-03-02-preview'
name The resource name string

Constraints:
Min length = 1
Max length = 50
Pattern = ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ (required)
properties The resource-specific properties for this resource. UpdateRunProperties
type The resource type 'Microsoft.ContainerService/fleets/updateRuns'

GateConfiguration

Name Description Value
displayName The human-readable display name of the Gate. string

Constraints:
Min length = 1
Max length = 100
type The type of the Gate determines how it is completed. 'Approval' (required)

ManagedClusterUpdate

Name Description Value
nodeImageSelection The node image upgrade to be applied to the target nodes in update run. NodeImageSelection
upgrade The upgrade to apply to the ManagedClusters. ManagedClusterUpgradeSpec (required)

ManagedClusterUpgradeSpec

Name Description Value
kubernetesVersion The Kubernetes version to upgrade the member clusters to. string
type ManagedClusterUpgradeType is the type of upgrade to be applied. 'ControlPlaneOnly'
'Full'
'NodeImageOnly' (required)

NodeImageSelection

Name Description Value
customNodeImageVersions Custom node image versions to upgrade the nodes to. This field is required if node image selection type is Custom. Otherwise, it must be empty. For each node image family (e.g., 'AKSUbuntu-1804gen2containerd'), this field can contain at most one version (e.g., only one of 'AKSUbuntu-1804gen2containerd-2023.01.12' or 'AKSUbuntu-1804gen2containerd-2023.02.12', not both). If the nodes belong to a family without a matching image version in this field, they are not upgraded. NodeImageVersion[]
type The node image upgrade type. 'Consistent'
'Custom'
'Latest' (required)

NodeImageVersion

Name Description Value

UpdateGroup

Name Description Value
afterGates A list of Gates that will be created after this Group is executed. GateConfiguration[]
beforeGates A list of Gates that will be created before this Group is executed. GateConfiguration[]
maxConcurrency The max number of upgrades that can run concurrently in this specific group.
Acts as a ceiling (and not a quota) for the number of concurrent upgrades within the group you want to tolerate at a time.
Actual concurrency may be lower depending on stage-level concurrency limits or individual member conditions.
Group maxConcurrency has a min value of "1". The max value is min(number of clusters in the group, the stage maxConcurrency).
If no value is provided, defaults to 1.
Accepts either:
• A fixed count, e.g. "3"
• A percentage, e.g. "25%" (range 1–100). Percentage is of the number of clusters in the group.
Fractional results are rounded down. A minimum of 1 upgrade is enforced.
Examples:
• "3" --> up to 3 members from this group upgrade at once.
• "100%" --> “all at once”, up to all members for this group upgrade at the same time.
• "25%" --> up to 25% of the members in the group will be upgraded at the same time.
string

Constraints:
Pattern = ^(?:([1-9]\d*)|([1-9]\d?|100)%)$
name Name of the group.
It must match a group name of an existing fleet member.
string

Constraints:
Min length = 1
Max length = 50
Pattern = ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ (required)

UpdateRunProperties

Name Description Value
managedClusterUpdate The update to be applied to all clusters in the UpdateRun. The managedClusterUpdate can be modified until the run is started. ManagedClusterUpdate (required)
strategy The strategy defines the order in which the clusters will be updated.
If not set, all members will be updated sequentially. The UpdateRun status will show a single UpdateStage and a single UpdateGroup targeting all members.
The strategy of the UpdateRun can be modified until the run is started.
UpdateRunStrategy
updateStrategyId The resource id of the FleetUpdateStrategy resource to reference.

When creating a new run, there are three ways to define a strategy for the run:
1. Define a new strategy in place: Set the "strategy" field.
2. Use an existing strategy: Set the "updateStrategyId" field. (since 2023-08-15-preview)
3. Use the default strategy to update all the members one by one: Leave both "updateStrategyId" and "strategy" unset. (since 2023-08-15-preview)

Setting both "updateStrategyId" and "strategy" is invalid.

UpdateRuns created by "updateStrategyId" snapshot the referenced UpdateStrategy at the time of creation and store it in the "strategy" field.
Subsequent changes to the referenced FleetUpdateStrategy resource do not propagate.
UpdateRunStrategy changes can be made directly on the "strategy" field before launching the UpdateRun.
string

UpdateRunStrategy

Name Description Value
stages The list of stages that compose this update run. Min size: 1. UpdateStage[] (required)

UpdateStage

Name Description Value
afterGates A list of Gates that will be created after this Stage is executed. GateConfiguration[]
afterStageWaitInSeconds The time in seconds to wait at the end of this stage before starting the next one. Defaults to 0 seconds if unspecified. int
beforeGates A list of Gates that will be created before this Stage is executed. GateConfiguration[]
groups Defines the groups to be executed in parallel in this stage. Duplicate groups are not allowed. Min size: 1. UpdateGroup[]
maxConcurrency The max number of upgrades that can run concurrently across all groups in this stage.
Acts as a ceiling (and not a quota) for the number of concurrent upgrades within the stage you want to tolerate at a time.
Actual concurrency may be lower depending on group-level concurrency limits or individual member conditions.
Stage maxConcurrency has a min value of "1".
Accepts either:
• A fixed count, e.g., "3"
• A percentage, e.g., "25%" (range 1–100). Percentage is of the total number of clusters across all groups in the stage.
Fractional results are rounded down. A minimum of 1 upgrade is enforced.
Examples:
• "3" --> up to 3 clusters from this stage upgrade at once (across all groups).
• "100%" --> “all at once”; up to all clusters in this stage upgrade at the same time.
• "25%" --> up to 25% of the stage’s total clusters upgrade at the same time.
string

Constraints:
Pattern = ^(?:([1-9]\d*)|([1-9]\d?|100)%)$
name The name of the stage. Must be unique within the UpdateRun. string

Constraints:
Min length = 1
Max length = 50
Pattern = ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ (required)

Terraform (AzAPI provider) resource definition

The fleets/updateRuns resource type can be deployed with operations that target:

  • Resource groups For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.ContainerService/fleets/updateRuns resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.ContainerService/fleets/updateRuns@2026-03-02-preview"
  name = "string"
  parent_id = "string"
  body = {
    properties = {
      managedClusterUpdate = {
        nodeImageSelection = {
          customNodeImageVersions = [
            {
            }
          ]
          type = "string"
        }
        upgrade = {
          kubernetesVersion = "string"
          type = "string"
        }
      }
      strategy = {
        stages = [
          {
            afterGates = [
              {
                displayName = "string"
                type = "string"
              }
            ]
            afterStageWaitInSeconds = int
            beforeGates = [
              {
                displayName = "string"
                type = "string"
              }
            ]
            groups = [
              {
                afterGates = [
                  {
                    displayName = "string"
                    type = "string"
                  }
                ]
                beforeGates = [
                  {
                    displayName = "string"
                    type = "string"
                  }
                ]
                maxConcurrency = "string"
                name = "string"
              }
            ]
            maxConcurrency = "string"
            name = "string"
          }
        ]
      }
      updateStrategyId = "string"
    }
  }
}

Property Values

Microsoft.ContainerService/fleets/updateRuns

Name Description Value
name The resource name string

Constraints:
Min length = 1
Max length = 50
Pattern = ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ (required)
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: fleets
properties The resource-specific properties for this resource. UpdateRunProperties
type The resource type "Microsoft.ContainerService/fleets/updateRuns@2026-03-02-preview"

GateConfiguration

Name Description Value
displayName The human-readable display name of the Gate. string

Constraints:
Min length = 1
Max length = 100
type The type of the Gate determines how it is completed. 'Approval' (required)

ManagedClusterUpdate

Name Description Value
nodeImageSelection The node image upgrade to be applied to the target nodes in update run. NodeImageSelection
upgrade The upgrade to apply to the ManagedClusters. ManagedClusterUpgradeSpec (required)

ManagedClusterUpgradeSpec

Name Description Value
kubernetesVersion The Kubernetes version to upgrade the member clusters to. string
type ManagedClusterUpgradeType is the type of upgrade to be applied. 'ControlPlaneOnly'
'Full'
'NodeImageOnly' (required)

NodeImageSelection

Name Description Value
customNodeImageVersions Custom node image versions to upgrade the nodes to. This field is required if node image selection type is Custom. Otherwise, it must be empty. For each node image family (e.g., 'AKSUbuntu-1804gen2containerd'), this field can contain at most one version (e.g., only one of 'AKSUbuntu-1804gen2containerd-2023.01.12' or 'AKSUbuntu-1804gen2containerd-2023.02.12', not both). If the nodes belong to a family without a matching image version in this field, they are not upgraded. NodeImageVersion[]
type The node image upgrade type. 'Consistent'
'Custom'
'Latest' (required)

NodeImageVersion

Name Description Value

UpdateGroup

Name Description Value
afterGates A list of Gates that will be created after this Group is executed. GateConfiguration[]
beforeGates A list of Gates that will be created before this Group is executed. GateConfiguration[]
maxConcurrency The max number of upgrades that can run concurrently in this specific group.
Acts as a ceiling (and not a quota) for the number of concurrent upgrades within the group you want to tolerate at a time.
Actual concurrency may be lower depending on stage-level concurrency limits or individual member conditions.
Group maxConcurrency has a min value of "1". The max value is min(number of clusters in the group, the stage maxConcurrency).
If no value is provided, defaults to 1.
Accepts either:
• A fixed count, e.g. "3"
• A percentage, e.g. "25%" (range 1–100). Percentage is of the number of clusters in the group.
Fractional results are rounded down. A minimum of 1 upgrade is enforced.
Examples:
• "3" --> up to 3 members from this group upgrade at once.
• "100%" --> “all at once”, up to all members for this group upgrade at the same time.
• "25%" --> up to 25% of the members in the group will be upgraded at the same time.
string

Constraints:
Pattern = ^(?:([1-9]\d*)|([1-9]\d?|100)%)$
name Name of the group.
It must match a group name of an existing fleet member.
string

Constraints:
Min length = 1
Max length = 50
Pattern = ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ (required)

UpdateRunProperties

Name Description Value
managedClusterUpdate The update to be applied to all clusters in the UpdateRun. The managedClusterUpdate can be modified until the run is started. ManagedClusterUpdate (required)
strategy The strategy defines the order in which the clusters will be updated.
If not set, all members will be updated sequentially. The UpdateRun status will show a single UpdateStage and a single UpdateGroup targeting all members.
The strategy of the UpdateRun can be modified until the run is started.
UpdateRunStrategy
updateStrategyId The resource id of the FleetUpdateStrategy resource to reference.

When creating a new run, there are three ways to define a strategy for the run:
1. Define a new strategy in place: Set the "strategy" field.
2. Use an existing strategy: Set the "updateStrategyId" field. (since 2023-08-15-preview)
3. Use the default strategy to update all the members one by one: Leave both "updateStrategyId" and "strategy" unset. (since 2023-08-15-preview)

Setting both "updateStrategyId" and "strategy" is invalid.

UpdateRuns created by "updateStrategyId" snapshot the referenced UpdateStrategy at the time of creation and store it in the "strategy" field.
Subsequent changes to the referenced FleetUpdateStrategy resource do not propagate.
UpdateRunStrategy changes can be made directly on the "strategy" field before launching the UpdateRun.
string

UpdateRunStrategy

Name Description Value
stages The list of stages that compose this update run. Min size: 1. UpdateStage[] (required)

UpdateStage

Name Description Value
afterGates A list of Gates that will be created after this Stage is executed. GateConfiguration[]
afterStageWaitInSeconds The time in seconds to wait at the end of this stage before starting the next one. Defaults to 0 seconds if unspecified. int
beforeGates A list of Gates that will be created before this Stage is executed. GateConfiguration[]
groups Defines the groups to be executed in parallel in this stage. Duplicate groups are not allowed. Min size: 1. UpdateGroup[]
maxConcurrency The max number of upgrades that can run concurrently across all groups in this stage.
Acts as a ceiling (and not a quota) for the number of concurrent upgrades within the stage you want to tolerate at a time.
Actual concurrency may be lower depending on group-level concurrency limits or individual member conditions.
Stage maxConcurrency has a min value of "1".
Accepts either:
• A fixed count, e.g., "3"
• A percentage, e.g., "25%" (range 1–100). Percentage is of the total number of clusters across all groups in the stage.
Fractional results are rounded down. A minimum of 1 upgrade is enforced.
Examples:
• "3" --> up to 3 clusters from this stage upgrade at once (across all groups).
• "100%" --> “all at once”; up to all clusters in this stage upgrade at the same time.
• "25%" --> up to 25% of the stage’s total clusters upgrade at the same time.
string

Constraints:
Pattern = ^(?:([1-9]\d*)|([1-9]\d?|100)%)$
name The name of the stage. Must be unique within the UpdateRun. string

Constraints:
Min length = 1
Max length = 50
Pattern = ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ (required)