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.
Bicep resource definition
The fleets/updateRuns resource type can be deployed with operations that target:
- Resource groups - See resource group deployment commands
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:
- Resource groups - See resource group deployment commands For a list of changed properties in each API version, see change log.
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) |