From cfcb9d5f7a06f0a018bf9e566b0ac27e44b85103 Mon Sep 17 00:00:00 2001 From: Erika Gressi <56914614+eriqua@users.noreply.github.com> Date: Fri, 18 Feb 2022 18:54:19 +0100 Subject: [PATCH] Update dependency pipeline wiki (#1023) * group2 * group * image and explanation --- .../.parameters/parameters.json | 2 +- docs/wiki/TestingDesign.md | 79 ++++++++++-------- docs/wiki/media/dependencyPipeline.png | Bin 0 -> 41793 bytes 3 files changed, 46 insertions(+), 35 deletions(-) create mode 100644 docs/wiki/media/dependencyPipeline.png diff --git a/arm/Microsoft.Network/networkWatchers/.parameters/parameters.json b/arm/Microsoft.Network/networkWatchers/.parameters/parameters.json index f6edaef983..78a7e1f272 100644 --- a/arm/Microsoft.Network/networkWatchers/.parameters/parameters.json +++ b/arm/Microsoft.Network/networkWatchers/.parameters/parameters.json @@ -31,7 +31,7 @@ { "name": "<>-az-subnet-x-001(validation-rg)", "type": "AzureVM", - "resourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Compute/virtualMachines/adp-<>-vm-001" + "resourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Compute/virtualMachines/adp-<>-vm-01" }, { "name": "Office Portal", diff --git a/docs/wiki/TestingDesign.md b/docs/wiki/TestingDesign.md index 1e2d6619fb..e89cba832b 100644 --- a/docs/wiki/TestingDesign.md +++ b/docs/wiki/TestingDesign.md @@ -103,82 +103,93 @@ Together with the resource modules pipelines, we are providing a dependency pipe 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. +Alternatively, you can leverage the token replacement utility we integrate by default by setting up your `\<>` token. Refer to [Parameter File Tokens Design](./ParameterFileTokens) for more details. + +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]. + + Dependency Pipeline + + + Since also dependency resources are in turn subject to dependencies with each other, resources are deployed in the following grouped order. + **First level resources** 1. Resource Groups: Leveraged by all modules. Multiple instances are deployed: - '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. - - 'artifacts-rg': The resource group to which templates are published during the publishing phase. **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. - 1. User assigned identity: This resource is leveraged by the [role assignment], [key vault] and [recovery services vault] dependency resources. - > **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 `"<>"` token, for which the correct value is retrieved and replaced by the pipeline at runtime. - 1. Policy assignment: This resource is leveraged by the [policy exemption] resource. - 1. Log analytics workspace: This resource is leveraged by all resources supporting diagnostic settings on LAW. 1. Storage account: This resource is leveraged by all resources supporting diagnostic settings on a storage account. >**Note**: This resource has a global scope name. 1. Event hub namespace and Event hub: This resource is leveraged by all resources supporting diagnostic settings on an event hub. >**Note**: This resource has a global scope name. - 1. Route table: This resource is leveraged by a test subnet deployment of the [Virtual Network] module. + 1. Log analytics workspace: This resource is leveraged by all resources supporting diagnostic settings on LAW. + 1. User assigned identity: This resource is leveraged by the [role assignment], [key vault] and [recovery services vault] dependency resources. + > **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 `"<>"` token, for which the correct value is retrieved and replaced by the pipeline at runtime. + 1. Shared image gallery and definition: These resources are leveraged by the [image template] resource. 1. Route table: This resource is leveraged by the virtual network subnet dedicated to test [SQL managed instance]. >**Note**: This resource is deployed and configured only if sqlmi dependency resources are enabled. - 1. Network watcher: This resource is leveraged by the [NSG flow logs] resource. - 1. Shared image gallery and definition: These resources are leveraged by the [image template] resource. + 1. Route table: This resource is leveraged by a test subnet deployment of the [Virtual Network] module. 1. Action group: This resource is leveraged by [activity log alert] and [metric alert] resources. 1. Application security group: This resource is leveraged by the [network security group] resource. - 1. Azure Container Registry: This resource is leveraged as the private bicep registry to publish modules to. + 1. Policy assignment: This resource is leveraged by the [policy exemption] resource. + 1. Proximity placement group: This resource is leveraged by a test deployment of the [Availability set] module. **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. 1. Storage Account Upload: An upload job to populate the storage account configured in `parameters.json` with a test script that can be referenced 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. - 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: - - '_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]. - - '_adp-sxx-az-kv-x-pe_': KV to be leveraged by the [private endpoint] resource. - - '_adp-sxx-az-kv-x-sqlmi_': KV with required secrets, keys and access policies to be leveraged by the [SQL managed instance] resource. - >**Note**: This resource is deployed and configured only if sqlmi dependency resources are enabled. - >**Note**: This resource has a global scope name. 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: - - '_adp-sxx-az-nsg-x-apgw_': NSG with required network security rules to be leveraged by the [application gateway] subnet. - - '_adp-sxx-az-nsg-x-ase_': NSG with required network security rules to be leveraged by the [app service environment] subnet. - - '_adp-sxx-az-nsg-x-bastion_': NSG with required network security rules to be leveraged by the [bastion host] subnet. - - '_adp-sxx-az-nsg-x-sqlmi_': NSG with required network security rules to be leveraged by the [sql managed instance] subnet. + - '_adp-\<>-az-nsg-x-apgw_': NSG with required network security rules to be leveraged by the [application gateway] subnet. + - '_adp-\<>-az-nsg-x-ase_': NSG with required network security rules to be leveraged by the [app service environment] subnet. + - '_adp-\<>-az-nsg-x-bastion_': NSG with required network security rules to be leveraged by the [bastion host] subnet. + - '_adp-\<>-az-nsg-x-sqlmi_': NSG with required network security rules to be leveraged by the [sql managed instance] subnet. >**Note**: This resource is deployed and configured only if sqlmi dependency resources are enabled. - - '_adp-sxx-az-nsg-x-001_': default NSG leveraged by all other subnets. - 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. + - '_adp-\<>-az-nsg-x-001_': default NSG leveraged by all other subnets. 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. 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. 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: - - '_adp-sxx-az-pip-x-apgw_': Leveraged by the [application gateway] resource. - - '_adp-sxx-az-pip-x-bas_': Leveraged by the [bastion host] resource. - - '_adp-sxx-az-pip-x-lb_': Leveraged by the [load balancer] resource. + - '_adp-\<>-az-pip-x-apgw_': Leveraged by the [application gateway] resource. + - '_adp-\<>-az-pip-x-bas_': Leveraged by the [bastion host] resource. + - '_adp-\<>-az-pip-x-lb_': Leveraged by the [load balancer] resource. + - '_adp-\<>-az-pip-min-lb_': Leveraged by the [load balancer] resource. + - '_adp-\<>-az-pip-x-fw_': Leveraged by the [Azure firewall] resource. 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. + 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: + - '_adp-\<>-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]. + - '_adp-\<>-az-kv-x-pe_': KV to be leveraged by the [private endpoint] resource. + - '_adp-\<>-az-kv-x-sqlmi_': KV with required secrets, keys and access policies to be leveraged by the [SQL managed instance] resource. + >**Note**: This resource is deployed and configured only if sqlmi dependency resources are enabled. + >**Note**: This resource has a global scope name. + 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. + **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. + 1. AVD application group: This resource is leveraged by the [AVD workspace] resource. 1. Virtual Networks: This resource is depending on the route table and network security groups deployed above. Multiple instances are deployed: - - '_adp-sxx-az-vnet-x-peer01_': Leveraged by the [virtual network peering] resource. - - '_adp-sxx-az-vnet-x-peer02_': Leveraged by the [virtual network peering] resource. - - '_adp-sxx-az-vnet-x-azfw_': Leveraged by the [azure firewall] resource. - - '_adp-sxx-az-vnet-x-aks_': Leveraged by the [azure kubernetes service] resource. - - '_adp-sxx-az-vnet-x-sqlmi_': Leveraged by the [sql managed instance] resource. + - '_adp-\<>-az-vnet-x-peer01_': Leveraged by the [virtual network peering] resource. + - '_adp-\<>-az-vnet-x-peer02_': Leveraged by the [virtual network peering] resource. + - '_adp-\<>-az-vnet-x-azfw_': Leveraged by the [azure firewall] resource. + - '_adp-\<>-az-vnet-x-aks_': Leveraged by the [azure kubernetes service] resource. + - '_adp-\<>-az-vnet-x-sqlmi_': Leveraged by the [sql managed instance] resource. >**Note**: This resource is deployed and configured only if sqlmi dependency resources are enabled. - - '_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. - 1. AVD application group: This resource is leveraged by the [AVD workspace] resource. + - '_adp-\<>-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. 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. + >**Note**: This resource is deployed and configured only if the 'Enable deployment of a vhd stored in a blob container' option is selected. **Fifth level resources**: This group of resources has a dependency on one or more resources in the groups above. - 1. Virtual Machine: This resource is depending on the [virtual networks] and [key vault] deployed above. This resource is leveraged by the [automanage] resource. + 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. 1. Private DNS zone: This resource is depending on the [virtual networks] deployed above. This resource is leveraged by the [private endpoint] resource. ### Required secrets and keys The following secrets, keys and certificates need to be created in the key vaults deployed by the dependency workflow. -- Shared key vault '_adp-sxx-az-kv-x-001_' +- Shared key vault '_adp-\<>-az-kv-x-001_' 1. Key vault secrets: - _administratorLogin_: For [azure SQL server] . - _administratorLoginPassword_: For [azure SQL server]. @@ -190,7 +201,7 @@ The following secrets, keys and certificates need to be created in the key vault 1. Key vault certificate: - _applicationGatewaySslCertificate_: For [application gateway]. -- SQL Mi key vault '_adp-sxx-az-kv-x-sqlmi_' +- SQL Mi key vault '_adp-\<>-az-kv-x-sqlmi_' 1. Key vault secrets: - _administratorLogin_: For [SQL managed instance]. - _administratorLoginPassword_: For [SQL managed instance]. diff --git a/docs/wiki/media/dependencyPipeline.png b/docs/wiki/media/dependencyPipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..335ae8412895b0c3d28064a00790d78bc623fa61 GIT binary patch literal 41793 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 literal 0 HcmV?d00001