You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/wiki/TestingDesign.md
+45-34Lines changed: 45 additions & 34 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -103,82 +103,93 @@ Together with the resource modules pipelines, we are providing a dependency pipe
103
103
104
104
The resources deployed by the dependency workflow need to be in place before testing all the modules. Some of them (e.g. [storage account], [key vault] and [event hub namespace]) require a globally unique resource name. Before running the dependency workflow, it is required to update those values and their corresponding references in the resource modules parameters.
105
105
106
+
Alternatively, you can leverage the token replacement utility we integrate by default by setting up your `\<<namePrefix\>>` token. Refer to [Parameter File Tokens Design](./ParameterFileTokens) for more details.
107
+
108
+
Some of the resources integrated with the full dependency pipeline are disabled by default as they require more time to be deployed or because they may cause issues when running in parallel with some of our module validation pipelines. Those are the sqlmi dependencies and the resources needed to build and distribute a VHD in a storage account. We suggest to enable them explicitly in case you need to onboard the modules requiring them, i.e. respectively [SQL managed instance], [compute disks] and [compute images].
Since also dependency resources are in turn subject to dependencies with each other, resources are deployed in the following grouped order.
107
115
116
+
108
117
**First level resources**
109
118
110
119
1. Resource Groups: Leveraged by all modules. Multiple instances are deployed:
111
120
- 'validation-rg': The resource group to which resources are deployed by default during the test deployment phase. This same resource group is also the one hosting the dependencies.
112
-
- 'artifacts-rg': The resource group to which templates are published during the publishing phase.
113
121
114
122
**Second level resources**: This group of resources has a dependency only on the resource group which will host them. Resources in this group can be deployed in parallel.
115
123
116
-
1. User assigned identity: This resource is leveraged by the [role assignment], [key vault] and [recovery services vault] dependency resources.
117
-
> **Note**: The object ID of the [user assigned identity] is needed by several dependency parameter files. However, before running the dependency pipeline for the first time, the [user assigned identity] resource does not exist yet, thus its object ID is unknown. For this reason, instead of the object ID value, some dependency parameter files contain the `"<<msiPrincipalId>>"` token, for which the correct value is retrieved and replaced by the pipeline at runtime.
118
-
1. Policy assignment: This resource is leveraged by the [policy exemption] resource.
119
-
1. Log analytics workspace: This resource is leveraged by all resources supporting diagnostic settings on LAW.
120
124
1. Storage account: This resource is leveraged by all resources supporting diagnostic settings on a storage account.
121
125
>**Note**: This resource has a global scope name.
122
126
1. Event hub namespace and Event hub: This resource is leveraged by all resources supporting diagnostic settings on an event hub.
123
127
>**Note**: This resource has a global scope name.
124
-
1. Route table: This resource is leveraged by a test subnet deployment of the [Virtual Network] module.
128
+
1. Log analytics workspace: This resource is leveraged by all resources supporting diagnostic settings on LAW.
129
+
1. User assigned identity: This resource is leveraged by the [role assignment], [key vault] and [recovery services vault] dependency resources.
130
+
> **Note**: The object ID of the [user assigned identity] is needed by several dependency parameter files. However, before running the dependency pipeline for the first time, the [user assigned identity] resource does not exist yet, thus its object ID is unknown. For this reason, instead of the object ID value, some dependency parameter files contain the `"<<msiPrincipalId>>"` token, for which the correct value is retrieved and replaced by the pipeline at runtime.
131
+
1. Shared image gallery and definition: These resources are leveraged by the [image template] resource.
125
132
1. Route table: This resource is leveraged by the virtual network subnet dedicated to test [SQL managed instance].
126
133
>**Note**: This resource is deployed and configured only if sqlmi dependency resources are enabled.
127
-
1. Network watcher: This resource is leveraged by the [NSG flow logs] resource.
128
-
1. Shared image gallery and definition: These resources are leveraged by the [image template] resource.
134
+
1. Route table: This resource is leveraged by a test subnet deployment of the [Virtual Network] module.
129
135
1. Action group: This resource is leveraged by [activity log alert] and [metric alert] resources.
130
136
1. Application security group: This resource is leveraged by the [network security group] resource.
131
-
1. Azure Container Registry: This resource is leveraged as the private bicep registry to publish modules to.
137
+
1. Policy assignment: This resource is leveraged by the [policy exemption] resource.
138
+
1. Proximity placement group: This resource is leveraged by a test deployment of the [Availability set] module.
132
139
133
140
**Third level resources**: This group of resources has a dependency on one or more resources in the group above. Resources in this group can be deployed in parallel.
134
141
135
142
1. Storage Account Upload: An upload job to populate the storage account configured in `parameters.json` with a test script that can be referenced
136
143
1. AVD host pool: This resource supports monitoring, hence it has a dependency on the [storage account], [log analytics workspace] and [event hub] deployed in the group above. This resource is leveraged by the [AVD application group] resource.
137
-
1. Key vault: This resource supports monitoring, hence it has a dependency on the [storage account], [log analytics workspace] and [event hub] deployed in the group above. Multiple instances are deployed:
138
-
- '_adp-sxx-az-kv-x-001_': KV with required secrets, keys, certificates and access policies to be leveraged by all resources requiring access to a key vault key, secret and/or certificate, i.e. [application gateway], [azure NetApp file], [azure SQL server], [disk encryption set], [machine learning service], [virtual machine], [virtual machine scale set], [virtual network gateway connection].
139
-
- '_adp-sxx-az-kv-x-pe_': KV to be leveraged by the [private endpoint] resource.
140
-
- '_adp-sxx-az-kv-x-sqlmi_': KV with required secrets, keys and access policies to be leveraged by the [SQL managed instance] resource.
141
-
>**Note**: This resource is deployed and configured only if sqlmi dependency resources are enabled.
142
-
>**Note**: This resource has a global scope name.
143
144
1. Network Security Groups: This resource supports monitoring, hence it has a dependency on the [storage account], [log analytics workspace] and [event hub] deployed in the group above. This resource is leveraged by different virtual network subnets. Multiple instances are deployed:
144
-
- '_adp-sxx-az-nsg-x-apgw_': NSG with required network security rules to be leveraged by the [application gateway] subnet.
145
-
- '_adp-sxx-az-nsg-x-ase_': NSG with required network security rules to be leveraged by the [app service environment] subnet.
146
-
- '_adp-sxx-az-nsg-x-bastion_': NSG with required network security rules to be leveraged by the [bastion host] subnet.
147
-
- '_adp-sxx-az-nsg-x-sqlmi_': NSG with required network security rules to be leveraged by the [sql managed instance] subnet.
145
+
- '_adp-\<<namePrefix\>>-az-nsg-x-apgw_': NSG with required network security rules to be leveraged by the [application gateway] subnet.
146
+
- '_adp-\<<namePrefix\>>-az-nsg-x-ase_': NSG with required network security rules to be leveraged by the [app service environment] subnet.
147
+
- '_adp-\<<namePrefix\>>-az-nsg-x-bastion_': NSG with required network security rules to be leveraged by the [bastion host] subnet.
148
+
- '_adp-\<<namePrefix\>>-az-nsg-x-sqlmi_': NSG with required network security rules to be leveraged by the [sql managed instance] subnet.
148
149
>**Note**: This resource is deployed and configured only if sqlmi dependency resources are enabled.
149
-
- '_adp-sxx-az-nsg-x-001_': default NSG leveraged by all other subnets.
150
-
1. Recovery services vault: This resource supports monitoring, hence it has a dependency on the [storage account], [log analytics workspace] and [event hub] deployed in the group above. This resource is leveraged by the [virtual machine] resource when backup is enabled.
150
+
- '_adp-\<<namePrefix\>>-az-nsg-x-001_': default NSG leveraged by all other subnets.
151
151
1. Application insight: This resource supports monitoring, hence it has a dependency on the [storage account], [log analytics workspace] and [event hub] deployed in the group above. This resource is leveraged by the [machine learning service] resource.
152
152
1. Automation account: This resource supports monitoring, hence it has a dependency on the [storage account], [log analytics workspace] and [event hub] deployed in the group above. This resource is leveraged by the [log analytics workspace] resource.
153
153
1. Public IP addresses: This resource supports monitoring, hence it has a dependency on the [storage account], [log analytics workspace] and [event hub] deployed in the group above. Multiple instances are deployed:
154
-
- '_adp-sxx-az-pip-x-apgw_': Leveraged by the [application gateway] resource.
155
-
- '_adp-sxx-az-pip-x-bas_': Leveraged by the [bastion host] resource.
156
-
- '_adp-sxx-az-pip-x-lb_': Leveraged by the [load balancer] resource.
154
+
- '_adp-\<<namePrefix\>>-az-pip-x-apgw_': Leveraged by the [application gateway] resource.
155
+
- '_adp-\<<namePrefix\>>-az-pip-x-bas_': Leveraged by the [bastion host] resource.
156
+
- '_adp-\<<namePrefix\>>-az-pip-x-lb_': Leveraged by the [load balancer] resource.
157
+
- '_adp-\<<namePrefix\>>-az-pip-min-lb_': Leveraged by the [load balancer] resource.
158
+
- '_adp-\<<namePrefix\>>-az-pip-x-fw_': Leveraged by the [Azure firewall] resource.
157
159
1. Role assignment: This resource assigns the '_Contributor_' role on the subscription to the [user assigned identity] deployed as part of the group above. This is needed by the [image template] deployment.
160
+
1. Key vault: This resource supports monitoring, hence it has a dependency on the [storage account], [log analytics workspace] and [event hub] deployed in the group above. Multiple instances are deployed:
161
+
- '_adp-\<<namePrefix\>>-az-kv-x-001_': KV with required secrets, keys, certificates and access policies to be leveraged by all resources requiring access to a key vault key, secret and/or certificate, i.e. [application gateway], [azure NetApp file], [azure SQL server], [disk encryption set], [machine learning service], [virtual machine], [virtual machine scale set], [virtual network gateway connection].
162
+
- '_adp-\<<namePrefix\>>-az-kv-x-pe_': KV to be leveraged by the [private endpoint] resource.
163
+
- '_adp-\<<namePrefix\>>-az-kv-x-sqlmi_': KV with required secrets, keys and access policies to be leveraged by the [SQL managed instance] resource.
164
+
>**Note**: This resource is deployed and configured only if sqlmi dependency resources are enabled.
165
+
>**Note**: This resource has a global scope name.
166
+
1. Recovery services vault: This resource supports monitoring, hence it has a dependency on the [storage account], [log analytics workspace] and [event hub] deployed in the group above. This resource is leveraged by the [virtual machine] resource when backup is enabled.
167
+
158
168
159
169
**Fourth level resources**: This group of resources has a dependency on one or more resources in the groups above. Resources in this group can be deployed in parallel.
160
170
171
+
1. AVD application group: This resource is leveraged by the [AVD workspace] resource.
161
172
1. Virtual Networks: This resource is depending on the route table and network security groups deployed above. Multiple instances are deployed:
162
-
- '_adp-sxx-az-vnet-x-peer01_': Leveraged by the [virtual network peering] resource.
163
-
- '_adp-sxx-az-vnet-x-peer02_': Leveraged by the [virtual network peering] resource.
164
-
- '_adp-sxx-az-vnet-x-azfw_': Leveraged by the [azure firewall] resource.
165
-
- '_adp-sxx-az-vnet-x-aks_': Leveraged by the [azure kubernetes service] resource.
166
-
- '_adp-sxx-az-vnet-x-sqlmi_': Leveraged by the [sql managed instance] resource.
173
+
- '_adp-\<<namePrefix\>>-az-vnet-x-peer01_': Leveraged by the [virtual network peering] resource.
174
+
- '_adp-\<<namePrefix\>>-az-vnet-x-peer02_': Leveraged by the [virtual network peering] resource.
175
+
- '_adp-\<<namePrefix\>>-az-vnet-x-azfw_': Leveraged by the [azure firewall] resource.
176
+
- '_adp-\<<namePrefix\>>-az-vnet-x-aks_': Leveraged by the [azure kubernetes service] resource.
177
+
- '_adp-\<<namePrefix\>>-az-vnet-x-sqlmi_': Leveraged by the [sql managed instance] resource.
167
178
>**Note**: This resource is deployed and configured only if sqlmi dependency resources are enabled.
168
-
- '_adp-sxx-az-vnet-x-001_': Hosting multiple subnets to be leveraged by [virtual machine], [virtual machine scale set], [service bus], [azure NetApp files], [azure bastion], [private endpoints], [app service environment] and [application gateway] resources.
169
-
1. AVD application group: This resource is leveraged by the [AVD workspace] resource.
179
+
- '_adp-\<<namePrefix\>>-az-vnet-x-001_': Hosting multiple subnets to be leveraged by [virtual machine], [virtual machine scale set], [service bus], [azure NetApp files], [azure bastion], [private endpoints], [app service environment] and [application gateway] resources.
170
180
1. Azure Image Builder template: This resource triggers the build and distribution of a VHD in a storage account. The VHD file is copied to a known storage account blob container and leveraged by [compute disks] and [compute images] resources.
181
+
>**Note**: This resource is deployed and configured only if the 'Enable deployment of a vhd stored in a blob container' option is selected.
171
182
172
183
**Fifth level resources**: This group of resources has a dependency on one or more resources in the groups above.
173
184
174
-
1. Virtual Machine: This resource is depending on the [virtual networks] and [key vault] deployed above. This resource is leveraged by the [automanage] resource.
185
+
1. Virtual Machine: This resource is depending on the [virtual networks] and [key vault] deployed above. This resource is leveraged by the [network watcher] resource.
175
186
1. Private DNS zone: This resource is depending on the [virtual networks] deployed above. This resource is leveraged by the [private endpoint] resource.
176
187
177
188
### Required secrets and keys
178
189
179
190
The following secrets, keys and certificates need to be created in the key vaults deployed by the dependency workflow.
0 commit comments