-
Notifications
You must be signed in to change notification settings - Fork 135
/
Copy pathmain.bicep
75 lines (67 loc) · 1.9 KB
/
main.bicep
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
targetScope = 'resourceGroup'
param location string
param environmentName string
param keyVaultName string
param keyVaultResourceGroup string = 'permanent-rg'
// Monitoring Module
module monitoring 'modules/monitoring/monitoring.bicep' = {
name: 'monitoring-deployment'
params: {
location: location
prefix: environmentName
}
}
// Networking Module
module networking 'modules/networking/networking.bicep' = {
name: 'networking-deployment'
params: {
location: location
prefix: environmentName
logAnalyticsWorkspaceId: monitoring.outputs.logAnalyticsWorkspaceId
}
}
// Storage Module
module storage 'modules/storage/storage.bicep' = {
name: 'storage-deployment'
params: {
location: location
prefix: environmentName
logAnalyticsWorkspaceId: monitoring.outputs.logAnalyticsWorkspaceId
}
}
// Key Vault Reference
resource keyVault 'Microsoft.KeyVault/vaults@2023-07-01' existing = {
name: keyVaultName
scope: resourceGroup(keyVaultResourceGroup)
}
// Compute Module
module compute 'modules/compute/compute.bicep' = {
name: 'compute-deployment'
params: {
location: location
prefix: environmentName
hubWorkloadSubnetId: networking.outputs.hubWorkloadSubnetId
spokeWorkloadSubnetId: networking.outputs.spokeWorkloadSubnetId
logAnalyticsWorkspaceId: monitoring.outputs.logAnalyticsWorkspaceId
adminPassword: keyVault.getSecret('vmpassword2')
}
dependsOn: [
networking
]
}
// Logic App Module
module logicApp 'modules/logic/logic.bicep' = {
name: 'logic-deployment'
params: {
location: location
prefix: environmentName
logAnalyticsWorkspaceId: monitoring.outputs.logAnalyticsWorkspaceId
}
dependsOn: [
monitoring
]
}
// Outputs
output storageAccountName string = storage.outputs.storageAccountName
output acrName string = storage.outputs.acrName
output logAnalyticsWorkspaceName string = monitoring.outputs.logAnalyticsWorkspaceName