Skip to content

Commit 5b4aa0e

Browse files
Merge pull request #8156 from MicrosoftDocs/users/sdanie/475937
MDP Add Bicep quickstart and Bicep examples to configuration articles
2 parents 51a5097 + dbde191 commit 5b4aa0e

12 files changed

+1138
-102
lines changed

docs/managed-devops-pools/configure-images.md

Lines changed: 126 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
title: Configure images
33
description: Learn how to configure agent images for Managed DevOps Pools.
4-
ms.date: 07/15/2025
4+
ms.date: 07/29/2025
55
---
66

77
# Configure Managed DevOps Pools images
88

99
Managed DevOps Pools provides you with several options for virtual machine images for running pipelines in your pool. You can create your pool using selected Azure Marketplace VM images, use your own custom Azure Compute Gallery images, or use the same images as Azure Pipelines Microsoft-hosted agents.
1010

1111
> [!IMPORTANT]
12-
> [!INCLUDE [image-deprecation](./includes/image-deprecation.md)]
12+
> [!INCLUDE [image-deprecation](./includes/image-deprecation.md)]
1313
1414
Managed DevOps Pools can be configured with a single image or multiple images. When your pool has multiple images, your pipelines should specify the image they want to run on using [aliases](#use-multiple-images-per-pool-with-aliases).
1515

@@ -35,7 +35,7 @@ The following example specifies three images. For more information on the schema
3535
{
3636
"name": "fabrikam-managed-pool",
3737
"type": "microsoft.devopsinfrastructure/pools",
38-
"apiVersion": "2024-10-19",
38+
"apiVersion": "2025-01-21",
3939
"location": "eastus",
4040
"properties": {
4141
...
@@ -170,6 +170,70 @@ The following example defines three images. Standby agents are enabled, with 100
170170
}
171171
```
172172

173+
#### [Bicep](#tab/bicep/)
174+
175+
Images are configured in the `fabricProfile` section of the Managed DevOps Pools resource properties.
176+
177+
The following example specifies three images. For more information on the schema for images, see the following sections in this article.
178+
179+
```bicep
180+
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-01-21' = {
181+
name: 'fabrikam-managed-pool'
182+
location: 'eastus'
183+
properties: {
184+
...
185+
fabricProfile: {
186+
...
187+
images: [
188+
{
189+
resourceId: '/subscriptions/subscription_id_placeholder/Providers/Microsoft.Compute/Locations/eastus/publishers/canonical/artifacttypes/vmimage/offers/ubuntu-24_04-lts/skus/server/versions/latest'
190+
aliases: [
191+
'ubuntu-24.04-gen2'
192+
]
193+
}
194+
{
195+
wellKnownImageName: 'windows-2022'
196+
}
197+
{
198+
wellKnownImageName: 'ubuntu-22.04'
199+
}
200+
]
201+
}
202+
}
203+
}
204+
```
205+
206+
Each image can have the following properties.
207+
208+
| Property | Description |
209+
|----------|-------------|
210+
| `aliases` | An optional list of aliases. You can then refer to the image using the aliases instead of the full resource ID of the image. |
211+
| `resourceID` | The resource ID of the image to use. Required when using [Azure Compute Gallery images](#azure-compute-gallery-images) or [selected marketplace images](#selected-marketplace-images). |
212+
| `wellKnownImageName` | The alias of the Azure Pipelines image. Required when using [Azure Pipelines images](#azure-pipelines-images). |
213+
| `buffer` | When [standby agents](./configure-scaling.md#standby-agent-mode) are enabled, `buffer` designates which percentage of standby agents to be allocated to this image. The total of all image `buffer` values must equal 100. |
214+
215+
The following example defines three images. Standby agents are enabled, with 100% of the standby agents allocated to the `windows-2022` image.
216+
217+
```bicep
218+
images: [
219+
{
220+
resourceId: '/subscriptions/subscription_id_placeholder/Providers/Microsoft.Compute/Locations/eastus/publishers/canonical/artifacttypes/vmimage/offers/ubuntu-24_04-lts/skus/server/versions/latest'
221+
aliases: [
222+
'ubuntu-24.04-gen2'
223+
]
224+
buffer: 0
225+
}
226+
{
227+
buffer: 100
228+
wellKnownImageName: 'windows-2022'
229+
}
230+
{
231+
buffer: 0
232+
wellKnownImageName: 'ubuntu-22.04'
233+
}
234+
]
235+
```
236+
173237
* * *
174238

175239
If you choose a single image, all pipelines run in your pool using that image. If you choose multiple images, you can specify the image to use on a per-pipeline basis. For more information, see [Use multiple images per pool](#use-multiple-images-per-pool-with-aliases).
@@ -225,6 +289,20 @@ To specify an Azure Pipelines image, provide the predefined alias of the image u
225289

226290
You can optionally specify a version in your `wellKnownImageName` setting, for example `"wellKnownImageName": "windows-2022/latest"` or `"wellKnownImageName": "windows-2022/20250427.1.0"`. If you don't specify a version, `latest` is used.
227291

292+
#### [Bicep](#tab/bicep/)
293+
294+
To specify an Azure Pipelines image, provide the alias of the image using the `wellKnownImageName` property. See a [list of Azure Pipelines image predefined aliases.](#azure-pipelines-image-predefined-aliases)
295+
296+
```bicep
297+
images: [
298+
{
299+
wellKnownImageName: 'windows-2022'
300+
}
301+
]
302+
```
303+
304+
You can optionally specify a version in your `wellKnownImageName` setting, for example `wellKnownImageName: 'windows-2022/latest'` or `wellKnownImageName: 'windows-2022/20250427.1.0'`. If you don't specify a version, `latest` is used.
305+
228306
* * *
229307

230308
Each image includes the following installed software.
@@ -238,7 +316,7 @@ Each image includes the following installed software.
238316
| Azure Pipelines - Ubuntu 22.04 | [Included software](https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md) |
239317

240318
> [!IMPORTANT]
241-
> [!INCLUDE [image-deprecation](./includes/image-deprecation.md)]
319+
> [!INCLUDE [image-deprecation](./includes/image-deprecation.md)]
242320
243321
## Selected marketplace images
244322

@@ -264,7 +342,7 @@ To specify a selected marketplace image, provide the resource ID of the image us
264342

265343
#### [Azure CLI](#tab/azure-cli/)
266344

267-
To specify selected marketplace image, provide the resource ID of the image using the `resourceId` property.
345+
To specify a selected marketplace image, provide the resource ID of the image using the `resourceId` property.
268346

269347
```json
270348
"images": [
@@ -274,6 +352,18 @@ To specify selected marketplace image, provide the resource ID of the image usin
274352
]
275353
```
276354

355+
#### [Bicep](#tab/bicep/)
356+
357+
To specify a selected marketplace image, provide the resource ID of the image using the `resourceId` property.
358+
359+
```bicep
360+
images: [
361+
{
362+
resourceId: '/subscriptions/subscription_id_placeholder/Providers/Microsoft.Compute/Locations/eastus/publishers/canonical/artifacttypes/vmimage/offers/ubuntu-24_04-lts/skus/server/versions/latest'
363+
}
364+
]
365+
```
366+
277367
* * *
278368

279369
## Azure Compute Gallery images
@@ -322,6 +412,18 @@ To specify an Azure Compute Gallery image, provide the resource ID of the image
322412
]
323413
```
324414

415+
#### [Bicep](#tab/bicep/)
416+
417+
To specify an Azure Compute Gallery image, provide the resource ID of the image using the `resourceId` property.
418+
419+
```bicep
420+
images: [
421+
{
422+
resourceId: '/subscriptions/subscription_id_placeholder/resourceGroups/resource_group_placeholder/providers/Microsoft.Compute/galleries/my_images/images/Ubuntu2404'
423+
}
424+
]
425+
```
426+
325427
* * *
326428

327429
### Grant Reader role access to the DevOpsInfrastructure Service Principal
@@ -397,6 +499,21 @@ To configure aliases, specify them in the `aliases` list. The following example
397499
]
398500
```
399501

502+
#### [Bicep](#tab/bicep/)
503+
504+
To configure aliases, specify them in the `aliases` list. The following example defines one image with a single alias named `ubuntu-24.04-gen2`.
505+
506+
```bicep
507+
images: [
508+
{
509+
resourceId: '/subscriptions/subscription_id_placeholder/Providers/Microsoft.Compute/Locations/eastus/publishers/canonical/artifacttypes/vmimage/offers/ubuntu-24_04-lts/skus/server/versions/latest'
510+
aliases: [
511+
'ubuntu-24.04-gen2'
512+
]
513+
}
514+
]
515+
```
516+
400517
* * *
401518

402519
#### Azure Pipelines image predefined aliases
@@ -418,7 +535,7 @@ If you have multiple images in your pool, you can configure a pipeline to run on
418535
To run a pipeline on the Ubuntu 24.04 image from the previous example that had an `ubuntu-24.04-gen2` alias, specify the following demand in the `pool` section of your pipeline.
419536

420537
```yml
421-
pool:
538+
pool:
422539
name: fabrikam-dev-pool # Name of Managed DevOps Pool
423540
demands:
424541
- ImageOverride -equals ubuntu-24.04-gen2
@@ -430,7 +547,7 @@ pool:
430547
To run a pipeline using an Azure Pipelines image in your pool, use the alias in the previous table. To run a pipeline on the Azure Pipelines Windows Server 2022 image from the previous example, specify the following demand in the `pool` section of your pipeline.
431548

