Skip to content

Commit 549917d

Browse files
Update Bicep modules and resource versions across the infrastructure
- Updated resource group tags API version from 2021-04-01 to 2025-04-01. - Updated AVM telemetry resource API version from 2024-03-01 to 2025-04-01. - Upgraded managed identity module version from 0.4.2 to 0.5.0. - Updated existing Log Analytics workspace API version from 2020-08-01 to 2025-07-01. - Upgraded Log Analytics workspace module version from 0.12.0 to 0.15.0. - Updated Application Insights module version from 0.7.0 to 0.7.1. - Upgraded private DNS zones module version from 0.8.0 to 0.8.1. - Updated Bastion Host module version from 0.8.0 to 0.8.2. - Upgraded maintenance configuration module version from 0.3.2 to 0.4.0. - Updated Windows VM data collection rules module version from 0.8.0 to 0.11.0. - Upgraded virtual machine module version from 0.20.0 to 0.22.0. - Updated Cognitive Services account API version from 2025-07-01-preview to 2026-03-01. - Upgraded Cognitive Services deployments API version from 2024-10-01 to 2026-03-01. - Updated private endpoint module version from 0.11.1 to 0.12.0. - Updated Azure Container Registry API version from 2023-07-01 to 2025-11-01. - Upgraded managed environment module version from 0.11.3 to 0.13.1. - Updated container app backend module version from 0.19.0 to 0.22.0. - Upgraded container app frontend module version from 0.19.0 to 0.22.0. - Updated various imports in AI Foundry modules to use avm-common-types version 0.7.0. - Updated Key Vault export module API version from 2025-05-01 to 2026-02-01. - Upgraded Cosmos DB module version from 0.18.0 to 0.19.0. - Updated storage account module version from 0.28.0 to 0.32.0. - Upgraded network security group module version from 0.5.2 to 0.5.3. - Updated virtual network module version from 0.7.1 to 0.8.0.
1 parent 5e92c83 commit 549917d

16 files changed

Lines changed: 2445 additions & 1519 deletions

infra/main.bicep

Lines changed: 33 additions & 39 deletions
Large diffs are not rendered by default.

infra/main.json

Lines changed: 2333 additions & 1391 deletions
Large diffs are not rendered by default.

infra/main_custom.bicep

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -167,15 +167,15 @@ var resourceGroupTagsValue = union(
167167
)
168168

