Skip to content

Commit 1763051

Browse files
Merge pull request #613 from microsoft/bicep-avm-ayaz
fix: updated bicep and AVM
2 parents 8a18d28 + a041f8d commit 1763051

4 files changed

Lines changed: 13163 additions & 6235 deletions

File tree

infra/main.bicep

Lines changed: 36 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ param azureAiServiceLocation string
107107
param createdBy string = contains(deployer(), 'userPrincipalName')? split(deployer().userPrincipalName, '@')[0]: deployer().objectId
108108

109109
// ========== Resource Group Tag ========== //
110-
resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = {
110+
resource resourceGroupTags 'Microsoft.Resources/tags@2023-07-01' = {
111111
name: 'default'
112112
properties: {
113113
tags: {
@@ -226,7 +226,7 @@ var dnsZoneIndex = {
226226
containerRegistry: 8
227227
}
228228
@batchSize(5)
229-
module avmPrivateDnsZones 'br/public:avm/res/network/private-dns-zone:0.7.1' = [
229+
module avmPrivateDnsZones 'br/public:avm/res/network/private-dns-zone:0.8.1' = [
230230
for (zone, i) in privateDnsZones: if (enablePrivateNetworking) {
231231
name: 'dns-zone-${i}'
232232
params: {
@@ -242,7 +242,7 @@ module avmPrivateDnsZones 'br/public:avm/res/network/private-dns-zone:0.7.1' = [
242242
// WAF best practices for Log Analytics: https://learn.microsoft.com/en-us/azure/well-architected/service-guides/azure-log-analytics
243243
// WAF PSRules for Log Analytics: https://azure.github.io/PSRule.Rules.Azure/en/rules/resource/#azure-monitor-logs
244244
var logAnalyticsWorkspaceResourceName = 'log-${solutionSuffix}'
245-
module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0.12.0' = if (enableMonitoring && !useExistingLogAnalytics) {
245+
module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0.15.0' = if (enableMonitoring && !useExistingLogAnalytics) {
246246
name: take('avm.res.operational-insights.workspace.${logAnalyticsWorkspaceResourceName}', 64)
247247
params: {
248248
name: logAnalyticsWorkspaceResourceName
@@ -254,7 +254,7 @@ module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0
254254
features: { enableLogAccessUsingOnlyResourcePermissions: true }
255255
diagnosticSettings: [{ useThisWorkspace: true }]
256256
// WAF aligned configuration for Redundancy
257-
dailyQuotaGb: enableRedundancy ? 10 : null //WAF recommendation: 10 GB per day is a good starting point for most workloads
257+
dailyQuotaGb: enableRedundancy ? '10' : null //WAF recommendation: 10 GB per day is a good starting point for most workloads
258258
replication: enableRedundancy
259259
? {
260260
enabled: true
@@ -317,7 +317,7 @@ module virtualNetwork 'modules/virtualNetwork.bicep' = if (enablePrivateNetworki
317317
}
318318
// Azure Bastion Host
319319
var bastionHostName = 'bas-${solutionSuffix}'
320-
module bastionHost 'br/public:avm/res/network/bastion-host:0.6.1' = if (enablePrivateNetworking) {
320+
module bastionHost 'br/public:avm/res/network/bastion-host:0.8.2' = if (enablePrivateNetworking) {
321321
name: take('avm.res.network.bastion-host.${bastionHostName}', 64)
322322
params: {
323323
name: bastionHostName
@@ -340,14 +340,14 @@ module bastionHost 'br/public:avm/res/network/bastion-host:0.6.1' = if (enablePr
340340
enableTelemetry: enableTelemetry
341341
publicIPAddressObject: {
342342
name: 'pip-${bastionHostName}'
343-
zones: []
343+
availabilityZones: []
344344
}
345345
}
346346
}
347347

348348
// Jumpbox Virtual Machine
349349
var jumpboxVmName = take('vm-jumpbox-${solutionSuffix}', 15)
350-
module jumpboxVM 'br/public:avm/res/compute/virtual-machine:0.15.0' = if (enablePrivateNetworking) {
350+
module jumpboxVM 'br/public:avm/res/compute/virtual-machine:0.22.0' = if (enablePrivateNetworking) {
351351
name: take('avm.res.compute.virtual-machine.${jumpboxVmName}', 64)
352352
params: {
353353
name: take(jumpboxVmName, 15) // Shorten VM name to 15 characters to avoid Azure limits
@@ -356,7 +356,7 @@ module jumpboxVM 'br/public:avm/res/compute/virtual-machine:0.15.0' = if (enable
356356
adminUsername: vmAdminUsername ?? 'JumpboxAdminUser'
357357
adminPassword: vmAdminPassword ?? 'JumpboxAdminP@ssw0rd1234!'
358358
tags: tags
359-
zone: 0
359+
availabilityZone: -1
360360
imageReference: {
361361
offer: 'WindowsServer'
362362
publisher: 'MicrosoftWindowsServer'
@@ -406,7 +406,7 @@ module jumpboxVM 'br/public:avm/res/compute/virtual-machine:0.15.0' = if (enable
406406
// ========== User Assigned Identity ========== //
407407
// WAF best practices for identity and access management: https://learn.microsoft.com/en-us/azure/well-architected/security/identity-access
408408
var userAssignedIdentityResourceName = 'id-${solutionSuffix}'
409-
module userAssignedIdentity 'br/public:avm/res/managed-identity/user-assigned-identity:0.4.1' = {
409+
module userAssignedIdentity 'br/public:avm/res/managed-identity/user-assigned-identity:0.5.0' = {
410410
name: take('avm.res.managed-identity.user-assigned-identity.${userAssignedIdentityResourceName}', 64)
411411
params: {
412412
name: userAssignedIdentityResourceName
@@ -437,7 +437,7 @@ module avmContainerRegistry './modules/container-registry.bicep' = {
437437
}
438438

439439
// ========== Cosmos Database for Mongo DB ========== //
440-
module avmCosmosDB 'br/public:avm/res/document-db/database-account:0.15.0' = {
440+
module avmCosmosDB 'br/public:avm/res/document-db/database-account:0.19.0' = {
441441
name: take('avm.res.cosmos-${solutionSuffix}', 64)
442442
params: {
443443
name: 'cosmos-${solutionSuffix}'
@@ -486,7 +486,7 @@ module avmCosmosDB 'br/public:avm/res/document-db/database-account:0.15.0' = {
486486
'EnableMongo'
487487
]
488488
//capabilitiesToAdd: enableRedundancy ? null : ['EnableServerless']
489-
automaticFailover: enableRedundancy ? true : false
489+
enableAutomaticFailover: enableRedundancy ? true : false
490490
failoverLocations: enableRedundancy
491491
? [
492492
{
@@ -512,7 +512,7 @@ module avmCosmosDB 'br/public:avm/res/document-db/database-account:0.15.0' = {
512512

513513
// ========== App Configuration store ========== //
514514
var appConfigName = 'appcs-${solutionSuffix}'
515-
module avmAppConfig 'br/public:avm/res/app-configuration/configuration-store:0.6.3' = {
515+
module avmAppConfig 'br/public:avm/res/app-configuration/configuration-store:0.9.2' = {
516516
name: take('avm.res.app-configuration.configuration-store.${appConfigName}', 64)
517517
params: {
518518
name: appConfigName
@@ -637,7 +637,7 @@ module avmAppConfig 'br/public:avm/res/app-configuration/configuration-store:0.6
637637
}
638638
}
639639

640-
module avmAppConfigUpdated 'br/public:avm/res/app-configuration/configuration-store:0.6.3' = if(enablePrivateNetworking) {
640+
module avmAppConfigUpdated 'br/public:avm/res/app-configuration/configuration-store:0.9.2' = if(enablePrivateNetworking) {
641641
name: take('avm.res.app-configuration.configuration-store-update.${appConfigName}', 64)
642642
params: {
643643
name: appConfigName
@@ -674,7 +674,7 @@ module avmAppConfigUpdated 'br/public:avm/res/app-configuration/configuration-st
674674

675675
// ========== Storage account module ========== //
676676
var storageAccountName = 'st${solutionSuffix}'
677-
module avmStorageAccount 'br/public:avm/res/storage/storage-account:0.20.0' = {
677+
module avmStorageAccount 'br/public:avm/res/storage/storage-account:0.32.0' = {
678678
name: take('avm.res.storage.storage-account.${storageAccountName}', 64)
679679
params : {
680680
name: storageAccountName
@@ -748,7 +748,7 @@ module avmStorageAccount 'br/public:avm/res/storage/storage-account:0.20.0' = {
748748

749749
// ========== AI Foundry: AI Search ========== //
750750
var aiSearchName = 'srch-${solutionSuffix}'
751-
resource avmSearchSearchServices 'Microsoft.Search/searchServices@2024-06-01-preview' = {
751+
resource avmSearchSearchServices 'Microsoft.Search/searchServices@2025-05-01' = {
752752
name: aiSearchName
753753
location: solutionLocation
754754
sku: {
@@ -757,7 +757,7 @@ resource avmSearchSearchServices 'Microsoft.Search/searchServices@2024-06-01-pre
757757
}
758758

759759
// Separate module for Search Service to enable managed identity and update other properties, as this reduces deployment time
760-
module avmSearchSearchServicesUpdate 'br/public:avm/res/search/search-service:0.11.1' = {
760+
module avmSearchSearchServicesUpdate 'br/public:avm/res/search/search-service:0.12.0' = {
761761
name: take('avm.res.search-services-identity.${aiSearchName}', 64)
762762
params: {
763763
name: aiSearchName
@@ -810,7 +810,7 @@ module avmSearchSearchServicesUpdate 'br/public:avm/res/search/search-service:0.
810810

811811
// ========== Cognitive Services - OpenAI module ========== //
812812
var openAiAccountName = 'oai-${solutionSuffix}'
813-
module avmOpenAi 'br/public:avm/res/cognitive-services/account:0.13.2' = {
813+
module avmOpenAi 'br/public:avm/res/cognitive-services/account:0.14.2' = {
814814
name: take('avm.res.cognitiveservices.account.${openAiAccountName}', 64)
815815
params: {
816816
name: openAiAccountName
@@ -852,7 +852,7 @@ module avmOpenAi 'br/public:avm/res/cognitive-services/account:0.13.2' = {
852852
}
853853
}
854854

855-
module openaiPrivateEndpoint 'br/public:avm/res/network/private-endpoint:0.8.1' = if (enablePrivateNetworking) {
855+
module openaiPrivateEndpoint 'br/public:avm/res/network/private-endpoint:0.12.0' = if (enablePrivateNetworking) {
856856
name: take('pep-${openAiAccountName}-deployment', 64)
857857
params: {
858858
name: 'pep-${openAiAccountName}'
@@ -886,7 +886,7 @@ module openaiPrivateEndpoint 'br/public:avm/res/network/private-endpoint:0.8.1'
886886

887887
// ========== Cognitive Services - Document Intellignece module ========== //
888888
var docIntelAccountName = 'di-${solutionSuffix}'
889-
module documentIntelligence 'br/public:avm/res/cognitive-services/account:0.13.2' = {
889+
module documentIntelligence 'br/public:avm/res/cognitive-services/account:0.14.2' = {
890890
name: take('avm.res.cognitiveservices.account.${docIntelAccountName}', 64)
891891
params: {
892892
name: docIntelAccountName
@@ -920,7 +920,7 @@ module documentIntelligence 'br/public:avm/res/cognitive-services/account:0.13.2
920920
}
921921
}
922922

923-
module docIntelPrivateEndpoint 'br/public:avm/res/network/private-endpoint:0.8.1' = if (enablePrivateNetworking) {
923+
module docIntelPrivateEndpoint 'br/public:avm/res/network/private-endpoint:0.12.0' = if (enablePrivateNetworking) {
924924
name: take('pep-${docIntelAccountName}-deployment', 64)
925925
params: {
926926
name: 'pep-${docIntelAccountName}'
@@ -949,7 +949,7 @@ module docIntelPrivateEndpoint 'br/public:avm/res/network/private-endpoint:0.8.1
949949
}
950950

951951
// ========== Azure Kubernetes Service (AKS) ========== //
952-
module managedCluster 'br/public:avm/res/container-service/managed-cluster:0.10.1' = {
952+
module managedCluster 'br/public:avm/res/container-service/managed-cluster:0.13.0' = {
953953
name: take('avm.res.container-service.managed-cluster.aks-${solutionSuffix}', 64)
954954
params: {
955955
name: 'aks-${solutionSuffix}'
@@ -966,7 +966,9 @@ module managedCluster 'br/public:avm/res/container-service/managed-cluster:0.10.
966966
}
967967
serviceCidr: '10.20.0.0/16'
968968
dnsServiceIP: '10.20.0.10'
969-
enablePrivateCluster: false
969+
apiServerAccessProfile: {
970+
enablePrivateCluster: false
971+
}
970972
primaryAgentPoolProfiles: [
971973
{
972974
name: 'agentpool'
@@ -986,9 +988,17 @@ module managedCluster 'br/public:avm/res/container-service/managed-cluster:0.10.
986988
vnetSubnetResourceId: enablePrivateNetworking ? virtualNetwork!.outputs.webSubnetResourceId : null
987989
}
988990
]
989-
autoNodeOsUpgradeProfileUpgradeChannel: 'Unmanaged'
990-
autoUpgradeProfileUpgradeChannel: 'stable'
991-
enableAzureDefender: enablePrivateNetworking
991+
autoUpgradeProfile: {
992+
upgradeChannel: 'stable'
993+
nodeOSUpgradeChannel: 'Unmanaged'
994+
}
995+
securityProfile: {
996+
defender: {
997+
securityMonitoring: {
998+
enabled: enablePrivateNetworking
999+
}
1000+
}
1001+
}
9921002
networkPlugin: 'azure'
9931003
networkPolicy: 'azure'
9941004
omsAgentEnabled: true
@@ -1032,7 +1042,7 @@ module managedCluster 'br/public:avm/res/container-service/managed-cluster:0.10.
10321042

10331043
// ========== Application Insights ========== //
10341044
var applicationInsightsResourceName = 'appi-${solutionSuffix}'
1035-
module applicationInsights 'br/public:avm/res/insights/component:0.6.0' = if (enableMonitoring) {
1045+
module applicationInsights 'br/public:avm/res/insights/component:0.7.1' = if (enableMonitoring) {
10361046
name: take('avm.res.insights.component.${applicationInsightsResourceName}', 64)
10371047
params: {
10381048
name: applicationInsightsResourceName

0 commit comments

Comments
 (0)