432549
```yml
433-
pool:
550+
pool:
434551
name: fabrikam-dev-pool # Name of Managed DevOps Pool
435552
demands:
436553
- ImageOverride -equals windows-2022
@@ -452,8 +569,8 @@ Managed DevOps Pools agent images are retired when the image's operating system
452569

453570
Managed DevOps Pools is removing the **Azure Pipelines – Windows Server 2019** image.
454571

455-
* Creation of new pools using **Azure Pipelines – Windows Server 2019** will be disabled starting November 1, 2025, but existing pools on these images will continue to run until December 31, 2025.
456-
* On December 31, 2025, use of **Azure Pipelines – Windows Server 2019** image will be disabled. Agents using this image won't provision and pipelines won't run.
572+
* Creation of new pools using **Azure Pipelines – Windows Server 2019** will be disabled starting November 1, 2025, but existing pools on these images will continue to run until December 31, 2025.
573+
* On December 31, 2025, use of **Azure Pipelines – Windows Server 2019** image will be disabled. Agents using this image won't provision and pipelines won't run.
457574

458575
To keep your Managed DevOps Pools running if you use the **Azure Pipelines – Windows Server 2019** image, update to the **Azure Pipelines - Windows Server 2022** image. Alternatively, you can use the Windows Server 2019 image from [Selected marketplace images](./configure-images.md#selected-marketplace-images) or your own [Azure Compute Gallery](./configure-images.md#azure-compute-gallery-images) Windows 2019 image. Note that the marketplace image does not include the pre-installed software found in the Azure Pipelines image.
459576

docs/managed-devops-pools/configure-networking.md

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Configure networking
33
description: Learn how to configure networking for Managed DevOps Pools.
4-
ms.date: 07/08/2025
4+
ms.date: 07/29/2025
55
ms.custom: sfi-image-nochange
66
---
77

@@ -93,13 +93,13 @@ Once the network update completes, newly created resource in the pool will use t
9393

9494
#### [ARM template](#tab/arm/)
9595

96-
If you're using ARM templates, add a `networkProfile` property in the `fabricProfile` section, then add a `subnetId` property under `networkProfile` with the resource ID of your subnet.
96+
If you're using ARM templates, add a `networkProfile` property in the `fabricProfile` section, then add a `subnetId` property under `networkProfile` with the resource ID of your subnet.
9797

9898
```json
9999
{
100100
"name": "MyManagedDevOpsPool",
101101
"type": "Microsoft.DevOpsInfrastructure/pools",
102-
"apiVersion": "2024-10-19",
102+
"apiVersion": "2025-01-21",
103103
"location": "eastus",
104104
"properties": {
105105
...
@@ -139,6 +139,24 @@ The following example shows the `networkProfile` section of the **fabric-profile
139139
}
140140
```
141141

142+
#### [Bicep](#tab/bicep/)
143+
144+
If you're using Bicep, add a `networkProfile` property in the `fabricProfile` section, then add a `subnetId` property under `networkProfile` with the resource ID of your subnet.
145+
146+
```bicep
147+
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-01-21' = {
148+
name: 'MyManagedDevOpsPool'
149+
location: 'eastus'
150+
properties: {
151+
...
152+
fabricProfile: {
153+
networkProfile: {
154+
subnetId: '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVirtualNetwork/subnets/mySubnet'
155+
}
156+
}
157+
}
158+
```
159+
142160
* * *
143161

144162
## Restricting outbound connectivity
@@ -159,7 +177,7 @@ If you have systems in place on your network (NSG, Firewall, etc.) that restrict
159177
* `packages.microsoft.com` - Provisioning Linux machines
160178
* `ppa.launchpad.net` - Provisioning some specific Linux distros
161179
* `dl.fedoraproject.org` - Provisioning certain Linux distros
162-
* Optional, but required for specific Azure DevOps features to work on your pipelines. In the following set, the wildcard can be replaced with the specific Azure DevOps organization hosting your pipeline. For example, if your organization is named `contoso`, you can use `contoso.services.visualstudio.com` instead of `*.services.visualstudio.com`.
180+
* Optional, but required for specific Azure DevOps features to work on your pipelines. In the following set, the wildcard can be replaced with the specific Azure DevOps organization hosting your pipeline. For example, if your organization is named `contoso`, you can use `contoso.services.visualstudio.com` instead of `*.services.visualstudio.com`.
163181
* `*.services.visualstudio.com`
164182
* `*.vsblob.visualstudio.com` - Used for Artifacts, both uploading and consuming
165183
* `*.vssps.visualstudio.com` - Used for authentication with Azure DevOps for certain features

0 commit comments

Comments
 (0)