Skip to content

Commit cd9ce22

Browse files
feat: Added parameters.json & waf version of it, fixed bicep warnings
1 parent 23a2edd commit cd9ce22

9 files changed

Lines changed: 51175 additions & 1133 deletions

File tree

infra/main.bicep

Lines changed: 55 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -23,23 +23,42 @@ var solutionSuffix= toLower(trim(replace(
2323
''
2424
)))
2525

26+
@minLength(1)
27+
@description('Optional. GPT model deployment type:')
28+
@allowed([
29+
'Standard'
30+
'GlobalStandard'
31+
])
32+
param gptModelDeploymentType string = 'GlobalStandard'
33+
34+
@minLength(1)
35+
@description('Optional. Name of the GPT model to deploy:')
36+
@allowed([
37+
'gpt-4.1-mini'
38+
])
39+
param gptModelName string = 'gpt-4.1-mini'
40+
41+
@description('Optional. Version of the GPT model to deploy.')
42+
param gptModelVersion string = '2025-04-14'
43+
2644
@description('Optional. Capacity of the GPT model deployment:')
2745
@minValue(10)
2846
param gptModelCapacity int = 150
2947

48+
@minLength(1)
49+
@description('Optional. Name of the Text Embedding model to deploy:')
50+
@allowed([
51+
'text-embedding-3-large'
52+
])
53+
param embeddingModelName string = 'text-embedding-3-large'
54+
55+
@description('Optional. Version of the Text Embedding model to deploy.')
56+
param embeddingModelVersion string = '1'
57+
3058
@description('Optional. Capacity of the Text Embedding model deployment:')
3159
@minValue(10)
3260
param embeddingModelCapacity int = 100
3361

34-
@description('Optional. The tags to apply to all deployed Azure resources.')
35-
param tags resourceInput<'Microsoft.Resources/resourceGroups@2025-04-01'>.tags = {}
36-
37-
@description('Optional. Enable/Disable usage telemetry for module.')
38-
param enableTelemetry bool = true
39-
40-
@description('Optional. Enable private networking for applicable resources, aligned with the WAF recommendations. Defaults to false.')
41-
param enablePrivateNetworking bool = true
42-
4362
@description('Optional: Existing Log Analytics Workspace Resource ID')
4463
param existingLogAnalyticsWorkspaceId string = ''
4564

@@ -54,8 +73,17 @@ param vmAdminPassword string?
5473
@description('Optional. Size of the Jumpbox Virtual Machine when created. Set to custom value if enablePrivateNetworking is true.')
5574
param vmSize string = 'Standard_DS2_v2'
5675

76+
@description('Optional. The tags to apply to all deployed Azure resources.')
77+
param tags resourceInput<'Microsoft.Resources/resourceGroups@2025-04-01'>.tags = {}
78+
79+
@description('Optional. Enable/Disable usage telemetry for module.')
80+
param enableTelemetry bool = true
81+
82+
@description('Optional. Enable private networking for applicable resources, aligned with the WAF recommendations. Defaults to false.')
83+
param enablePrivateNetworking bool = false
84+
5785
@description('Optional. Enable monitoring applicable resources, aligned with the Well Architected Framework recommendations. This setting enables Application Insights and Log Analytics and configures all the resources applicable resources to send logs. Defaults to false.')
58-
param enableMonitoring bool = true
86+
param enableMonitoring bool = false
5987