169169
// ========== Resource Group Tag ========== //
170-
resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = {
170+
resource resourceGroupTags 'Microsoft.Resources/tags@2025-04-01' = {
171171
name: 'default'
172172
properties: {
173173
tags: resourceGroupTagsValue
174174
}
175175
}
176176

177177
#disable-next-line no-deployments-resources
178-
resource avmTelemetry 'Microsoft.Resources/deployments@2024-03-01' = if (enableTelemetry) {
178+
resource avmTelemetry 'Microsoft.Resources/deployments@2025-04-01' = if (enableTelemetry) {
179179
name: take(
180180
'46d3xbcp.ptn.sa-modernizeyourcode.${replace('-..--..-', '.', '-')}.${substring(uniqueString(deployment().name, location), 0, 4)}',
181181
64
@@ -196,7 +196,7 @@ resource avmTelemetry 'Microsoft.Resources/deployments@2024-03-01' = if (enableT
196196
}
197197
}
198198

199-
module appIdentity 'br/public:avm/res/managed-identity/user-assigned-identity:0.4.2' = {
199+
module appIdentity 'br/public:avm/res/managed-identity/user-assigned-identity:0.5.0' = {
200200
name: take('avm.res.managed-identity.user-assigned-identity.${solutionSuffix}', 64)
201201
params: {
202202
name: 'id-${solutionSuffix}'
@@ -212,13 +212,13 @@ var existingLawSubscription = useExistingLogAnalytics ? split(existingLogAnalyti
212212
var existingLawResourceGroup = useExistingLogAnalytics ? split(existingLogAnalyticsWorkspaceId, '/')[4] : ''
213213
var existingLawName = useExistingLogAnalytics ? split(existingLogAnalyticsWorkspaceId, '/')[8] : ''
214214

215-
resource existingLogAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2020-08-01' existing = if (useExistingLogAnalytics) {
215+
resource existingLogAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2025-07-01' existing = if (useExistingLogAnalytics) {
216216
name: existingLawName
217217
scope: resourceGroup(existingLawSubscription, existingLawResourceGroup)
218218
}
219219

220220
// Deploy new Log Analytics workspace only if required and not using existing
221-
module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0.12.0' = if ((enableMonitoring || enablePrivateNetworking) && !useExistingLogAnalytics) {
221+
module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0.15.0' = if ((enableMonitoring || enablePrivateNetworking) && !useExistingLogAnalytics) {
222222
name: take('avm.res.operational-insights.workspace.${solutionSuffix}', 64)
223223
params: {
224224
name: 'log-${solutionSuffix}'
@@ -282,7 +282,7 @@ var LogAnalyticsPrimarySharedKey string = useExistingLogAnalytics? existingLogAn
282282
var LogAnalyticsWorkspaceId = useExistingLogAnalytics? existingLogAnalyticsWorkspace.properties.customerId : logAnalyticsWorkspace!.outputs.logAnalyticsWorkspaceId
283283
var logAnalyticsWorkspaceName = useExistingLogAnalytics ? existingLawName : logAnalyticsWorkspace!.outputs.name
284284

285-
module applicationInsights 'br/public:avm/res/insights/component:0.7.0' = if (enableMonitoring) {
285+
module applicationInsights 'br/public:avm/res/insights/component:0.7.1' = if (enableMonitoring) {
286286
name: take('avm.res.insights.component.${solutionSuffix}', 64)
287287
params: {
288288
name: 'appi-${solutionSuffix}'
@@ -341,7 +341,7 @@ var dnsZoneIndex = {
341341
// - Excludes AI-related zones when using with an existing Foundry project
342342
// ===================================================
343343
@batchSize(5)
344-
module avmPrivateDnsZones 'br/public:avm/res/network/private-dns-zone:0.8.0' = [
344+
module avmPrivateDnsZones 'br/public:avm/res/network/private-dns-zone:0.8.1' = [
345345
for (zone, i) in privateDnsZones: if (enablePrivateNetworking) {
346346
name: take('avm.res.network.private-dns-zone.${split(zone, '.')[1]}.${solutionSuffix}', 64)
347347
params: {
@@ -360,7 +360,7 @@ module avmPrivateDnsZones 'br/public:avm/res/network/private-dns-zone:0.8.0' = [
360360

361361
// Azure Bastion Host
362362
var bastionHostName = 'bas-${solutionSuffix}'
363-
module bastionHost 'br/public:avm/res/network/bastion-host:0.8.0' = if (enablePrivateNetworking) {
363+
module bastionHost 'br/public:avm/res/network/bastion-host:0.8.2' = if (enablePrivateNetworking) {
364364
name: take('avm.res.network.bastion-host.${bastionHostName}', 64)
365365
params: {
366366
name: bastionHostName
@@ -390,7 +390,7 @@ module bastionHost 'br/public:avm/res/network/bastion-host:0.8.0' = if (enablePr
390390

391391
// ========== Jumpbox Virtual machine ========== //
392392
var maintenanceConfigurationResourceName = 'mc-${solutionSuffix}'
393-
module maintenanceConfiguration 'br/public:avm/res/maintenance/maintenance-configuration:0.3.2' = if (enablePrivateNetworking) {
393+
module maintenanceConfiguration 'br/public:avm/res/maintenance/maintenance-configuration:0.4.0' = if (enablePrivateNetworking) {
394394
name: take('avm.res.compute.virtual-machine.${maintenanceConfigurationResourceName}', 64)
395395
params: {
396396
name: maintenanceConfigurationResourceName
@@ -430,7 +430,7 @@ var dataCollectionRulesResourceName = 'dcr-${solutionSuffix}'
430430
var dataCollectionRulesLocation = useExistingLogAnalytics
431431
? existingLogAnalyticsWorkspace!.location
432432
: logAnalyticsWorkspace!.outputs.location
433-
module windowsVmDataCollectionRules 'br/public:avm/res/insights/data-collection-rule:0.8.0' = if (enablePrivateNetworking && enableMonitoring) {
433+
module windowsVmDataCollectionRules 'br/public:avm/res/insights/data-collection-rule:0.11.0' = if (enablePrivateNetworking && enableMonitoring) {
434434
name: take('avm.res.insights.data-collection-rule.${dataCollectionRulesResourceName}', 64)
435435
params: {
436436
name: dataCollectionRulesResourceName
@@ -556,7 +556,7 @@ module proximityPlacementGroup 'br/public:avm/res/compute/proximity-placement-gr
556556

557557

558558
var virtualMachineResourceName = take('vm-jumpbox-${solutionSuffix}', 15)
559-
module virtualMachine 'br/public:avm/res/compute/virtual-machine:0.20.0' = if (enablePrivateNetworking) {
559+
module virtualMachine 'br/public:avm/res/compute/virtual-machine:0.22.0' = if (enablePrivateNetworking) {
560560
name: take('avm.res.compute.virtual-machine.${virtualMachineResourceName}', 64)
561561
params: {
562562
name: virtualMachineResourceName
@@ -673,11 +673,9 @@ module aiServices 'modules/ai-foundry/aifoundry.bicep' = {
673673
privateNetworking: null // Private endpoint is handled by the standalone aiFoundryPrivateEndpoint module
674674
existingFoundryProjectResourceId: existingFoundryProjectResourceId
675675
disableLocalAuth: true //Should be set to true for WAF aligned configuration
676-
customSubDomainName: 'aif-${solutionSuffix}'
677676
apiProperties: {
678677
//staticsEnabled: false
679678
}
680-
allowProjectManagement: true
681679
managedIdentities: {
682680
systemAssigned: true
683681
}
@@ -712,7 +710,7 @@ module aiServices 'modules/ai-foundry/aifoundry.bicep' = {
712710
var aiFoundryAiServicesResourceName = 'aif-${solutionSuffix}'
713711
var useExistingAiFoundryAiProject = !empty(existingFoundryProjectResourceId)
714712

715-
module aiFoundryPrivateEndpoint 'br/public:avm/res/network/private-endpoint:0.8.1' = if (enablePrivateNetworking && !useExistingAiFoundryAiProject) {
713+
module aiFoundryPrivateEndpoint 'br/public:avm/res/network/private-endpoint:0.12.0' = if (enablePrivateNetworking && !useExistingAiFoundryAiProject) {
716714
name: take('pep-${aiFoundryAiServicesResourceName}-deployment', 64)
717715
params: {
718716
name: 'pep-${aiFoundryAiServicesResourceName}'
@@ -788,7 +786,7 @@ module storageAccount 'modules/storageAccount.bicep' = {
788786
}
789787

790788
// Azure Container Registry for azd container deployments
791-
resource containerRegistry 'Microsoft.ContainerRegistry/registries@2023-07-01' = {
789+
resource containerRegistry 'Microsoft.ContainerRegistry/registries@2025-11-01' = {
792790
name: take('acrreg${solutionSuffix}', 50)
793791
location: location
794792
sku: {
@@ -863,7 +861,7 @@ module cosmosDb 'modules/cosmosDb.bicep' = {
863861

864862
var containerAppsEnvironmentName = 'cae-${solutionSuffix}'
865863

866-
module containerAppsEnvironment 'br/public:avm/res/app/managed-environment:0.11.3' = {
864+
module containerAppsEnvironment 'br/public:avm/res/app/managed-environment:0.13.1' = {
867865
name: take('avm.res.app.managed-environment.${solutionSuffix}', 64)
868866
#disable-next-line no-unnecessary-dependson
869867
dependsOn: [applicationInsights, logAnalyticsWorkspace, virtualNetwork] // required due to optional flags that could change dependency
@@ -903,7 +901,7 @@ module containerAppsEnvironment 'br/public:avm/res/app/managed-environment:0.11.
903901
}
904902
}
905903

906-
module containerAppBackend 'br/public:avm/res/app/container-app:0.19.0' = {
904+
module containerAppBackend 'br/public:avm/res/app/container-app:0.22.0' = {
907905
name: take('avm.res.app.container-app.backend.${solutionSuffix}', 64)
908906
#disable-next-line no-unnecessary-dependson
909907
dependsOn: [applicationInsights] // required due to optional flags that could change dependency
@@ -1088,7 +1086,7 @@ module containerAppBackend 'br/public:avm/res/app/container-app:0.19.0' = {
10881086
}
10891087
}
10901088

1091-
module containerAppFrontend 'br/public:avm/res/app/container-app:0.19.0' = {
1089+
module containerAppFrontend 'br/public:avm/res/app/container-app:0.22.0' = {
10921090
name: take('avm.res.app.container-app.frontend.${solutionSuffix}', 64)
10931091
params: {
10941092
name: take('ca-frontend-${solutionSuffix}', 32)

infra/modules/ai-foundry/ai-services.bicep

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// This module is here solely to provide network injection for Cognitive Services.
2-
// The AVM Module 'br/public:avm/res/cognitive-services/account:0.11.0' does not support that feature as of version 0.11.0
2+
// The AVM Module 'br/public:avm/res/cognitive-services/account:0.14.2' does not support that feature as of version 0.11.0
33
metadata name = 'Cognitive Services'
44
metadata description = 'This module deploys a Cognitive Service.'
55

@@ -60,7 +60,7 @@ param sku string = 'S0'
6060
@description('Optional. Location for all Resources.')
6161
param location string = resourceGroup().location
6262

63-
import { diagnosticSettingFullType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
63+
import { diagnosticSettingFullType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
6464
@description('Optional. The diagnostic settings of the service.')
6565
param diagnosticSettings diagnosticSettingFullType[]?
6666

@@ -80,11 +80,11 @@ param networkAcls object?
8080
@description('Optional. The network injection subnet resource Id for the Cognitive Services account. This allows to use the AI Services account with a virtual network.')
8181
param networkInjectionSubnetResourceId string?
8282

83-
import { privateEndpointSingleServiceType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
83+
import { privateEndpointSingleServiceType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
8484
@description('Optional. Configuration details for private endpoints. For security reasons, it is recommended to use private endpoints whenever possible.')
8585
param privateEndpoints privateEndpointSingleServiceType[]?
8686

87-
import { roleAssignmentType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
87+
import { roleAssignmentType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
8888
@description('Optional. Array of role assignments to create.')
8989
param roleAssignments roleAssignmentType[]?
9090

@@ -116,7 +116,7 @@ param restrictOutboundNetworkAccess bool = true
116116
@description('Optional. The storage accounts for this resource.')
117117
param userOwnedStorage array?
118118

119-
import { managedIdentityAllType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
119+
import { managedIdentityAllType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
120120
@description('Optional. The managed identity definition for this resource.')
121121
param managedIdentities managedIdentityAllType?
122122

@@ -260,7 +260,7 @@ var formattedRoleAssignments = [
260260
})
261261
]
262262

263-
resource cognitiveService 'Microsoft.CognitiveServices/accounts@2025-07-01-preview' = {
263+
resource cognitiveService 'Microsoft.CognitiveServices/accounts@2026-03-01' = {
264264
name: name
265265
kind: kind
266266
identity: identity
@@ -306,7 +306,7 @@ resource cognitiveService 'Microsoft.CognitiveServices/accounts@2025-07-01-previ
306306
}
307307

308308
@batchSize(1)
309-
resource cognitiveService_deployments 'Microsoft.CognitiveServices/accounts/deployments@2024-10-01' = [
309+
resource cognitiveService_deployments 'Microsoft.CognitiveServices/accounts/deployments@2026-03-01' = [
310310
for (deployment, index) in (deployments ?? []): {
311311
parent: cognitiveService
312312
name: deployment.?name ?? '${name}-deployments'
@@ -355,7 +355,7 @@ resource cognitiveService_diagnosticSettings 'Microsoft.Insights/diagnosticSetti
355355
}
356356
]
357357

358-
module cognitiveService_privateEndpoints 'br/public:avm/res/network/private-endpoint:0.11.1' = [
358+
module cognitiveService_privateEndpoints 'br/public:avm/res/network/private-endpoint:0.12.0' = [
359359
for (privateEndpoint, index) in (privateEndpoints ?? []): {
360360
name: take('${uniqueString(deployment().name, location)}-cognitiveService-PrivateEndpoint-${index}', 64)
361361
scope: resourceGroup(

0 commit comments

Comments
 (0)