-
Notifications
You must be signed in to change notification settings - Fork 473
/
conf-test-azure.bicep
217 lines (193 loc) · 8.15 KB
/
conf-test-azure.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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
// ------------------------------------------------------------------------
// Copyright 2021 The Dapr Authors
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// ------------------------------------------------------------------------
targetScope = 'subscription'
@minLength(3)
@maxLength(15) // storageName must be < 24 characters total
@description('Provide an string prefix between 3-15 characters for all resource names deployed by this template. It should only consist of lower case alphabetical characters.')
param namePrefix string
@description('Provide a target location for the resource group and azure resources. Defaults to West US 2.')
param rgLocation string = 'West US 2'
@description('Provide tags to associate with resources created by this deployment. Defaults to Role=dapr-conf-test.')
param confTestTags object = {
Role: 'dapr-conf-test'
}
@minLength(36)
@maxLength(36)
@description('Provide the user objectId in the current tenant to set as admin for Azure Key Vault.')
param adminId string
@minLength(36)
@maxLength(36)
@description('Provide the objectId of the Service Principal using secret auth with get access to secrets in Azure Key Vault and access Azure PostgreSQL')
param sdkAuthSpId string
@description('Provide the name of the Service Principal using secret auth with get access to secrets in Azure Key Vault and access Azure PostgreSQL')
param sdkAuthSpName string
@minLength(36)
@maxLength(36)
@description('Provide the objectId of the Service Principal using cert auth with get and list access to all assets in Azure Key Vault.')
param certAuthSpId string
@minLength(16)
@description('Provide the SQL server admin password of at least 16 characters.')
@secure()
param sqlServerAdminPassword string
var confTestRgName = '${toLower(namePrefix)}-conf-test-rg'
var cosmosDbName = '${toLower(namePrefix)}-conf-test-db'
var cosmosDbTableAPIName = '${toLower(namePrefix)}-conf-test-table'
var eventGridTopicName = '${toLower(namePrefix)}-conf-test-eventgrid-topic'
var eventHubsNamespaceName = '${toLower(namePrefix)}-conf-test-eventhubs'
var iotHubName = '${toLower(namePrefix)}-conf-test-iothub'
var keyVaultName = '${toLower(namePrefix)}-conf-test-kv'
var serviceBusName = '${toLower(namePrefix)}-conf-test-servicebus'
var sqlServerName = '${toLower(namePrefix)}-conf-test-sql'
var postgresServerName = '${toLower(namePrefix)}-conf-test-pg'
var storageName = '${toLower(namePrefix)}ctstorage'
var appconfigStoreName = '${toLower(namePrefix)}-conf-test-cfg'
resource confTestRg 'Microsoft.Resources/resourceGroups@2021-04-01' = {
name: confTestRgName
location: rgLocation
tags: confTestTags
}
// Azure Container Registry is not currently used, but may be required again in the future.
// If so, look at the latest commit where it was present:
// https://github.com/dapr/components-contrib/tree/a8133088467fc29e1929a5dab396b11cf123a38b/.github/infrastructure
module cosmosDb 'conf-test-azure-cosmosdb.bicep' = {
name: cosmosDbName
scope: resourceGroup(confTestRg.name)
params: {
confTestTags: confTestTags
cosmosDbName: cosmosDbName
rgLocation: rgLocation
}
}
module cosmosDbTable 'conf-test-azure-cosmosdb-table.bicep' = {
name: cosmosDbTableAPIName
scope: resourceGroup(confTestRg.name)
params: {
confTestTags: confTestTags
cosmosDbTableAPIName: cosmosDbTableAPIName
rgLocation: rgLocation
}
}
module eventGridTopic 'conf-test-azure-eventgrid.bicep' = {
name: eventGridTopicName
scope: resourceGroup(confTestRg.name)
params: {
confTestTags: confTestTags
eventGridTopicName: eventGridTopicName
rgLocation: rgLocation
}
}
module eventHubsNamespace 'conf-test-azure-eventhubs.bicep' = {
name: eventHubsNamespaceName
scope: resourceGroup(confTestRg.name)
params: {
confTestTags: confTestTags
eventHubsNamespaceName: eventHubsNamespaceName
rgLocation: rgLocation
}
}
module iotHub 'conf-test-azure-iothub.bicep' = {
name: iotHubName
scope: resourceGroup(confTestRg.name)
params: {
confTestTags: confTestTags
iotHubName: iotHubName
rgLocation: rgLocation
}
}
module keyVault 'conf-test-azure-keyvault.bicep' = {
name: keyVaultName
scope: resourceGroup(confTestRg.name)
params: {
adminId: adminId
confTestTags: confTestTags
certAuthSpId: certAuthSpId
keyVaultName: keyVaultName
sdkAuthSpId: sdkAuthSpId
rgLocation: rgLocation
}
}
module serviceBus 'conf-test-azure-servicebus.bicep' = {
name: serviceBusName
scope: resourceGroup(confTestRg.name)
params: {
confTestTags: confTestTags
serviceBusName: serviceBusName
rgLocation: rgLocation
}
}
module sqlServer 'conf-test-azure-sqlserver.bicep' = {
name: sqlServerName
scope: resourceGroup(confTestRg.name)
params: {
confTestTags: confTestTags
sqlServerName: sqlServerName
sqlServerAdminPassword: sqlServerAdminPassword
rgLocation: rgLocation
}
}
module storage 'conf-test-azure-storage.bicep' = {
name: storageName
scope: resourceGroup(confTestRg.name)
params: {
confTestTags: confTestTags
storageName: storageName
rgLocation: rgLocation
}
}
module postgres 'conf-test-azure-postgres.bicep' = {
name: postgresServerName
scope: resourceGroup(confTestRg.name)
params: {
confTestTags: confTestTags
postgresServerName: postgresServerName
sdkAuthSpId: sdkAuthSpId
sdkAuthSpName: sdkAuthSpName
rgLocation: rgLocation
}
}
module appconfig 'conf-test-azure-appconfig.bicep' = {
name: appconfigStoreName
scope: resourceGroup(confTestRg.name)
params: {
configStoreName: appconfigStoreName
location: rgLocation
}
}
output confTestRgName string = confTestRg.name
output cosmosDbName string = cosmosDb.name
output cosmosDbSqlName string = cosmosDb.outputs.cosmosDbSqlName
output cosmosDbTableAPIName string = cosmosDbTable.outputs.cosmosDbTableAPIName
output cosmosDbSqlContainerName string = cosmosDb.outputs.cosmosDbSqlContainerName
output eventGridTopicName string = eventGridTopic.name
output eventHubsNamespace string = eventHubsNamespace.name
output eventHubBindingsName string = eventHubsNamespace.outputs.eventHubBindingsName
output eventHubBindingsPolicyName string = eventHubsNamespace.outputs.eventHubBindingsPolicyName
output eventHubBindingsConsumerGroupName string = eventHubsNamespace.outputs.eventHubBindingsConsumerGroupName
output eventHubPubsubName string = eventHubsNamespace.outputs.eventHubPubsubName
output eventHubPubsubPolicyName string = eventHubsNamespace.outputs.eventHubPubsubPolicyName
output eventHubPubsubConsumerGroupName string = eventHubsNamespace.outputs.eventHubPubsubConsumerGroupName
output eventHubsNamespacePolicyName string = eventHubsNamespace.outputs.eventHubsNamespacePolicyName
output certificationEventHubPubsubTopicActiveName string = eventHubsNamespace.outputs.certificationEventHubPubsubTopicActiveName
output certificationEventHubPubsubTopicActivePolicyName string = eventHubsNamespace.outputs.certificationEventHubPubsubTopicActivePolicyName
output certificationEventHubPubsubTopicMulti1Name string = eventHubsNamespace.outputs.certificationEventHubPubsubTopicMulti1Name
output certificationEventHubPubsubTopicMulti2Name string = eventHubsNamespace.outputs.certificationEventHubPubsubTopicMulti2Name
output iotHubName string = iotHub.name
output iotHubBindingsConsumerGroupName string = iotHub.outputs.iotHubBindingsConsumerGroupName
output iotHubPubsubConsumerGroupName string = iotHub.outputs.iotHubPubsubConsumerGroupName
output keyVaultName string = keyVault.name
output serviceBusName string = serviceBus.name
output sqlServerName string = sqlServer.name
output sqlServerAdminName string = sqlServer.outputs.sqlServerAdminName
output postgresServerName string = postgres.name
output storageName string = storage.name
output appconfigName string = appconfig.name