From 357c72d8c63c8887c0ffed8c9de34be36673000b Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 21 May 2022 21:55:13 +0200 Subject: [PATCH 01/14] Fixed readme --- arm/Microsoft.Automation/automationAccounts/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arm/Microsoft.Automation/automationAccounts/readme.md b/arm/Microsoft.Automation/automationAccounts/readme.md index a209cad360..9fe087ec9c 100644 --- a/arm/Microsoft.Automation/automationAccounts/readme.md +++ b/arm/Microsoft.Automation/automationAccounts/readme.md @@ -531,7 +531,7 @@ module automationAccounts './Microsoft.Automation/automationAccounts/deploy.bice } ] }, - "linkedWorkspaceId": { + "linkedWorkspaceResourceId": { "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-aut-001" }, "gallerySolutions": { @@ -720,7 +720,7 @@ module automationAccounts './Microsoft.Automation/automationAccounts/deploy.bice description: 'TestEncryptedDescription' } ] - linkedWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-aut-001' + linkedWorkspaceResourceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-aut-001' gallerySolutions: [ 'Updates' ] From 577129fb3662f3e30a04cc34372f324f16af6a16 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Wed, 25 May 2022 18:26:01 +0200 Subject: [PATCH 02/14] Flipped image build deployment --- .../.parameters/parameters.json | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/arm/Microsoft.Storage/storageAccounts/.parameters/parameters.json b/arm/Microsoft.Storage/storageAccounts/.parameters/parameters.json index 95d58e294b..79179a7d6d 100644 --- a/arm/Microsoft.Storage/storageAccounts/.parameters/parameters.json +++ b/arm/Microsoft.Storage/storageAccounts/.parameters/parameters.json @@ -3,7 +3,7 @@ "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>azsax001" + "value": "carmlazsax001" }, "storageAccountSku": { "value": "Standard_LRS" @@ -20,19 +20,19 @@ "privateEndpoints": { "value": [ { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", + "subnetResourceId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-carml-az-vnet-x-001/subnets/carml-az-subnet-x-005-privateEndpoints", "service": "blob" }, { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", + "subnetResourceId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-carml-az-vnet-x-001/subnets/carml-az-subnet-x-005-privateEndpoints", "service": "table" }, { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", + "subnetResourceId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-carml-az-vnet-x-001/subnets/carml-az-subnet-x-005-privateEndpoints", "service": "queue" }, { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", + "subnetResourceId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-carml-az-vnet-x-001/subnets/carml-az-subnet-x-005-privateEndpoints", "service": "file" } ] @@ -43,7 +43,7 @@ "defaultAction": "Deny", "virtualNetworkRules": [ { - "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", + "id": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-carml-az-vnet-x-001/subnets/carml-az-subnet-x-001", "action": "Allow" } ], @@ -58,10 +58,10 @@ "blobServices": { "value": { "diagnosticLogsRetentionInDays": 7, - "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", - "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", - "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", - "diagnosticEventHubName": "adp-<>-az-evh-x-001", + "diagnosticStorageAccountId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adpcarmlazsax001", + "diagnosticWorkspaceId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-carml-az-law-x-001", + "diagnosticEventHubAuthorizationRuleId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-carml-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", + "diagnosticEventHubName": "adp-carml-az-evh-x-001", "containers": [ { "name": "avdscripts", @@ -70,7 +70,7 @@ { "roleDefinitionIdOrName": "Reader", "principalIds": [ - "<>" + "e58511af-4da2-449c-a5cd-6a10271cfb83" ] } ] @@ -88,10 +88,10 @@ "fileServices": { "value": { "diagnosticLogsRetentionInDays": 7, - "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", - "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", - "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", - "diagnosticEventHubName": "adp-<>-az-evh-x-001", + "diagnosticStorageAccountId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adpcarmlazsax001", + "diagnosticWorkspaceId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-carml-az-law-x-001", + "diagnosticEventHubAuthorizationRuleId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-carml-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", + "diagnosticEventHubName": "adp-carml-az-evh-x-001", "shares": [ { "name": "avdprofiles", @@ -100,7 +100,7 @@ { "roleDefinitionIdOrName": "Reader", "principalIds": [ - "<>" + "e58511af-4da2-449c-a5cd-6a10271cfb83" ] } ] @@ -115,10 +115,10 @@ "tableServices": { "value": { "diagnosticLogsRetentionInDays": 7, - "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", - "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", - "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", - "diagnosticEventHubName": "adp-<>-az-evh-x-001", + "diagnosticStorageAccountId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adpcarmlazsax001", + "diagnosticWorkspaceId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-carml-az-law-x-001", + "diagnosticEventHubAuthorizationRuleId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-carml-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", + "diagnosticEventHubName": "adp-carml-az-evh-x-001", "tables": [ "table1", "table2" @@ -128,10 +128,10 @@ "queueServices": { "value": { "diagnosticLogsRetentionInDays": 7, - "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", - "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", - "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", - "diagnosticEventHubName": "adp-<>-az-evh-x-001", + "diagnosticStorageAccountId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adpcarmlazsax001", + "diagnosticWorkspaceId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-carml-az-law-x-001", + "diagnosticEventHubAuthorizationRuleId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-carml-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", + "diagnosticEventHubName": "adp-carml-az-evh-x-001", "queues": [ { "name": "queue1", @@ -140,7 +140,7 @@ { "roleDefinitionIdOrName": "Reader", "principalIds": [ - "<>" + "e58511af-4da2-449c-a5cd-6a10271cfb83" ] } ] @@ -157,7 +157,7 @@ }, "userAssignedIdentities": { "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-carml-az-msi-x-001": {} } }, "roleAssignments": { @@ -165,7 +165,7 @@ { "roleDefinitionIdOrName": "Reader", "principalIds": [ - "<>" + "e58511af-4da2-449c-a5cd-6a10271cfb83" ] } ] @@ -174,16 +174,16 @@ "value": 7 }, "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + "value": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adpcarmlazsax001" }, "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + "value": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-carml-az-law-x-001" }, "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + "value": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-carml-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" }, "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" + "value": "adp-carml-az-evh-x-001" } } } From 3564e81517c303f3e0819d0b7a4ab4ce9e61ecdf Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 29 May 2022 22:12:03 +0200 Subject: [PATCH 03/14] Undid param change --- .../.parameters/parameters.json | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/arm/Microsoft.Storage/storageAccounts/.parameters/parameters.json b/arm/Microsoft.Storage/storageAccounts/.parameters/parameters.json index 79179a7d6d..95d58e294b 100644 --- a/arm/Microsoft.Storage/storageAccounts/.parameters/parameters.json +++ b/arm/Microsoft.Storage/storageAccounts/.parameters/parameters.json @@ -3,7 +3,7 @@ "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "carmlazsax001" + "value": "<>azsax001" }, "storageAccountSku": { "value": "Standard_LRS" @@ -20,19 +20,19 @@ "privateEndpoints": { "value": [ { - "subnetResourceId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-carml-az-vnet-x-001/subnets/carml-az-subnet-x-005-privateEndpoints", + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", "service": "blob" }, { - "subnetResourceId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-carml-az-vnet-x-001/subnets/carml-az-subnet-x-005-privateEndpoints", + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", "service": "table" }, { - "subnetResourceId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-carml-az-vnet-x-001/subnets/carml-az-subnet-x-005-privateEndpoints", + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", "service": "queue" }, { - "subnetResourceId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-carml-az-vnet-x-001/subnets/carml-az-subnet-x-005-privateEndpoints", + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", "service": "file" } ] @@ -43,7 +43,7 @@ "defaultAction": "Deny", "virtualNetworkRules": [ { - "id": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-carml-az-vnet-x-001/subnets/carml-az-subnet-x-001", + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-001", "action": "Allow" } ], @@ -58,10 +58,10 @@ "blobServices": { "value": { "diagnosticLogsRetentionInDays": 7, - "diagnosticStorageAccountId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adpcarmlazsax001", - "diagnosticWorkspaceId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-carml-az-law-x-001", - "diagnosticEventHubAuthorizationRuleId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-carml-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", - "diagnosticEventHubName": "adp-carml-az-evh-x-001", + "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", + "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", + "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", + "diagnosticEventHubName": "adp-<>-az-evh-x-001", "containers": [ { "name": "avdscripts", @@ -70,7 +70,7 @@ { "roleDefinitionIdOrName": "Reader", "principalIds": [ - "e58511af-4da2-449c-a5cd-6a10271cfb83" + "<>" ] } ] @@ -88,10 +88,10 @@ "fileServices": { "value": { "diagnosticLogsRetentionInDays": 7, - "diagnosticStorageAccountId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adpcarmlazsax001", - "diagnosticWorkspaceId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-carml-az-law-x-001", - "diagnosticEventHubAuthorizationRuleId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-carml-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", - "diagnosticEventHubName": "adp-carml-az-evh-x-001", + "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", + "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", + "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", + "diagnosticEventHubName": "adp-<>-az-evh-x-001", "shares": [ { "name": "avdprofiles", @@ -100,7 +100,7 @@ { "roleDefinitionIdOrName": "Reader", "principalIds": [ - "e58511af-4da2-449c-a5cd-6a10271cfb83" + "<>" ] } ] @@ -115,10 +115,10 @@ "tableServices": { "value": { "diagnosticLogsRetentionInDays": 7, - "diagnosticStorageAccountId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adpcarmlazsax001", - "diagnosticWorkspaceId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-carml-az-law-x-001", - "diagnosticEventHubAuthorizationRuleId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-carml-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", - "diagnosticEventHubName": "adp-carml-az-evh-x-001", + "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", + "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", + "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", + "diagnosticEventHubName": "adp-<>-az-evh-x-001", "tables": [ "table1", "table2" @@ -128,10 +128,10 @@ "queueServices": { "value": { "diagnosticLogsRetentionInDays": 7, - "diagnosticStorageAccountId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adpcarmlazsax001", - "diagnosticWorkspaceId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-carml-az-law-x-001", - "diagnosticEventHubAuthorizationRuleId": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-carml-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", - "diagnosticEventHubName": "adp-carml-az-evh-x-001", + "diagnosticStorageAccountId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001", + "diagnosticWorkspaceId": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001", + "diagnosticEventHubAuthorizationRuleId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey", + "diagnosticEventHubName": "adp-<>-az-evh-x-001", "queues": [ { "name": "queue1", @@ -140,7 +140,7 @@ { "roleDefinitionIdOrName": "Reader", "principalIds": [ - "e58511af-4da2-449c-a5cd-6a10271cfb83" + "<>" ] } ] @@ -157,7 +157,7 @@ }, "userAssignedIdentities": { "value": { - "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-carml-az-msi-x-001": {} + "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} } }, "roleAssignments": { @@ -165,7 +165,7 @@ { "roleDefinitionIdOrName": "Reader", "principalIds": [ - "e58511af-4da2-449c-a5cd-6a10271cfb83" + "<>" ] } ] @@ -174,16 +174,16 @@ "value": 7 }, "diagnosticStorageAccountId": { - "value": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adpcarmlazsax001" + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" }, "diagnosticWorkspaceId": { - "value": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-carml-az-law-x-001" + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" }, "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/a7439831-1cd9-435d-a091-4aa863c96556/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-carml-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" }, "diagnosticEventHubName": { - "value": "adp-carml-az-evh-x-001" + "value": "adp-<>-az-evh-x-001" } } } From 411cd064b289ea2d48fb32f1d071bd006437b937 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 4 Jun 2022 09:59:28 +0200 Subject: [PATCH 04/14] Implemented --no-restore for workaround --- arm/.global/global.module.tests.ps1 | 12 +++++------- utilities/tools/Set-ModuleReadMe.ps1 | 2 +- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/arm/.global/global.module.tests.ps1 b/arm/.global/global.module.tests.ps1 index 18944f911c..5b12b3ac17 100644 --- a/arm/.global/global.module.tests.ps1 +++ b/arm/.global/global.module.tests.ps1 @@ -149,7 +149,7 @@ Describe 'Readme tests' -Tag Readme { if (-not ($convertedTemplates.Keys -contains $moduleFolderPathKey)) { if (Test-Path (Join-Path $moduleFolderPath 'deploy.bicep')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.bicep' - $templateContent = az bicep build --file $templateFilePath --stdout | ConvertFrom-Json -AsHashtable + $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable } elseIf (Test-Path (Join-Path $moduleFolderPath 'deploy.json')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.json' $templateContent = Get-Content $templateFilePath -Raw | ConvertFrom-Json -AsHashtable @@ -468,7 +468,7 @@ Describe 'Deployment template tests' -Tag Template { if (-not ($convertedTemplates.Keys -contains $moduleFolderPathKey)) { if (Test-Path (Join-Path $moduleFolderPath 'deploy.bicep')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.bicep' - $templateContent = az bicep build --file $templateFilePath --stdout | ConvertFrom-Json -AsHashtable + $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable } elseIf (Test-Path (Join-Path $moduleFolderPath 'deploy.json')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.json' $templateContent = Get-Content $templateFilePath -Raw | ConvertFrom-Json -AsHashtable @@ -801,10 +801,8 @@ Describe 'Deployment template tests' -Tag Template { $templateParameters = $templateContent.parameters.Keys foreach ($parameter in $templateParameters) { $data = ($templateContent.parameters.$parameter.metadata).description - switch -regex ($data) - { - '^Conditional. .*' - { + switch -regex ($data) { + '^Conditional. .*' { if ($data -notmatch '.*\. Required if .*') { $incorrectParameters += $parameter } @@ -922,7 +920,7 @@ Describe "API version tests [All apiVersions in the template should be 'recent'] if (-not ($convertedTemplates.Keys -contains $moduleFolderPathKey)) { if (Test-Path (Join-Path $moduleFolderPath 'deploy.bicep')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.bicep' - $templateContent = az bicep build --file $templateFilePath --stdout | ConvertFrom-Json -AsHashtable + $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable } elseIf (Test-Path (Join-Path $moduleFolderPath 'deploy.json')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.json' $templateContent = Get-Content $templateFilePath -Raw | ConvertFrom-Json -AsHashtable diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index df90c119b0..a91b2a501b 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -628,7 +628,7 @@ function Set-ModuleReadMe { if (-not $TemplateFileContent) { if ((Split-Path -Path $TemplateFilePath -Extension) -eq '.bicep') { - $templateFileContent = az bicep build --file $TemplateFilePath --stdout | ConvertFrom-Json -AsHashtable + $templateFileContent = az bicep build --file $TemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable } else { $templateFileContent = ConvertFrom-Json (Get-Content $TemplateFilePath -Encoding 'utf8' -Raw) -ErrorAction Stop -AsHashtable } From aebb1daf75b935d677ab0b2f9bd8d5202743eed2 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 4 Jun 2022 10:23:01 +0200 Subject: [PATCH 05/14] Regenerated readme --- .../.parameters/encr.parameters.json | 17 ++++++++--------- arm/Microsoft.Compute/virtualMachines/readme.md | 17 +---------------- arm/Microsoft.EventHub/namespaces/readme.md | 1 + arm/Microsoft.KeyVault/vaults/readme.md | 1 + arm/Microsoft.ServiceBus/namespaces/readme.md | 1 + 5 files changed, 12 insertions(+), 25 deletions(-) diff --git a/arm/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json b/arm/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json index c396172aaa..9bee988855 100644 --- a/arm/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json +++ b/arm/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json @@ -5,22 +5,21 @@ "name": { "value": "<>-wd-aut-encr-001" }, - "encryptionKeySource" : { - "value" : "Microsoft.Keyvault" + "encryptionKeySource": { + "value": "Microsoft.Keyvault" }, "encryptionUserAssignedIdentity": { "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001" // this identity needs to be one of the identities defined in userAssignedIdentities section }, - "keyName" : { - "value" : "keyEncryptionKey" + "keyName": { + "value": "keyEncryptionKey" }, - "keyvaultUri" : { - "value" : "https://adp-carml-az-kv-nopr-002.vault.azure.net/" + "keyvaultUri": { + "value": "https://adp-carml-az-kv-nopr-002.vault.azure.net/" }, - "keyVersion" : { - "value" : "9917c14be51d4d93b37218de7d326f60" + "keyVersion": { + "value": "9917c14be51d4d93b37218de7d326f60" }, - "userAssignedIdentities": { "value": { "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} diff --git a/arm/Microsoft.Compute/virtualMachines/readme.md b/arm/Microsoft.Compute/virtualMachines/readme.md index 69727052d0..514dd6ca0b 100644 --- a/arm/Microsoft.Compute/virtualMachines/readme.md +++ b/arm/Microsoft.Compute/virtualMachines/readme.md @@ -1739,22 +1739,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { } } adminUsername: 'localAdminUser' - adminPassword: [ - { - Value: { - keyVault: { - id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001' - } - secretName: 'adminPassword' - } - MemberType: 8 - IsSettable: true - IsGettable: true - TypeNameOfValue: 'System.Management.Automation.PSCustomObject' - Name: 'reference' - IsInstance: true - } - ] + adminPassword: kv1.getSecret('adminPassword') nicConfigurations: [ { nicSuffix: '-nic-01' diff --git a/arm/Microsoft.EventHub/namespaces/readme.md b/arm/Microsoft.EventHub/namespaces/readme.md index be4e504c71..a78fe18ed9 100644 --- a/arm/Microsoft.EventHub/namespaces/readme.md +++ b/arm/Microsoft.EventHub/namespaces/readme.md @@ -306,6 +306,7 @@ userAssignedIdentities: { module namespaces './Microsoft.EventHub/namespaces/deploy.bicep' = { name: '${uniqueString(deployment().name)}-namespaces' params: { + } ``` diff --git a/arm/Microsoft.KeyVault/vaults/readme.md b/arm/Microsoft.KeyVault/vaults/readme.md index 43b4f23147..6ecf79f56b 100644 --- a/arm/Microsoft.KeyVault/vaults/readme.md +++ b/arm/Microsoft.KeyVault/vaults/readme.md @@ -405,6 +405,7 @@ privateEndpoints: [ module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { name: '${uniqueString(deployment().name)}-vaults' params: { + } ``` diff --git a/arm/Microsoft.ServiceBus/namespaces/readme.md b/arm/Microsoft.ServiceBus/namespaces/readme.md index ebdb27c5d3..5bdc77443b 100644 --- a/arm/Microsoft.ServiceBus/namespaces/readme.md +++ b/arm/Microsoft.ServiceBus/namespaces/readme.md @@ -318,6 +318,7 @@ userAssignedIdentities: { module namespaces './Microsoft.ServiceBus/namespaces/deploy.bicep' = { name: '${uniqueString(deployment().name)}-namespaces' params: { + } ``` From 5a3c8689eadea1d78abb45cb791b2a90e6841e6e Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 4 Jun 2022 19:09:38 +0200 Subject: [PATCH 06/14] Exclude certain tests if no primary resource exists + updated skip behavior --- arm/.global/global.module.tests.ps1 | 32 ++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/arm/.global/global.module.tests.ps1 b/arm/.global/global.module.tests.ps1 index 5b12b3ac17..700879b4da 100644 --- a/arm/.global/global.module.tests.ps1 +++ b/arm/.global/global.module.tests.ps1 @@ -609,7 +609,7 @@ Describe 'Deployment template tests' -Tag Template { ) if (-not $templateContent.parameters) { - # Skip test + Set-ItResult -Skipped -Because 'the module template has no parameters.' return } @@ -632,7 +632,7 @@ Describe 'Deployment template tests' -Tag Template { ) if (-not $templateContent.variables) { - # Skip test + Set-ItResult -Skipped -Because 'the module template has no variables.' return } @@ -747,9 +747,18 @@ Describe 'Deployment template tests' -Tag Template { It '[] Resource name output should exist' -TestCases $deploymentFolderTestCases { param( $moduleFolderName, - $templateContent + $templateContent, + $templateFilePath ) + # check if module contains a 'primary' resource we could draw a name from + $moduleResourceType = (Split-Path (($templateFilePath -replace '\\', '/') -split '/arm/')[1] -Parent) -replace '\\', '/' + if ($templateContent.resources.type -notcontains $moduleResourceType) { + Set-ItResult -Skipped -Because 'the module template has no primary resource to fetch a name from.' + return + } + + # Otherwise test for standard outputs $outputs = $templateContent.outputs.Keys $outputs | Should -Contain 'name' } @@ -757,9 +766,18 @@ Describe 'Deployment template tests' -Tag Template { It '[] Resource ID output should exist' -TestCases $deploymentFolderTestCases { param( $moduleFolderName, - $templateContent + $templateContent, + $templateFilePath ) + # check if module contains a 'primary' resource we could draw a name from + $moduleResourceType = (Split-Path (($templateFilePath -replace '\\', '/') -split '/arm/')[1] -Parent) -replace '\\', '/' + if ($templateContent.resources.type -notcontains $moduleResourceType) { + Set-ItResult -Skipped -Because 'the module template has no primary resource to fetch a resource ID from.' + return + } + + # Otherwise test for standard outputs $outputs = $templateContent.outputs.Keys $outputs | Should -Contain 'resourceId' } @@ -771,7 +789,7 @@ Describe 'Deployment template tests' -Tag Template { ) if (-not $templateContent.parameters) { - # Skip test + Set-ItResult -Skipped -Because 'the module template has no parameters.' return } @@ -793,7 +811,7 @@ Describe 'Deployment template tests' -Tag Template { ) if (-not $templateContent.parameters) { - # Skip test + Set-ItResult -Skipped -Because 'the module template has no parameters.' return } @@ -819,7 +837,7 @@ Describe 'Deployment template tests' -Tag Template { ) if (-not $templateContent.outputs) { - # Skip test + Set-ItResult -Skipped -Because 'the module template has no outputs.' return } From ffb0ec8d3b0d02c3c0cd01dbd29a54e72196f605 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 4 Jun 2022 19:30:33 +0200 Subject: [PATCH 07/14] Adjusted test result search --- .../actions/templates/validateModulePester/action.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/actions/templates/validateModulePester/action.yml b/.github/actions/templates/validateModulePester/action.yml index df807ff197..df7a25bdc4 100644 --- a/.github/actions/templates/validateModulePester/action.yml +++ b/.github/actions/templates/validateModulePester/action.yml @@ -116,12 +116,6 @@ runs: Write-Output "::endgroup::" - - name: Publish Test Results - uses: EnricoMi/publish-unit-test-result-action@v1 - if: always() && !contains('cancelled,skipped', steps.pester_run_step.outcome) - with: - files: arm/.global/global-testResults.xml - # [Module Pester Test] task(s) #----------------------------- - name: 'Run API tests via Pester' @@ -168,6 +162,6 @@ runs: - name: Publish Test Results uses: EnricoMi/publish-unit-test-result-action@v1 - if: always() && !contains('cancelled,skipped', steps.pester_api_run_step.outcome) + if: always() with: - files: arm/.global/api-testResults.xml + files: arm/**/*-testResults.xml From 474ffa3655797d6f51576b4f37604def392c77d7 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 4 Jun 2022 19:34:16 +0200 Subject: [PATCH 08/14] Another try --- .github/actions/templates/validateModulePester/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/templates/validateModulePester/action.yml b/.github/actions/templates/validateModulePester/action.yml index df7a25bdc4..b239ebfd03 100644 --- a/.github/actions/templates/validateModulePester/action.yml +++ b/.github/actions/templates/validateModulePester/action.yml @@ -164,4 +164,4 @@ runs: uses: EnricoMi/publish-unit-test-result-action@v1 if: always() with: - files: arm/**/*-testResults.xml + files: 'arm/.global/*-testResults.xml' From 1ca3900a426d66f79cc0bd5c423d328ef9c2c523 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 4 Jun 2022 19:36:41 +0200 Subject: [PATCH 09/14] Another try --- .github/actions/templates/validateModulePester/action.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/actions/templates/validateModulePester/action.yml b/.github/actions/templates/validateModulePester/action.yml index b239ebfd03..572649cc6c 100644 --- a/.github/actions/templates/validateModulePester/action.yml +++ b/.github/actions/templates/validateModulePester/action.yml @@ -164,4 +164,6 @@ runs: uses: EnricoMi/publish-unit-test-result-action@v1 if: always() with: - files: 'arm/.global/*-testResults.xml' + files: | + 'arm/.global/global-testResults.xml' + 'arm/.global/api-testResults.xml' From cbc45575f271d953ec0b4d3b65ba15367fdb5f09 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sat, 4 Jun 2022 19:37:10 +0200 Subject: [PATCH 10/14] Update to latest --- .github/actions/templates/validateModulePester/action.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/actions/templates/validateModulePester/action.yml b/.github/actions/templates/validateModulePester/action.yml index 572649cc6c..b239ebfd03 100644 --- a/.github/actions/templates/validateModulePester/action.yml +++ b/.github/actions/templates/validateModulePester/action.yml @@ -164,6 +164,4 @@ runs: uses: EnricoMi/publish-unit-test-result-action@v1 if: always() with: - files: | - 'arm/.global/global-testResults.xml' - 'arm/.global/api-testResults.xml' + files: 'arm/.global/*-testResults.xml' From 73c30ba82d5518c53c7fdcd383a40c7f0ca186a4 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 7 Jun 2022 11:26:00 +0200 Subject: [PATCH 11/14] Added case handling --- arm/.global/global.module.tests.ps1 | 78 ++++++++++++++++------------- 1 file changed, 43 insertions(+), 35 deletions(-) diff --git a/arm/.global/global.module.tests.ps1 b/arm/.global/global.module.tests.ps1 index a202d980a1..9e12e8bcc2 100644 --- a/arm/.global/global.module.tests.ps1 +++ b/arm/.global/global.module.tests.ps1 @@ -48,7 +48,7 @@ Describe 'File/folder tests' -Tag Modules { It '[] Module should have a GitHub workflow' -TestCases ($moduleFolderTestCases | Where-Object { $_.isTopLevelModule }) { param( - [string] $moduleFolderName, + [string] [string] $moduleFolderName, [string] $moduleFolderPath ) @@ -63,7 +63,7 @@ Describe 'File/folder tests' -Tag Modules { It '[] Module should have an Azure DevOps pipeline' -TestCases ($moduleFolderTestCases | Where-Object { $_.isTopLevelModule }) { param( - [string] $moduleFolderName, + [string] [string] $moduleFolderName, [string] $moduleFolderPath ) @@ -117,7 +117,7 @@ Describe 'File/folder tests' -Tag Modules { It '[] folder should contain one or more *parameters.json files' -TestCases $folderTestCases { param( - $moduleFolderName, + [string] $moduleFolderName, $moduleFolderPath ) $parameterFolderPath = Join-Path $moduleFolderPath '.parameters' @@ -140,7 +140,7 @@ Describe 'File/folder tests' -Tag Modules { It '[] *parameters.json files in the .parameters folder should be valid json' -TestCases $parameterFolderFilesTestCases { param( - $moduleFolderName, + [string] $moduleFolderName, $parameterFilePath ) (Get-Content $parameterFilePath) | ConvertFrom-Json @@ -191,14 +191,15 @@ Describe 'Readme tests' -Tag Readme { templateFilePath = $templateFilePath readMeFilePath = Join-Path -Path $moduleFolderPath 'readme.md' readMeContent = Get-Content (Join-Path -Path $moduleFolderPath 'readme.md') + isTopLevelModule = $moduleFolderPath.Replace('\', '/').Split('/arm/')[1].Split('/').Count -eq 2 # / } } It '[] Readme.md file should not be empty' -TestCases $readmeFolderTestCases { param( - $moduleFolderName, - $readMeContent + [string] $moduleFolderName, + [object[]] $readMeContent ) $readMeContent | Should -Not -Be $null } @@ -206,11 +207,18 @@ Describe 'Readme tests' -Tag Readme { It '[] Readme.md file should contain these sections in order: Navigation, Resource Types, Parameters, Outputs, Deployment examples' -TestCases $readmeFolderTestCases { param( - $moduleFolderName, - $readMeContent + [string] $moduleFolderName, + [object[]] $readMeContent, + [boolean] $isTopLevelModule ) - $expectedHeadersInOrder = @('Navigation', 'Resource types', 'Parameters', 'Outputs', 'Deployment examples') + $expectedHeadersInOrder = @('Navigation', 'Resource types', 'Parameters', 'Outputs') + + if ($isTopLevelModule) { + # Only top-level modules have parameter files and hence deployment examples + $expectedHeadersInOrder += 'Deployment examples' + } + $actualHeadersInOrder = $readMeContent | Where-Object { $_ -like '#*' } | ForEach-Object { ($_ -replace '#', '').TrimStart() } $filteredActuals = $actualHeadersInOrder | Where-Object { $expectedHeadersInOrder -contains $_ } @@ -224,7 +232,7 @@ Describe 'Readme tests' -Tag Readme { It '[] Resources section should contain all resources from the template file' -TestCases $readmeFolderTestCases { param( - [string] $moduleFolderName, + [string] [string] $moduleFolderName, [hashtable] $templateContent, [object[]] $readMeContent ) @@ -249,7 +257,7 @@ Describe 'Readme tests' -Tag Readme { It '[] Resources section should not contain more resources than the template file' -TestCases $readmeFolderTestCases { param( - [string] $moduleFolderName, + [string] [string] $moduleFolderName, [hashtable] $templateContent, [object[]] $readMeContent ) @@ -274,7 +282,7 @@ Describe 'Readme tests' -Tag Readme { It '[] Parameters section should contain a table for each existing parameter category in the following order: Required, Conditional, Optional, Generated' -TestCases $readmeFolderTestCases { param( - [string] $moduleFolderName, + [string] [string] $moduleFolderName, [hashtable] $templateContent, [object[]] $readMeContent ) @@ -297,7 +305,7 @@ Describe 'Readme tests' -Tag Readme { It '[] parameter tables should provide columns in the following order: Parameter Name, Type, Default Value, Allowed Values, Description. Each column should be present unless empty for all the rows.' -TestCases $readmeFolderTestCases { param( - [string] $moduleFolderName, + [string] [string] $moduleFolderName, [hashtable] $templateContent, [object[]] $readMeContent ) @@ -332,7 +340,7 @@ Describe 'Readme tests' -Tag Readme { It '[] Parameters section should contain all parameters from the template file' -TestCases $readmeFolderTestCases { param( - [string] $moduleFolderName, + [string] [string] $moduleFolderName, [hashtable] $templateContent, [object[]] $readMeContent ) @@ -382,7 +390,7 @@ Describe 'Readme tests' -Tag Readme { It '[] Outputs section should contain a table with these column names in order: Output Name, Type' -TestCases $readmeFolderTestCases { param( - $moduleFolderName, + [string] $moduleFolderName, $readMeContent ) @@ -399,7 +407,7 @@ Describe 'Readme tests' -Tag Readme { It '[] Output section should contain all outputs defined in the template file' -TestCases $readmeFolderTestCases { param( - [string] $moduleFolderName, + [string] [string] $moduleFolderName, [hashtable] $templateContent, [object[]] $readMeContent ) @@ -426,7 +434,7 @@ Describe 'Readme tests' -Tag Readme { It '[] Set-ModuleReadMe script should not apply any updates' -TestCases $readmeFolderTestCases { param( - [string] $moduleFolderName, + [string] [string] $moduleFolderName, [string] $templateFilePath, [hashtable] $templateContent, [string] $readMeFilePath @@ -519,7 +527,7 @@ Describe 'Deployment template tests' -Tag Template { It '[] the template file should not be empty' -TestCases $deploymentFolderTestCases { param( - $moduleFolderName, + [string] $moduleFolderName, $templateContent ) $templateContent | Should -Not -Be $null @@ -529,7 +537,7 @@ Describe 'Deployment template tests' -Tag Template { # the actual value changes depending on the scope of the template (RG, subscription, MG, tenant) !! # https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-syntax param( - $moduleFolderName, + [string] $moduleFolderName, $templateContent ) @@ -553,7 +561,7 @@ Describe 'Deployment template tests' -Tag Template { It '[] Template schema should use HTTPS reference' -TestCases $deploymentFolderTestCases { param( - $moduleFolderName, + [string] $moduleFolderName, $templateContent ) $Schemaverion = $templateContent.'$schema' @@ -563,7 +571,7 @@ Describe 'Deployment template tests' -Tag Template { It '[] All apiVersion properties should be set to a static, hard-coded value' -TestCases $deploymentFolderTestCases { #https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-best-practices param( - $moduleFolderName, + [string] $moduleFolderName, $templateContent ) $ApiVersion = $templateContent.resources.apiVersion @@ -588,7 +596,7 @@ Describe 'Deployment template tests' -Tag Template { It '[] the template file should contain required elements: schema, contentVersion, resources' -TestCases $deploymentFolderTestCases { param( - $moduleFolderName, + [string] $moduleFolderName, $templateContent ) $templateContent.Keys | Should -Contain '$schema' @@ -599,7 +607,7 @@ Describe 'Deployment template tests' -Tag Template { It '[] If delete lock is implemented, the template should have a lock parameter with the default value of []' -TestCases $deploymentFolderTestCases { param( - $moduleFolderName, + [string] $moduleFolderName, $templateContent ) if ($lock = $templateContent.parameters.lock) { @@ -611,7 +619,7 @@ Describe 'Deployment template tests' -Tag Template { It '[] Parameter names should be camel-cased (no dashes or underscores and must start with lower-case letter)' -TestCases $deploymentFolderTestCases { param( - $moduleFolderName, + [string] $moduleFolderName, $templateContent ) @@ -635,7 +643,7 @@ Describe 'Deployment template tests' -Tag Template { It '[] Variable names should be camel-cased (no dashes or underscores and must start with lower-case letter)' -TestCases $deploymentFolderTestCases { param( - $moduleFolderName, + [string] $moduleFolderName, $templateContent ) @@ -660,7 +668,7 @@ Describe 'Deployment template tests' -Tag Template { It '[] Output names should be camel-cased (no dashes or underscores and must start with lower-case letter)' -TestCases $deploymentFolderTestCases { param( - $moduleFolderName, + [string] $moduleFolderName, $templateContent ) $CamelCasingFlag = @() @@ -679,7 +687,7 @@ Describe 'Deployment template tests' -Tag Template { It '[] CUA ID deployment should be present in the template' -TestCases $deploymentFolderTestCases { param( - $moduleFolderName, + [string] $moduleFolderName, $templateContent ) $enableDefaultTelemetryFlag = @() @@ -697,7 +705,7 @@ Describe 'Deployment template tests' -Tag Template { It "[] The Location should be defined as a parameter, with the default value of 'resourceGroup().Location' or global for ResourceGroup deployment scope" -TestCases $deploymentFolderTestCases { param( - $moduleFolderName, + [string] $moduleFolderName, $templateContent ) $LocationFlag = $true @@ -720,7 +728,7 @@ Describe 'Deployment template tests' -Tag Template { It '[] Location output should be returned for resources that use it' -TestCases $deploymentFolderTestCases { param( - [string] $moduleFolderName, + [string] [string] $moduleFolderName, $templateContent, [string] $templateFilePath ) @@ -742,7 +750,7 @@ Describe 'Deployment template tests' -Tag Template { It '[] Resource Group output should exist for resources that are deployed into a resource group scope' -TestCases $deploymentFolderTestCases { param( - [string] $moduleFolderName, + [string] [string] $moduleFolderName, $templateContent, [string] $templateFilePath ) @@ -758,7 +766,7 @@ Describe 'Deployment template tests' -Tag Template { It '[] Resource name output should exist' -TestCases $deploymentFolderTestCases { param( - $moduleFolderName, + [string] $moduleFolderName, $templateContent, $templateFilePath ) @@ -778,7 +786,7 @@ Describe 'Deployment template tests' -Tag Template { It '[] Resource ID output should exist' -TestCases $deploymentFolderTestCases { param( - $moduleFolderName, + [string] $moduleFolderName, $templateContent, $templateFilePath ) @@ -798,7 +806,7 @@ Describe 'Deployment template tests' -Tag Template { It "[] parameters' description should start with a one word category starting with a capital letter, followed by a dot, a space and the actual description text ending with a dot." -TestCases $deploymentFolderTestCases { param( - $moduleFolderName, + [string] $moduleFolderName, $templateContent ) @@ -821,7 +829,7 @@ Describe 'Deployment template tests' -Tag Template { It "[] Conditional parameters' description should contain 'Required if' followed by the condition making the parameter required." -TestCases $deploymentFolderTestCases { param( - $moduleFolderName, + [string] $moduleFolderName, $templateContent ) @@ -848,7 +856,7 @@ Describe 'Deployment template tests' -Tag Template { It "[] outputs' description should start with a capital letter and contain text ending with a dot." -TestCases $deploymentFolderTestCases { param( - $moduleFolderName, + [string] $moduleFolderName, $templateContent ) From c597d99c8bcbc032849e40ba8afd397c6c8b14f6 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 7 Jun 2022 11:26:40 +0200 Subject: [PATCH 12/14] Minor rename --- utilities/tools/Set-ModuleReadMe.ps1 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index a91b2a501b..7131a577f5 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -301,10 +301,10 @@ function Set-OutputsSection { <# .SYNOPSIS -Generate 'Usage Examples' for the ReadMe out of the parameter files currently used to test the template +Generate 'Deployment examples' for the ReadMe out of the parameter files currently used to test the template .DESCRIPTION -Generate 'Usage Examples' for the ReadMe out of the parameter files currently used to test the template +Generate 'Deployment examples' for the ReadMe out of the parameter files currently used to test the template .PARAMETER TemplateFileContent Mandatory. The template file content object to crawl data from @@ -607,7 +607,7 @@ function Set-ModuleReadMe { 'Outputs', 'Template references', 'Navigation', - 'Usage examples' + 'Deployment examples' )] [string[]] $SectionsToRefresh = @( 'Resource Types', @@ -615,7 +615,7 @@ function Set-ModuleReadMe { 'Outputs', 'Template references', 'Navigation', - 'Usage examples' + 'Deployment examples' ) ) @@ -717,8 +717,8 @@ function Set-ModuleReadMe { $readMeFileContent = Set-OutputsSection @inputObject } - if ($SectionsToRefresh -contains 'Usage examples') { - # Handle [Usage examples] section + if ($SectionsToRefresh -contains 'Deployment examples') { + # Handle [Deployment examples] section # =================================== $inputObject = @{ ReadMeFileContent = $readMeFileContent From 0cfe407f9debf7349e7f436f09dd6169f670b3b3 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 7 Jun 2022 11:32:15 +0200 Subject: [PATCH 13/14] Fixed spec --- arm/.global/global.module.tests.ps1 | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/arm/.global/global.module.tests.ps1 b/arm/.global/global.module.tests.ps1 index 9e12e8bcc2..997034b23c 100644 --- a/arm/.global/global.module.tests.ps1 +++ b/arm/.global/global.module.tests.ps1 @@ -48,7 +48,7 @@ Describe 'File/folder tests' -Tag Modules { It '[] Module should have a GitHub workflow' -TestCases ($moduleFolderTestCases | Where-Object { $_.isTopLevelModule }) { param( - [string] [string] $moduleFolderName, + [string] $moduleFolderName, [string] $moduleFolderPath ) @@ -63,7 +63,7 @@ Describe 'File/folder tests' -Tag Modules { It '[] Module should have an Azure DevOps pipeline' -TestCases ($moduleFolderTestCases | Where-Object { $_.isTopLevelModule }) { param( - [string] [string] $moduleFolderName, + [string] $moduleFolderName, [string] $moduleFolderPath ) @@ -232,7 +232,7 @@ Describe 'Readme tests' -Tag Readme { It '[] Resources section should contain all resources from the template file' -TestCases $readmeFolderTestCases { param( - [string] [string] $moduleFolderName, + [string] $moduleFolderName, [hashtable] $templateContent, [object[]] $readMeContent ) @@ -257,7 +257,7 @@ Describe 'Readme tests' -Tag Readme { It '[] Resources section should not contain more resources than the template file' -TestCases $readmeFolderTestCases { param( - [string] [string] $moduleFolderName, + [string] $moduleFolderName, [hashtable] $templateContent, [object[]] $readMeContent ) @@ -282,7 +282,7 @@ Describe 'Readme tests' -Tag Readme { It '[] Parameters section should contain a table for each existing parameter category in the following order: Required, Conditional, Optional, Generated' -TestCases $readmeFolderTestCases { param( - [string] [string] $moduleFolderName, + [string] $moduleFolderName, [hashtable] $templateContent, [object[]] $readMeContent ) @@ -305,7 +305,7 @@ Describe 'Readme tests' -Tag Readme { It '[] parameter tables should provide columns in the following order: Parameter Name, Type, Default Value, Allowed Values, Description. Each column should be present unless empty for all the rows.' -TestCases $readmeFolderTestCases { param( - [string] [string] $moduleFolderName, + [string] $moduleFolderName, [hashtable] $templateContent, [object[]] $readMeContent ) @@ -340,7 +340,7 @@ Describe 'Readme tests' -Tag Readme { It '[] Parameters section should contain all parameters from the template file' -TestCases $readmeFolderTestCases { param( - [string] [string] $moduleFolderName, + [string] $moduleFolderName, [hashtable] $templateContent, [object[]] $readMeContent ) @@ -407,7 +407,7 @@ Describe 'Readme tests' -Tag Readme { It '[] Output section should contain all outputs defined in the template file' -TestCases $readmeFolderTestCases { param( - [string] [string] $moduleFolderName, + [string] $moduleFolderName, [hashtable] $templateContent, [object[]] $readMeContent ) @@ -434,7 +434,7 @@ Describe 'Readme tests' -Tag Readme { It '[] Set-ModuleReadMe script should not apply any updates' -TestCases $readmeFolderTestCases { param( - [string] [string] $moduleFolderName, + [string] $moduleFolderName, [string] $templateFilePath, [hashtable] $templateContent, [string] $readMeFilePath @@ -728,7 +728,7 @@ Describe 'Deployment template tests' -Tag Template { It '[] Location output should be returned for resources that use it' -TestCases $deploymentFolderTestCases { param( - [string] [string] $moduleFolderName, + [string] $moduleFolderName, $templateContent, [string] $templateFilePath ) @@ -750,7 +750,7 @@ Describe 'Deployment template tests' -Tag Template { It '[] Resource Group output should exist for resources that are deployed into a resource group scope' -TestCases $deploymentFolderTestCases { param( - [string] [string] $moduleFolderName, + [string] $moduleFolderName, $templateContent, [string] $templateFilePath ) From 8d13d842544f9c845de796e4716ba4d95160f802 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 7 Jun 2022 19:29:26 +0200 Subject: [PATCH 14/14] Specified all parm types --- arm/.global/global.module.tests.ps1 | 47 +++++++++++++++-------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/arm/.global/global.module.tests.ps1 b/arm/.global/global.module.tests.ps1 index 997034b23c..2c92ebcbfe 100644 --- a/arm/.global/global.module.tests.ps1 +++ b/arm/.global/global.module.tests.ps1 @@ -528,7 +528,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent + [hashtable] $templateContent ) $templateContent | Should -Not -Be $null } @@ -538,7 +538,7 @@ Describe 'Deployment template tests' -Tag Template { # https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-syntax param( [string] $moduleFolderName, - $templateContent + [hashtable] $templateContent ) $Schemaverion = $templateContent.'$schema' @@ -562,7 +562,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent + [hashtable] $templateContent ) $Schemaverion = $templateContent.'$schema' ($Schemaverion.Substring(0, 5) -eq 'https') | Should -Be $true @@ -572,7 +572,7 @@ Describe 'Deployment template tests' -Tag Template { #https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-best-practices param( [string] $moduleFolderName, - $templateContent + [hashtable] $templateContent ) $ApiVersion = $templateContent.resources.apiVersion $ApiVersionArray = @() @@ -597,7 +597,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent + [hashtable] $templateContent ) $templateContent.Keys | Should -Contain '$schema' $templateContent.Keys | Should -Contain 'contentVersion' @@ -608,7 +608,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent + [hashtable] $templateContent ) if ($lock = $templateContent.parameters.lock) { $lock.Keys | Should -Contain 'defaultValue' @@ -620,7 +620,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent + [hashtable] $templateContent ) if (-not $templateContent.parameters) { @@ -644,7 +644,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent + [hashtable] $templateContent ) if (-not $templateContent.variables) { @@ -669,7 +669,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent + [hashtable] $templateContent ) $CamelCasingFlag = @() $Outputs = $templateContent.outputs.Keys @@ -688,7 +688,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent + [hashtable] $templateContent ) $enableDefaultTelemetryFlag = @() $Schemaverion = $templateContent.'$schema' @@ -706,7 +706,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent + [hashtable] $templateContent ) $LocationFlag = $true $Schemaverion = $templateContent.'$schema' @@ -729,7 +729,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent, + [hashtable] $templateContent, [string] $templateFilePath ) @@ -751,7 +751,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent, + [hashtable] $templateContent, [string] $templateFilePath ) @@ -767,7 +767,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent, + [hashtable] $templateContent, $templateFilePath ) @@ -787,7 +787,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent, + [hashtable] $templateContent, $templateFilePath ) @@ -807,7 +807,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent + [hashtable] $templateContent ) if (-not $templateContent.parameters) { @@ -830,7 +830,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent + [hashtable] $templateContent ) if (-not $templateContent.parameters) { @@ -857,7 +857,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent + [hashtable] $templateContent ) if (-not $templateContent.outputs) { @@ -1049,12 +1049,13 @@ Describe "API version tests [All apiVersions in the template should be 'recent'] } It 'In [] used resource type [] should use one of the recent API version(s). Currently using []' -TestCases $TestCases { + param( - $moduleName, - $resourceType, - $TargetApi, - $ProviderNamespace, - $AvailableApiVersions + [string] $moduleName, + [string] $resourceType, + [string] $TargetApi, + [string] $ProviderNamespace, + [object[]] $AvailableApiVersions ) $namespaceResourceTypes = ($AvailableApiVersions | Where-Object { $_.ProviderNamespace -eq $ProviderNamespace }).ResourceTypes