6088
@description('Optional. Enable redundancy for applicable resources, aligned with the Well Architected Framework recommendations. Defaults to false.')
6189
param enableRedundancy bool = false
@@ -115,16 +143,16 @@ var cosmosDbHaLocation = cosmosDbZoneRedundantHaRegionPairs[resourceGroup().loca
115143
var useExistingLogAnalytics = !empty(existingLogAnalyticsWorkspaceId)
116144

117145
var gptModelDeployment = {
118-
modelName: 'gpt-4.1-mini'
119-
deploymentName: 'gpt-4.1-mini'
120-
deploymentVersion: '2025-04-14'
146+
modelName: gptModelName
147+
deploymentName: gptModelName
148+
deploymentVersion: gptModelVersion
121149
deploymentCapacity: gptModelCapacity
122150
}
123151

124152
var embeddingModelDeployment = {
125-
modelName: 'text-embedding-3-large'
126-
deploymentName: 'text-embedding-3-large'
127-
deploymentVersion: '1'
153+
modelName: embeddingModelName
154+
deploymentName: embeddingModelName
155+
deploymentVersion: embeddingModelVersion
128156
deploymentCapacity: embeddingModelCapacity
129157
}
130158

@@ -137,7 +165,7 @@ var openAiDeployments = [
137165
version: gptModelDeployment.deploymentVersion
138166
}
139167
sku: {
140-
name: 'GlobalStandard'
168+
name: gptModelDeploymentType
141169
capacity: gptModelDeployment.deploymentCapacity
142170
}
143171
}
@@ -149,7 +177,7 @@ var openAiDeployments = [
149177
version: embeddingModelDeployment.deploymentVersion
150178
}
151179
sku: {
152-
name: 'GlobalStandard'
180+
name: gptModelDeploymentType
153181
capacity: embeddingModelDeployment.deploymentCapacity
154182
}
155183
}
@@ -522,7 +550,7 @@ module avmAppConfigUpdated 'br/public:avm/res/app-configuration/configuration-st
522550
privateDnsZoneGroupConfigs: [
523551
{
524552
name: 'appconfig-dns-zone-group'
525-
privateDnsZoneResourceId: avmPrivateDnsZones[dnsZoneIndex.appConfig].outputs.resourceId
553+
privateDnsZoneResourceId: avmPrivateDnsZones[dnsZoneIndex.appConfig]!.outputs.resourceId
526554
}
527555
]
528556
}
@@ -578,7 +606,7 @@ module avmStorageAccount 'br/public:avm/res/storage/storage-account:0.20.0' = {
578606
}
579607
]
580608
}
581-
subnetResourceId: network.outputs.subnetPrivateEndpointsResourceId
609+
subnetResourceId: network!.outputs.subnetPrivateEndpointsResourceId
582610
service: 'blob'
583611
}
584612
{
@@ -591,7 +619,7 @@ module avmStorageAccount 'br/public:avm/res/storage/storage-account:0.20.0' = {
591619
}
592620
]
593621
}
594-
subnetResourceId: network.outputs.subnetPrivateEndpointsResourceId
622+
subnetResourceId: network!.outputs.subnetPrivateEndpointsResourceId
595623
service: 'queue'
596624
}
597625
]
@@ -653,7 +681,7 @@ module avmSearchSearchServices 'br/public:avm/res/search/search-service:0.9.1' =
653681
{ privateDnsZoneResourceId: avmPrivateDnsZones[dnsZoneIndex.search]!.outputs.resourceId }
654682
]
655683
}
656-
subnetResourceId: network.outputs.subnetPrivateEndpointsResourceId
684+
subnetResourceId: network!.outputs.subnetPrivateEndpointsResourceId
657685
}
658686
]
659687
: []
@@ -687,7 +715,7 @@ module avmOpenAi 'br/public:avm/res/cognitive-services/account:0.13.2' = {
687715
? [
688716
{
689717
name: 'pep-openai-${solutionSuffix}'
690-
subnetResourceId: network.outputs.subnetPrivateEndpointsResourceId
718+
subnetResourceId: network!.outputs.subnetPrivateEndpointsResourceId
691719
service: 'account'
692720
privateDnsZoneGroup: {
693721
privateDnsZoneGroupConfigs: [
@@ -747,7 +775,7 @@ module documentIntelligence 'br/public:avm/res/cognitive-services/account:0.13.2
747775
? [
748776
{
749777
name: 'pep-docintel-${solutionSuffix}'
750-
subnetResourceId: network.outputs.subnetPrivateEndpointsResourceId
778+
subnetResourceId: network!.outputs.subnetPrivateEndpointsResourceId
751779
service: 'account'
752780
privateDnsZoneGroup: {
753781
privateDnsZoneGroupConfigs: [
@@ -801,7 +829,7 @@ module managedCluster 'br/public:avm/res/container-service/managed-cluster:0.10.
801829
type: 'VirtualMachineScaleSets'
802830
minCount: 1
803831
maxCount: 2
804-
832+
805833
// WAF aligned configuration for Private Networking
806834
enableAutoScaling: true
807835
scaleSetEvictionPolicy: 'Delete'
@@ -867,8 +895,8 @@ module applicationInsights 'br/public:avm/res/insights/component:0.6.0' = if (en
867895
disableIpMasking: false
868896
flowType: 'Bluefield'
869897
// WAF aligned configuration for Monitoring
870-
workspaceResourceId: enableMonitoring ? logAnalyticsWorkspace.outputs.resourceId : ''
871-
diagnosticSettings: enableMonitoring ? [{ workspaceResourceId: logAnalyticsWorkspace.outputs.resourceId }] : null
898+
workspaceResourceId: enableMonitoring ? logAnalyticsWorkspace!.outputs.resourceId : ''
899+
diagnosticSettings: enableMonitoring ? [{ workspaceResourceId: logAnalyticsWorkspace!.outputs.resourceId }] : null
872900
}
873901
}
874902

@@ -940,12 +968,3 @@ output AZ_GPT_EMBEDDING_MODEL_NAME string = embeddingModelDeployment.modelName
940968

941969
@description('Contains Azure OpenAI Embedding Model Deployment Name.')
942970
output AZ_GPT_EMBEDDING_MODEL_ID string = embeddingModelDeployment.deploymentName
943-
944-
// @description('The FQDN of the frontend web app service.')
945-
// output kmServiceEndpoint string = containerAppService.outputs.kmServiceFQDN
946-
947-
// @description('Service Access Key 1.')
948-
// output kmServiceAccessKey1 string = containerAppService.outputs.kmServiceAccessKey1
949-
950-
// @description('Service Access Key 2.')
951-
// output kmServiceAccessKey2 string = containerAppService.outputs.kmServiceAccessKey2

0 commit comments

Comments
 (0)