diff --git a/src/ALZ/Assets/alz-bicep-config/v0.14.0.config.json b/src/ALZ/Assets/alz-bicep-config/v0.14.0.config.json deleted file mode 100644 index be017b9..0000000 --- a/src/ALZ/Assets/alz-bicep-config/v0.14.0.config.json +++ /dev/null @@ -1,522 +0,0 @@ -{ - "version": "v0.14.0", - "module_url": "https://github.com/Azure/ALZ-Bicep", - "config_files": [ - { - "source": "infra-as-code/bicep/modules/policy/definitions/parameters/customPolicyDefinitions.parameters.all.json", - "destination": "config/custom-parameters/customPolicyDefinitions.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/customRoleDefinitions/parameters/customRoleDefinitions.parameters.all.json", - "destination": "config/custom-parameters/customRoleDefinitions.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/hubNetworking/parameters/hubNetworking.parameters.all.json", - "destination": "config/custom-parameters/hubNetworking.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/logging/parameters/logging.parameters.all.json", - "destination": "config/custom-parameters/logging.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/managementGroups/parameters/managementGroups.parameters.all.json", - "destination": "config/custom-parameters/managementGroups.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/orchestration/mgDiagSettingsAll/parameters/mgDiagSettingsAll.parameters.all.json", - "destination": "config/custom-parameters/mgDiagSettingsAll.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/policy/assignments/alzDefaults/parameters/alzDefaultPolicyAssignments.parameters.all.json", - "destination": "config/custom-parameters/alzDefaultPolicyAssignments.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/resourceGroup/parameters/resourceGroup.parameters.all.json", - "destination": "config/custom-parameters/resourceGroupConnectivity.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/resourceGroup/parameters/resourceGroup.parameters.all.json", - "destination": "config/custom-parameters/resourceGroupLoggingAndSentinel.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/roleAssignments/parameters/roleAssignmentManagementGroupMany.servicePrincipal.parameters.all.json", - "destination": "config/custom-parameters/roleAssignmentManagementGroupMany.servicePrincipal.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/orchestration/subPlacementAll/parameters/subPlacementAll.parameters.all.json", - "destination": "config/custom-parameters/subPlacementAll.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/vwanConnectivity/parameters/vwanConnectivity.parameters.all.json", - "destination": "config/custom-parameters/vwanConnectivity.parameters.all.json" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-1.yml", - "destination": ".github/workflows/alz-bicep-1.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-2.yml", - "destination": ".github/workflows/alz-bicep-2.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-3.yml", - "destination": ".github/workflows/alz-bicep-3.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-4a.yml", - "destination": ".github/workflows/alz-bicep-4a.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-4b.yml", - "destination": ".github/workflows/alz-bicep-4b.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-pr-1.yml", - "destination": ".github/workflows/alz-bicep-pr-1.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-pr-2.yml", - "destination": ".github/workflows/alz-bicep-pr-2.yml" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZConnectivityResourceGroup.ps1", - "destination": "pipeline-scripts/Deploy-ALZConnectivityResourceGroup.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZCustomPolicyDefinitions.ps1", - "destination": "pipeline-scripts/Deploy-ALZCustomPolicyDefinitions.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZCustomRoleDefinitions.ps1", - "destination": "pipeline-scripts/Deploy-ALZCustomRoleDefinitions.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZHub-HubAndSpoke.ps1", - "destination": "pipeline-scripts/Deploy-ALZHub-HubAndSpoke.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZHub-VWAN.ps1", - "destination": "pipeline-scripts/Deploy-ALZHub-VWAN.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZLoggingAndSentinel.ps1", - "destination": "pipeline-scripts/Deploy-ALZLoggingAndSentinel.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZLoggingAndSentinelResourceGroup.ps1", - "destination": "pipeline-scripts/Deploy-ALZLoggingAndSentinelResourceGroup.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZMGDiagnosticSettings.ps1", - "destination": "pipeline-scripts/Deploy-ALZMGDiagnosticSettings.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZManagementGroups.ps1", - "destination": "pipeline-scripts/Deploy-ALZManagementGroups.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZPolicyAssignments.ps1", - "destination": "pipeline-scripts/Deploy-ALZPolicyAssignments.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZRoleAssignments.ps1", - "destination": "pipeline-scripts/Deploy-ALZRoleAssignments.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZSubscriptionPlacement.ps1", - "destination": "pipeline-scripts/Deploy-ALZSubscriptionPlacement.ps1" - }, - { - "source": "accelerator/README.md", - "destination": "README.md" - } - ], - "parameters": { - "Prefix": { - "Type": "UserInput", - "Description": "The prefix that will be added to all resources created by this deployment. (e.g. 'alz')", - "Targets": [ - { - "Name": "parTopLevelManagementGroupPrefix.value", - "Destination": "Parameters" - }, - { - "Name": "parCompanyPrefix.value", - "Destination": "Parameters" - }, - { - "Name": "parTargetManagementGroupId.value", - "Destination": "Parameters" - }, - { - "Name": "parAssignableScopeManagementGroupId.value", - "Destination": "Parameters" - }, - { - "name": "TOP_LEVEL_MG_PREFIX", - "destination": "Environment" - } - ], - "Value": "", - "DefaultValue": "alz", - "Valid": "^[a-zA-Z0-9]{2,10}(-[a-zA-Z0-9]{2,10})?$" - }, - "Location": { - "Type": "UserInput", - "Description": "Deployment location. (e.g. 'uksouth')", - "Value": "", - "Targets": [ - { - "Name": "parLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parAutomationAccountLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parPolicyAssignmentParameters.value.ascExportResourceGroupLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parVirtualWanHubs.value.[0].parHubLocation", - "Destination": "Parameters" - }, - { - "Name": "LOCATION", - "Destination": "Environment" - } - ], - "AllowedValues": { - "Display": false, - "Values": [ - "australiacentral", - "australiacentral2", - "australiaeast", - "australiasoutheast", - "brazilsouth", - "brazilsoutheast", - "canadacentral", - "canadaeast", - "centralindia", - "centralus", - "centraluseuap", - "eastasia", - "eastus", - "eastus2", - "eastus2euap", - "eastusstg", - "francecentral", - "francesouth", - "germanynorth", - "germanywestcentral", - "japaneast", - "japanwest", - "jioindiacentral", - "jioindiawest", - "koreacentral", - "koreasouth", - "northcentralus", - "northeurope", - "norwayeast", - "norwaywest", - "qatarcentral", - "southafricanorth", - "southafricawest", - "southcentralus", - "southeastasia", - "southindia", - "swedencentral", - "switzerlandnorth", - "switzerlandwest", - "uaecentral", - "uaenorth", - "uksouth", - "ukwest", - "westcentralus", - "westeurope", - "westindia", - "westus", - "westus2", - "westus3" - ] - } - }, - "Environment": { - "Type": "UserInput", - "Description": "The Type of environment that will be created. (e.g. 'live', 'canary')", - "Targets": [ - { - "Name": "parEnvironment.value", - "Destination": "Parameters" - }, - { - "Name": "parTags.value.Environment", - "Destination": "Parameters" - } - ], - "Value": "", - "DefaultValue": "live", - "Valid": "^[a-zA-Z0-9]{2,10}$" - }, - "IdentitySubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Identity Subscription. (e.g '00000000-0000-0000-0000-000000000000')", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "IDENTITY_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "ConnectivitySubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Connectivity Subscription. (e.g '00000000-0000-0000-0000-000000000000')", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "CONNECTIVITY_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "ManagementSubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Management Subscription. (e.g 00000000-0000-0000-0000-000000000000)", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "MANAGEMENT_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "SecurityContact": { - "Type": "UserInput", - "Description": "The email address of the contact for security issues. (e.g. security@contactme.com)", - "Valid": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", - "Targets": [ - { - "Name": "parMsDefenderForCloudEmailSecurityContact.value", - "Destination": "Parameters" - } - ], - "Value": "" - }, - "LogAnalyticsWorkspaceLocation": { - "Type": "Computed", - "Value": "{%Location%}", - "Process": "($args[0] -eq \"eastus\") ? \"eastus2\" : ($args[0] -eq \"eastus2\") ? \"eastus\" : $args[0]", - "Targets": [ - { - "Name": "parLogAnalyticsWorkspaceLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parLogAnalyticsWorkSpaceAndAutomationAccountLocation.value", - "Destination": "Parameters" - } - ] - }, - "LogAnalyticsResourceId": { - "Type": "Computed", - "Value": "/subscriptions/{%ManagementSubscriptionId%}/resourcegroups/rg-{%Prefix%}-logging/providers/microsoft.operationalinsights/workspaces/alz-log-analytics", - "Targets": [ - { - "Name": "parLogAnalyticsWorkspaceResourceId.value", - "Destination": "Parameters" - } - ] - }, - "DdosPretectionPlanId": { - "Type": "Computed", - "Value": "/subscriptions/{%ConnectivitySubscriptionId%}/resourceGroups/rg-{%Prefix%}-connectivity/providers/Microsoft.Network/ddosProtectionPlans/alz-ddos-plan", - "Targets": [ - { - "Name": "parDdosProtectionPlanId.value", - "Destination": "Parameters" - } - ] - }, - "PrivateDnsResourceGroupId": { - "Type": "Computed", - "Value": "/subscriptions/{%ConnectivitySubscriptionId%}/resourceGroups/rg-{%Prefix%}-connectivity", - "Targets": [ - { - "Name": "parPrivateDnsResourceGroupId.value", - "Destination": "Parameters" - } - ] - }, - "ManagementSubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%ManagementSubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformManagementMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "ConnectivitySubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%ConnectivitySubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformConnectivityMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "IdentitySubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%IdentitySubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformIdentityMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "HubNetworkName": { - "Type": "Computed", - "Value": "alz-hub-{%Location%}", - "Targets": [ - { - "Name": "parHubNetworkName.value", - "Destination": "Parameters" - } - ] - }, - "VirtualIdToLink": { - "Type": "Computed", - "Value": "", - "Targets": [ - { - "Name": "parVirtualNetworkIdToLink.value", - "Destination": "Parameters" - } - ] - }, - "VirtualWanName": { - "Type": "Computed", - "Value": "alz-vwan-{%Location%}", - "Targets": [ - { - "Name": "parVirtualWanName.value", - "Destination": "Parameters" - } - ] - }, - "AzFirewallName": { - "Type": "Computed", - "Value": "alz-azfw-{%Location%}", - "Targets": [ - { - "Name": "parAzFirewallName.value", - "Destination": "Parameters" - } - ] - }, - "FirewallPoliciesName": { - "Type": "Computed", - "Value": "alz-azfwpolicy-{%Location%}", - "Targets": [ - { - "Name": "parAzFirewallPoliciesName.value", - "Destination": "Parameters" - } - ] - }, - "AK8sPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.azmk8s.io", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[0]", - "Destination": "Parameters" - } - ] - }, - "BatchPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.batch.azure.com", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[1]", - "Destination": "Parameters" - } - ] - }, - "KustoPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.kusto.windows.net", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[2]", - "Destination": "Parameters" - } - ] - }, - "BackupPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.backup.windowsazure.com", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[3]", - "Destination": "Parameters" - } - ] - }, - "UpstreamReleaseVersion": { - "Type": "Computed", - "Value": "v0.14.0", - "Targets": [ - { - "Name": "UPSTREAM_RELEASE_VERSION", - "Destination": "Environment" - } - ] - }, - "ConnectivityResourceGroupName": { - "Type": "Computed", - "Value": "rg-{%Prefix%}-connectivity", - "Targets": [ - { - "Name": "CONNECTIVITY_RESOURCE_GROUP", - "Destination": "Environment" - }, - { - "File": "resourceGroupConnectivity.parameters.all.json", - "Name": "parResourceGroupName.value", - "Destination": "Parameters" - } - ] - }, - "LoggingResourceGroupName": { - "Type": "Computed", - "Value": "rg-{%Prefix%}-logging", - "Targets": [ - { - "Name": "LOGGING_RESOURCE_GROUP", - "Destination": "Environment" - }, - { - "File": "resourceGroupLoggingAndSentinel.parameters.all.json", - "Name": "parResourceGroupName.value", - "Destination": "Parameters" - } - ] - } - } -} \ No newline at end of file diff --git a/src/ALZ/Assets/alz-bicep-config/v0.15.0.config.json b/src/ALZ/Assets/alz-bicep-config/v0.15.0.config.json deleted file mode 100644 index 97cefb1..0000000 --- a/src/ALZ/Assets/alz-bicep-config/v0.15.0.config.json +++ /dev/null @@ -1,556 +0,0 @@ -{ - "version": "v0.15.0", - "module_url": "https://github.com/Azure/ALZ-Bicep", - "config_files": [ - { - "source": "infra-as-code/bicep/modules/policy/definitions/parameters/customPolicyDefinitions.parameters.all.json", - "destination": "config/custom-parameters/customPolicyDefinitions.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/customRoleDefinitions/parameters/customRoleDefinitions.parameters.all.json", - "destination": "config/custom-parameters/customRoleDefinitions.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/hubNetworking/parameters/hubNetworking.parameters.all.json", - "destination": "config/custom-parameters/hubNetworking.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/logging/parameters/logging.parameters.all.json", - "destination": "config/custom-parameters/logging.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/managementGroups/parameters/managementGroups.parameters.all.json", - "destination": "config/custom-parameters/managementGroups.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/orchestration/mgDiagSettingsAll/parameters/mgDiagSettingsAll.parameters.all.json", - "destination": "config/custom-parameters/mgDiagSettingsAll.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/policy/assignments/alzDefaults/parameters/alzDefaultPolicyAssignments.parameters.all.json", - "destination": "config/custom-parameters/alzDefaultPolicyAssignments.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/resourceGroup/parameters/resourceGroup.parameters.all.json", - "destination": "config/custom-parameters/resourceGroupConnectivity.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/resourceGroup/parameters/resourceGroup.parameters.all.json", - "destination": "config/custom-parameters/resourceGroupLoggingAndSentinel.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/roleAssignments/parameters/roleAssignmentManagementGroupMany.servicePrincipal.parameters.all.json", - "destination": "config/custom-parameters/roleAssignmentManagementGroupMany.servicePrincipal.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/orchestration/subPlacementAll/parameters/subPlacementAll.parameters.all.json", - "destination": "config/custom-parameters/subPlacementAll.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/vwanConnectivity/parameters/vwanConnectivity.parameters.all.json", - "destination": "config/custom-parameters/vwanConnectivity.parameters.all.json" - }, - { - "source": "accelerator/README.md", - "destination": "README.md" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZConnectivityResourceGroup.ps1", - "destination": "pipeline-scripts/Deploy-ALZConnectivityResourceGroup.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZCustomPolicyDefinitions.ps1", - "destination": "pipeline-scripts/Deploy-ALZCustomPolicyDefinitions.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZCustomRoleDefinitions.ps1", - "destination": "pipeline-scripts/Deploy-ALZCustomRoleDefinitions.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZHub-HubAndSpoke.ps1", - "destination": "pipeline-scripts/Deploy-ALZHub-HubAndSpoke.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZHub-VWAN.ps1", - "destination": "pipeline-scripts/Deploy-ALZHub-VWAN.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZLoggingAndSentinel.ps1", - "destination": "pipeline-scripts/Deploy-ALZLoggingAndSentinel.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZLoggingAndSentinelResourceGroup.ps1", - "destination": "pipeline-scripts/Deploy-ALZLoggingAndSentinelResourceGroup.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZMGDiagnosticSettings.ps1", - "destination": "pipeline-scripts/Deploy-ALZMGDiagnosticSettings.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZManagementGroups.ps1", - "destination": "pipeline-scripts/Deploy-ALZManagementGroups.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZPolicyAssignments.ps1", - "destination": "pipeline-scripts/Deploy-ALZPolicyAssignments.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZRoleAssignments.ps1", - "destination": "pipeline-scripts/Deploy-ALZRoleAssignments.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZSubscriptionPlacement.ps1", - "destination": "pipeline-scripts/Deploy-ALZSubscriptionPlacement.ps1" - } - ], - "cicd": { - "azuredevops": [ - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-1.yml", - "destination": ".azuredevops/pipelines/alz-bicep-1.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-2.yml", - "destination": ".azuredevops/pipelines/alz-bicep-2.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-3.yml", - "destination": ".azuredevops/pipelines/alz-bicep-3.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-4a.yml", - "destination": ".azuredevops/pipelines/alz-bicep-4a.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-4b.yml", - "destination": ".azuredevops/pipelines/alz-bicep-4b.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-pr-1.yml", - "destination": ".azuredevops/pipelines/alz-bicep-pr-1.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-pr-2.yml", - "destination": ".azuredevops/pipelines/alz-bicep-pr-2.yml" - } - ], - "github": [ - { - "source": "accelerator/.github/workflows/alz-bicep-1.yml", - "destination": ".github/workflows/alz-bicep-1.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-2.yml", - "destination": ".github/workflows/alz-bicep-2.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-3.yml", - "destination": ".github/workflows/alz-bicep-3.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-4a.yml", - "destination": ".github/workflows/alz-bicep-4a.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-4b.yml", - "destination": ".github/workflows/alz-bicep-4b.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-pr-1.yml", - "destination": ".github/workflows/alz-bicep-pr-1.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-pr-2.yml", - "destination": ".github/workflows/alz-bicep-pr-2.yml" - } - ] - }, - "parameters": { - "Prefix": { - "Type": "UserInput", - "Description": "The prefix that will be added to all resources created by this deployment. (e.g. 'alz')", - "Targets": [ - { - "Name": "parTopLevelManagementGroupPrefix.value", - "Destination": "Parameters" - }, - { - "Name": "parCompanyPrefix.value", - "Destination": "Parameters" - }, - { - "Name": "parTargetManagementGroupId.value", - "Destination": "Parameters" - }, - { - "Name": "parAssignableScopeManagementGroupId.value", - "Destination": "Parameters" - }, - { - "name": "TOP_LEVEL_MG_PREFIX", - "destination": "Environment" - } - ], - "Value": "", - "DefaultValue": "alz", - "Valid": "^[a-zA-Z0-9]{2,10}(-[a-zA-Z0-9]{2,10})?$" - }, - "Location": { - "Type": "UserInput", - "Description": "Deployment location. (e.g. 'uksouth')", - "Value": "", - "Targets": [ - { - "Name": "parLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parAutomationAccountLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parPolicyAssignmentParameters.value.ascExportResourceGroupLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parVirtualWanHubs.value.[0].parHubLocation", - "Destination": "Parameters" - }, - { - "Name": "LOCATION", - "Destination": "Environment" - } - ], - "AllowedValues": { - "Display": false, - "Values": [ - "australiacentral", - "australiacentral2", - "australiaeast", - "australiasoutheast", - "brazilsouth", - "brazilsoutheast", - "canadacentral", - "canadaeast", - "centralindia", - "centralus", - "centraluseuap", - "eastasia", - "eastus", - "eastus2", - "eastus2euap", - "eastusstg", - "francecentral", - "francesouth", - "germanynorth", - "germanywestcentral", - "japaneast", - "japanwest", - "jioindiacentral", - "jioindiawest", - "koreacentral", - "koreasouth", - "northcentralus", - "northeurope", - "norwayeast", - "norwaywest", - "qatarcentral", - "southafricanorth", - "southafricawest", - "southcentralus", - "southeastasia", - "southindia", - "swedencentral", - "switzerlandnorth", - "switzerlandwest", - "uaecentral", - "uaenorth", - "uksouth", - "ukwest", - "westcentralus", - "westeurope", - "westindia", - "westus", - "westus2", - "westus3" - ] - } - }, - "Environment": { - "Type": "UserInput", - "Description": "The Type of environment that will be created. (e.g. 'live', 'canary')", - "Targets": [ - { - "Name": "parEnvironment.value", - "Destination": "Parameters" - }, - { - "Name": "parTags.value.Environment", - "Destination": "Parameters" - } - ], - "Value": "", - "DefaultValue": "live", - "Valid": "^[a-zA-Z0-9]{2,10}$" - }, - "IdentitySubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Identity Subscription. (e.g '00000000-0000-0000-0000-000000000000')", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "IDENTITY_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "ConnectivitySubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Connectivity Subscription. (e.g '00000000-0000-0000-0000-000000000000')", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "CONNECTIVITY_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "ManagementSubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Management Subscription. (e.g 00000000-0000-0000-0000-000000000000)", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "MANAGEMENT_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "SecurityContact": { - "Type": "UserInput", - "Description": "The email address of the contact for security issues. (e.g. security@contactme.com)", - "Valid": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", - "Targets": [ - { - "Name": "parMsDefenderForCloudEmailSecurityContact.value", - "Destination": "Parameters" - } - ], - "Value": "" - }, - "LogAnalyticsWorkspaceLocation": { - "Type": "Computed", - "Value": "{%Location%}", - "Process": "($args[0] -eq \"eastus\") ? \"eastus2\" : ($args[0] -eq \"eastus2\") ? \"eastus\" : $args[0]", - "Targets": [ - { - "Name": "parLogAnalyticsWorkspaceLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parLogAnalyticsWorkSpaceAndAutomationAccountLocation.value", - "Destination": "Parameters" - } - ] - }, - "LogAnalyticsResourceId": { - "Type": "Computed", - "Value": "/subscriptions/{%ManagementSubscriptionId%}/resourcegroups/rg-{%Prefix%}-logging/providers/microsoft.operationalinsights/workspaces/alz-log-analytics", - "Targets": [ - { - "Name": "parLogAnalyticsWorkspaceResourceId.value", - "Destination": "Parameters" - } - ] - }, - "DdosPretectionPlanId": { - "Type": "Computed", - "Value": "/subscriptions/{%ConnectivitySubscriptionId%}/resourceGroups/rg-{%Prefix%}-connectivity/providers/Microsoft.Network/ddosProtectionPlans/alz-ddos-plan", - "Targets": [ - { - "Name": "parDdosProtectionPlanId.value", - "Destination": "Parameters" - } - ] - }, - "PrivateDnsResourceGroupId": { - "Type": "Computed", - "Value": "/subscriptions/{%ConnectivitySubscriptionId%}/resourceGroups/rg-{%Prefix%}-connectivity", - "Targets": [ - { - "Name": "parPrivateDnsResourceGroupId.value", - "Destination": "Parameters" - } - ] - }, - "ManagementSubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%ManagementSubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformManagementMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "ConnectivitySubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%ConnectivitySubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformConnectivityMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "IdentitySubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%IdentitySubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformIdentityMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "HubNetworkName": { - "Type": "Computed", - "Value": "alz-hub-{%Location%}", - "Targets": [ - { - "Name": "parHubNetworkName.value", - "Destination": "Parameters" - } - ] - }, - "VirtualIdToLink": { - "Type": "Computed", - "Value": "", - "Targets": [ - { - "Name": "parVirtualNetworkIdToLink.value", - "Destination": "Parameters" - } - ] - }, - "VirtualWanName": { - "Type": "Computed", - "Value": "alz-vwan-{%Location%}", - "Targets": [ - { - "Name": "parVirtualWanName.value", - "Destination": "Parameters" - } - ] - }, - "AzFirewallName": { - "Type": "Computed", - "Value": "alz-azfw-{%Location%}", - "Targets": [ - { - "Name": "parAzFirewallName.value", - "Destination": "Parameters" - } - ] - }, - "FirewallPoliciesName": { - "Type": "Computed", - "Value": "alz-azfwpolicy-{%Location%}", - "Targets": [ - { - "Name": "parAzFirewallPoliciesName.value", - "Destination": "Parameters" - } - ] - }, - "AK8sPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.azmk8s.io", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[0]", - "Destination": "Parameters" - } - ] - }, - "BatchPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.batch.azure.com", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[1]", - "Destination": "Parameters" - } - ] - }, - "KustoPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.kusto.windows.net", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[2]", - "Destination": "Parameters" - } - ] - }, - "BackupPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.backup.windowsazure.com", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[3]", - "Destination": "Parameters" - } - ] - }, - "UpstreamReleaseVersion": { - "Type": "Computed", - "Value": "v0.15.0", - "Targets": [ - { - "Name": "UPSTREAM_RELEASE_VERSION", - "Destination": "Environment" - } - ] - }, - "ConnectivityResourceGroupName": { - "Type": "Computed", - "Value": "rg-{%Prefix%}-connectivity", - "Targets": [ - { - "Name": "CONNECTIVITY_RESOURCE_GROUP", - "Destination": "Environment" - }, - { - "File": "resourceGroupConnectivity.parameters.all.json", - "Name": "parResourceGroupName.value", - "Destination": "Parameters" - } - ] - }, - "LoggingResourceGroupName": { - "Type": "Computed", - "Value": "rg-{%Prefix%}-logging", - "Targets": [ - { - "Name": "LOGGING_RESOURCE_GROUP", - "Destination": "Environment" - }, - { - "File": "resourceGroupLoggingAndSentinel.parameters.all.json", - "Name": "parResourceGroupName.value", - "Destination": "Parameters" - } - ] - } - } -} diff --git a/src/ALZ/Assets/alz-bicep-config/v0.16.0.config.json b/src/ALZ/Assets/alz-bicep-config/v0.16.0.config.json deleted file mode 100644 index 66aa0df..0000000 --- a/src/ALZ/Assets/alz-bicep-config/v0.16.0.config.json +++ /dev/null @@ -1,556 +0,0 @@ -{ - "version": "v0.16.0", - "module_url": "https://github.com/Azure/ALZ-Bicep", - "config_files": [ - { - "source": "infra-as-code/bicep/modules/policy/definitions/parameters/customPolicyDefinitions.parameters.all.json", - "destination": "config/custom-parameters/customPolicyDefinitions.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/customRoleDefinitions/parameters/customRoleDefinitions.parameters.all.json", - "destination": "config/custom-parameters/customRoleDefinitions.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/hubNetworking/parameters/hubNetworking.parameters.all.json", - "destination": "config/custom-parameters/hubNetworking.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/logging/parameters/logging.parameters.all.json", - "destination": "config/custom-parameters/logging.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/managementGroups/parameters/managementGroups.parameters.all.json", - "destination": "config/custom-parameters/managementGroups.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/orchestration/mgDiagSettingsAll/parameters/mgDiagSettingsAll.parameters.all.json", - "destination": "config/custom-parameters/mgDiagSettingsAll.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/policy/assignments/alzDefaults/parameters/alzDefaultPolicyAssignments.parameters.all.json", - "destination": "config/custom-parameters/alzDefaultPolicyAssignments.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/resourceGroup/parameters/resourceGroup.parameters.all.json", - "destination": "config/custom-parameters/resourceGroupConnectivity.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/resourceGroup/parameters/resourceGroup.parameters.all.json", - "destination": "config/custom-parameters/resourceGroupLoggingAndSentinel.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/roleAssignments/parameters/roleAssignmentManagementGroupMany.servicePrincipal.parameters.all.json", - "destination": "config/custom-parameters/roleAssignmentManagementGroupMany.servicePrincipal.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/orchestration/subPlacementAll/parameters/subPlacementAll.parameters.all.json", - "destination": "config/custom-parameters/subPlacementAll.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/vwanConnectivity/parameters/vwanConnectivity.parameters.all.json", - "destination": "config/custom-parameters/vwanConnectivity.parameters.all.json" - }, - { - "source": "accelerator/README.md", - "destination": "README.md" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZConnectivityResourceGroup.ps1", - "destination": "pipeline-scripts/Deploy-ALZConnectivityResourceGroup.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZCustomPolicyDefinitions.ps1", - "destination": "pipeline-scripts/Deploy-ALZCustomPolicyDefinitions.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZCustomRoleDefinitions.ps1", - "destination": "pipeline-scripts/Deploy-ALZCustomRoleDefinitions.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZHub-HubAndSpoke.ps1", - "destination": "pipeline-scripts/Deploy-ALZHub-HubAndSpoke.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZHub-VWAN.ps1", - "destination": "pipeline-scripts/Deploy-ALZHub-VWAN.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZLoggingAndSentinel.ps1", - "destination": "pipeline-scripts/Deploy-ALZLoggingAndSentinel.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZLoggingAndSentinelResourceGroup.ps1", - "destination": "pipeline-scripts/Deploy-ALZLoggingAndSentinelResourceGroup.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZMGDiagnosticSettings.ps1", - "destination": "pipeline-scripts/Deploy-ALZMGDiagnosticSettings.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZManagementGroups.ps1", - "destination": "pipeline-scripts/Deploy-ALZManagementGroups.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZPolicyAssignments.ps1", - "destination": "pipeline-scripts/Deploy-ALZPolicyAssignments.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZRoleAssignments.ps1", - "destination": "pipeline-scripts/Deploy-ALZRoleAssignments.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZSubscriptionPlacement.ps1", - "destination": "pipeline-scripts/Deploy-ALZSubscriptionPlacement.ps1" - } - ], - "cicd": { - "azuredevops": [ - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-1-core.yml", - "destination": ".azuredevops/pipelines/alz-bicep-1-core.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-2-policyassignments.yml", - "destination": ".azuredevops/pipelines/alz-bicep-2-policyassignments.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-3-subplacement.yml", - "destination": ".azuredevops/pipelines/alz-bicep-3-subplacement.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-4a-hubspoke.yml", - "destination": ".azuredevops/pipelines/alz-bicep-4a-hubspoke.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-4b-vwan.yml", - "destination": ".azuredevops/pipelines/alz-bicep-4b-vwan.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-pr1-build.yml", - "destination": ".azuredevops/pipelines/alz-bicep-pr1-build.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-pr2-lint.yml", - "destination": ".azuredevops/pipelines/alz-bicep-pr2-lint.yml" - } - ], - "github": [ - { - "source": "accelerator/.github/workflows/alz-bicep-1-core.yml", - "destination": ".github/workflows/alz-bicep-1-core.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-2-policyassignments.yml", - "destination": ".github/workflows/alz-bicep-2-policyassignments.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-3-subplacement.yml", - "destination": ".github/workflows/alz-bicep-3-subplacement.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-4a-hubspoke.yml", - "destination": ".github/workflows/alz-bicep-4a-hubspoke.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-4b-vwan.yml", - "destination": ".github/workflows/alz-bicep-4b-vwan.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-pr1-build.yml", - "destination": ".github/workflows/alz-bicep-pr1-build.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-pr2-lint.yml", - "destination": ".github/workflows/alz-bicep-pr2-lint.yml" - } - ] - }, - "parameters": { - "Prefix": { - "Type": "UserInput", - "Description": "The prefix that will be added to all resources created by this deployment. (e.g. 'alz')", - "Targets": [ - { - "Name": "parTopLevelManagementGroupPrefix.value", - "Destination": "Parameters" - }, - { - "Name": "parCompanyPrefix.value", - "Destination": "Parameters" - }, - { - "Name": "parTargetManagementGroupId.value", - "Destination": "Parameters" - }, - { - "Name": "parAssignableScopeManagementGroupId.value", - "Destination": "Parameters" - }, - { - "name": "TOP_LEVEL_MG_PREFIX", - "destination": "Environment" - } - ], - "Value": "", - "DefaultValue": "alz", - "Valid": "^[a-zA-Z0-9]{2,10}(-[a-zA-Z0-9]{2,10})?$" - }, - "Location": { - "Type": "UserInput", - "Description": "Deployment location. (e.g. 'uksouth')", - "Value": "", - "Targets": [ - { - "Name": "parLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parAutomationAccountLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parPolicyAssignmentParameters.value.ascExportResourceGroupLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parVirtualWanHubs.value.[0].parHubLocation", - "Destination": "Parameters" - }, - { - "Name": "LOCATION", - "Destination": "Environment" - } - ], - "AllowedValues": { - "Display": false, - "Values": [ - "australiacentral", - "australiacentral2", - "australiaeast", - "australiasoutheast", - "brazilsouth", - "brazilsoutheast", - "canadacentral", - "canadaeast", - "centralindia", - "centralus", - "centraluseuap", - "eastasia", - "eastus", - "eastus2", - "eastus2euap", - "eastusstg", - "francecentral", - "francesouth", - "germanynorth", - "germanywestcentral", - "japaneast", - "japanwest", - "jioindiacentral", - "jioindiawest", - "koreacentral", - "koreasouth", - "northcentralus", - "northeurope", - "norwayeast", - "norwaywest", - "qatarcentral", - "southafricanorth", - "southafricawest", - "southcentralus", - "southeastasia", - "southindia", - "swedencentral", - "switzerlandnorth", - "switzerlandwest", - "uaecentral", - "uaenorth", - "uksouth", - "ukwest", - "westcentralus", - "westeurope", - "westindia", - "westus", - "westus2", - "westus3" - ] - } - }, - "Environment": { - "Type": "UserInput", - "Description": "The Type of environment that will be created. (e.g. 'live', 'canary')", - "Targets": [ - { - "Name": "parEnvironment.value", - "Destination": "Parameters" - }, - { - "Name": "parTags.value.Environment", - "Destination": "Parameters" - } - ], - "Value": "", - "DefaultValue": "live", - "Valid": "^[a-zA-Z0-9]{2,10}$" - }, - "IdentitySubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Identity Subscription. (e.g '00000000-0000-0000-0000-000000000000')", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "IDENTITY_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "ConnectivitySubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Connectivity Subscription. (e.g '00000000-0000-0000-0000-000000000000')", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "CONNECTIVITY_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "ManagementSubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Management Subscription. (e.g 00000000-0000-0000-0000-000000000000)", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "MANAGEMENT_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "SecurityContact": { - "Type": "UserInput", - "Description": "The email address of the contact for security issues. (e.g. security@contactme.com)", - "Valid": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", - "Targets": [ - { - "Name": "parMsDefenderForCloudEmailSecurityContact.value", - "Destination": "Parameters" - } - ], - "Value": "" - }, - "LogAnalyticsWorkspaceLocation": { - "Type": "Computed", - "Value": "{%Location%}", - "Process": "($args[0] -eq \"eastus\") ? \"eastus2\" : ($args[0] -eq \"eastus2\") ? \"eastus\" : $args[0]", - "Targets": [ - { - "Name": "parLogAnalyticsWorkspaceLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parLogAnalyticsWorkSpaceAndAutomationAccountLocation.value", - "Destination": "Parameters" - } - ] - }, - "LogAnalyticsResourceId": { - "Type": "Computed", - "Value": "/subscriptions/{%ManagementSubscriptionId%}/resourcegroups/rg-{%Prefix%}-logging/providers/microsoft.operationalinsights/workspaces/alz-log-analytics", - "Targets": [ - { - "Name": "parLogAnalyticsWorkspaceResourceId.value", - "Destination": "Parameters" - } - ] - }, - "DdosPretectionPlanId": { - "Type": "Computed", - "Value": "/subscriptions/{%ConnectivitySubscriptionId%}/resourceGroups/rg-{%Prefix%}-connectivity/providers/Microsoft.Network/ddosProtectionPlans/alz-ddos-plan", - "Targets": [ - { - "Name": "parDdosProtectionPlanId.value", - "Destination": "Parameters" - } - ] - }, - "PrivateDnsResourceGroupId": { - "Type": "Computed", - "Value": "/subscriptions/{%ConnectivitySubscriptionId%}/resourceGroups/rg-{%Prefix%}-connectivity", - "Targets": [ - { - "Name": "parPrivateDnsResourceGroupId.value", - "Destination": "Parameters" - } - ] - }, - "ManagementSubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%ManagementSubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformManagementMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "ConnectivitySubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%ConnectivitySubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformConnectivityMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "IdentitySubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%IdentitySubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformIdentityMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "HubNetworkName": { - "Type": "Computed", - "Value": "alz-hub-{%Location%}", - "Targets": [ - { - "Name": "parHubNetworkName.value", - "Destination": "Parameters" - } - ] - }, - "VirtualIdToLink": { - "Type": "Computed", - "Value": "", - "Targets": [ - { - "Name": "parVirtualNetworkIdToLink.value", - "Destination": "Parameters" - } - ] - }, - "VirtualWanName": { - "Type": "Computed", - "Value": "alz-vwan-{%Location%}", - "Targets": [ - { - "Name": "parVirtualWanName.value", - "Destination": "Parameters" - } - ] - }, - "AzFirewallName": { - "Type": "Computed", - "Value": "alz-azfw-{%Location%}", - "Targets": [ - { - "Name": "parAzFirewallName.value", - "Destination": "Parameters" - } - ] - }, - "FirewallPoliciesName": { - "Type": "Computed", - "Value": "alz-azfwpolicy-{%Location%}", - "Targets": [ - { - "Name": "parAzFirewallPoliciesName.value", - "Destination": "Parameters" - } - ] - }, - "AK8sPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.azmk8s.io", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[0]", - "Destination": "Parameters" - } - ] - }, - "BatchPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.batch.azure.com", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[1]", - "Destination": "Parameters" - } - ] - }, - "KustoPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.kusto.windows.net", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[2]", - "Destination": "Parameters" - } - ] - }, - "BackupPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.backup.windowsazure.com", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[3]", - "Destination": "Parameters" - } - ] - }, - "UpstreamReleaseVersion": { - "Type": "Computed", - "Value": "v0.16.0", - "Targets": [ - { - "Name": "UPSTREAM_RELEASE_VERSION", - "Destination": "Environment" - } - ] - }, - "ConnectivityResourceGroupName": { - "Type": "Computed", - "Value": "rg-{%Prefix%}-connectivity", - "Targets": [ - { - "Name": "CONNECTIVITY_RESOURCE_GROUP", - "Destination": "Environment" - }, - { - "File": "resourceGroupConnectivity.parameters.all.json", - "Name": "parResourceGroupName.value", - "Destination": "Parameters" - } - ] - }, - "LoggingResourceGroupName": { - "Type": "Computed", - "Value": "rg-{%Prefix%}-logging", - "Targets": [ - { - "Name": "LOGGING_RESOURCE_GROUP", - "Destination": "Environment" - }, - { - "File": "resourceGroupLoggingAndSentinel.parameters.all.json", - "Name": "parResourceGroupName.value", - "Destination": "Parameters" - } - ] - } - } -} \ No newline at end of file diff --git a/src/ALZ/Assets/alz-bicep-config/v0.16.1.config.json b/src/ALZ/Assets/alz-bicep-config/v0.16.1.config.json deleted file mode 100644 index 001fa20..0000000 --- a/src/ALZ/Assets/alz-bicep-config/v0.16.1.config.json +++ /dev/null @@ -1,556 +0,0 @@ -{ - "version": "v0.16.1", - "module_url": "https://github.com/Azure/ALZ-Bicep", - "config_files": [ - { - "source": "infra-as-code/bicep/modules/policy/definitions/parameters/customPolicyDefinitions.parameters.all.json", - "destination": "config/custom-parameters/customPolicyDefinitions.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/customRoleDefinitions/parameters/customRoleDefinitions.parameters.all.json", - "destination": "config/custom-parameters/customRoleDefinitions.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/hubNetworking/parameters/hubNetworking.parameters.all.json", - "destination": "config/custom-parameters/hubNetworking.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/logging/parameters/logging.parameters.all.json", - "destination": "config/custom-parameters/logging.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/managementGroups/parameters/managementGroups.parameters.all.json", - "destination": "config/custom-parameters/managementGroups.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/orchestration/mgDiagSettingsAll/parameters/mgDiagSettingsAll.parameters.all.json", - "destination": "config/custom-parameters/mgDiagSettingsAll.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/policy/assignments/alzDefaults/parameters/alzDefaultPolicyAssignments.parameters.all.json", - "destination": "config/custom-parameters/alzDefaultPolicyAssignments.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/resourceGroup/parameters/resourceGroup.parameters.all.json", - "destination": "config/custom-parameters/resourceGroupConnectivity.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/resourceGroup/parameters/resourceGroup.parameters.all.json", - "destination": "config/custom-parameters/resourceGroupLoggingAndSentinel.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/roleAssignments/parameters/roleAssignmentManagementGroupMany.servicePrincipal.parameters.all.json", - "destination": "config/custom-parameters/roleAssignmentManagementGroupMany.servicePrincipal.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/orchestration/subPlacementAll/parameters/subPlacementAll.parameters.all.json", - "destination": "config/custom-parameters/subPlacementAll.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/vwanConnectivity/parameters/vwanConnectivity.parameters.all.json", - "destination": "config/custom-parameters/vwanConnectivity.parameters.all.json" - }, - { - "source": "accelerator/README.md", - "destination": "README.md" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZConnectivityResourceGroup.ps1", - "destination": "pipeline-scripts/Deploy-ALZConnectivityResourceGroup.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZCustomPolicyDefinitions.ps1", - "destination": "pipeline-scripts/Deploy-ALZCustomPolicyDefinitions.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZCustomRoleDefinitions.ps1", - "destination": "pipeline-scripts/Deploy-ALZCustomRoleDefinitions.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZHub-HubAndSpoke.ps1", - "destination": "pipeline-scripts/Deploy-ALZHub-HubAndSpoke.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZHub-VWAN.ps1", - "destination": "pipeline-scripts/Deploy-ALZHub-VWAN.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZLoggingAndSentinel.ps1", - "destination": "pipeline-scripts/Deploy-ALZLoggingAndSentinel.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZLoggingAndSentinelResourceGroup.ps1", - "destination": "pipeline-scripts/Deploy-ALZLoggingAndSentinelResourceGroup.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZMGDiagnosticSettings.ps1", - "destination": "pipeline-scripts/Deploy-ALZMGDiagnosticSettings.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZManagementGroups.ps1", - "destination": "pipeline-scripts/Deploy-ALZManagementGroups.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZPolicyAssignments.ps1", - "destination": "pipeline-scripts/Deploy-ALZPolicyAssignments.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZRoleAssignments.ps1", - "destination": "pipeline-scripts/Deploy-ALZRoleAssignments.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZSubscriptionPlacement.ps1", - "destination": "pipeline-scripts/Deploy-ALZSubscriptionPlacement.ps1" - } - ], - "cicd": { - "azuredevops": [ - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-1-core.yml", - "destination": ".azuredevops/pipelines/alz-bicep-1-core.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-2-policyassignments.yml", - "destination": ".azuredevops/pipelines/alz-bicep-2-policyassignments.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-3-subplacement.yml", - "destination": ".azuredevops/pipelines/alz-bicep-3-subplacement.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-4a-hubspoke.yml", - "destination": ".azuredevops/pipelines/alz-bicep-4a-hubspoke.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-4b-vwan.yml", - "destination": ".azuredevops/pipelines/alz-bicep-4b-vwan.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-pr1-build.yml", - "destination": ".azuredevops/pipelines/alz-bicep-pr1-build.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-pr2-lint.yml", - "destination": ".azuredevops/pipelines/alz-bicep-pr2-lint.yml" - } - ], - "github": [ - { - "source": "accelerator/.github/workflows/alz-bicep-1-core.yml", - "destination": ".github/workflows/alz-bicep-1-core.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-2-policyassignments.yml", - "destination": ".github/workflows/alz-bicep-2-policyassignments.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-3-subplacement.yml", - "destination": ".github/workflows/alz-bicep-3-subplacement.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-4a-hubspoke.yml", - "destination": ".github/workflows/alz-bicep-4a-hubspoke.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-4b-vwan.yml", - "destination": ".github/workflows/alz-bicep-4b-vwan.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-pr1-build.yml", - "destination": ".github/workflows/alz-bicep-pr1-build.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-pr2-lint.yml", - "destination": ".github/workflows/alz-bicep-pr2-lint.yml" - } - ] - }, - "parameters": { - "Prefix": { - "Type": "UserInput", - "Description": "The prefix that will be added to all resources created by this deployment. (e.g. 'alz')", - "Targets": [ - { - "Name": "parTopLevelManagementGroupPrefix.value", - "Destination": "Parameters" - }, - { - "Name": "parCompanyPrefix.value", - "Destination": "Parameters" - }, - { - "Name": "parTargetManagementGroupId.value", - "Destination": "Parameters" - }, - { - "Name": "parAssignableScopeManagementGroupId.value", - "Destination": "Parameters" - }, - { - "name": "TOP_LEVEL_MG_PREFIX", - "destination": "Environment" - } - ], - "Value": "", - "DefaultValue": "alz", - "Valid": "^[a-zA-Z0-9]{2,10}(-[a-zA-Z0-9]{2,10})?$" - }, - "Location": { - "Type": "UserInput", - "Description": "Deployment location. (e.g. 'uksouth')", - "Value": "", - "Targets": [ - { - "Name": "parLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parAutomationAccountLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parPolicyAssignmentParameters.value.ascExportResourceGroupLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parVirtualWanHubs.value.[0].parHubLocation", - "Destination": "Parameters" - }, - { - "Name": "LOCATION", - "Destination": "Environment" - } - ], - "AllowedValues": { - "Display": false, - "Values": [ - "australiacentral", - "australiacentral2", - "australiaeast", - "australiasoutheast", - "brazilsouth", - "brazilsoutheast", - "canadacentral", - "canadaeast", - "centralindia", - "centralus", - "centraluseuap", - "eastasia", - "eastus", - "eastus2", - "eastus2euap", - "eastusstg", - "francecentral", - "francesouth", - "germanynorth", - "germanywestcentral", - "japaneast", - "japanwest", - "jioindiacentral", - "jioindiawest", - "koreacentral", - "koreasouth", - "northcentralus", - "northeurope", - "norwayeast", - "norwaywest", - "qatarcentral", - "southafricanorth", - "southafricawest", - "southcentralus", - "southeastasia", - "southindia", - "swedencentral", - "switzerlandnorth", - "switzerlandwest", - "uaecentral", - "uaenorth", - "uksouth", - "ukwest", - "westcentralus", - "westeurope", - "westindia", - "westus", - "westus2", - "westus3" - ] - } - }, - "Environment": { - "Type": "UserInput", - "Description": "The Type of environment that will be created. (e.g. 'live', 'canary')", - "Targets": [ - { - "Name": "parEnvironment.value", - "Destination": "Parameters" - }, - { - "Name": "parTags.value.Environment", - "Destination": "Parameters" - } - ], - "Value": "", - "DefaultValue": "live", - "Valid": "^[a-zA-Z0-9]{2,10}$" - }, - "IdentitySubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Identity Subscription. (e.g '00000000-0000-0000-0000-000000000000')", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "IDENTITY_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "ConnectivitySubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Connectivity Subscription. (e.g '00000000-0000-0000-0000-000000000000')", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "CONNECTIVITY_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "ManagementSubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Management Subscription. (e.g 00000000-0000-0000-0000-000000000000)", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "MANAGEMENT_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "SecurityContact": { - "Type": "UserInput", - "Description": "The email address of the contact for security issues. (e.g. security@contactme.com)", - "Valid": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", - "Targets": [ - { - "Name": "parMsDefenderForCloudEmailSecurityContact.value", - "Destination": "Parameters" - } - ], - "Value": "" - }, - "LogAnalyticsWorkspaceLocation": { - "Type": "Computed", - "Value": "{%Location%}", - "Process": "($args[0] -eq \"eastus\") ? \"eastus2\" : ($args[0] -eq \"eastus2\") ? \"eastus\" : $args[0]", - "Targets": [ - { - "Name": "parLogAnalyticsWorkspaceLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parLogAnalyticsWorkSpaceAndAutomationAccountLocation.value", - "Destination": "Parameters" - } - ] - }, - "LogAnalyticsResourceId": { - "Type": "Computed", - "Value": "/subscriptions/{%ManagementSubscriptionId%}/resourcegroups/rg-{%Prefix%}-logging/providers/microsoft.operationalinsights/workspaces/alz-log-analytics", - "Targets": [ - { - "Name": "parLogAnalyticsWorkspaceResourceId.value", - "Destination": "Parameters" - } - ] - }, - "DdosPretectionPlanId": { - "Type": "Computed", - "Value": "/subscriptions/{%ConnectivitySubscriptionId%}/resourceGroups/rg-{%Prefix%}-connectivity/providers/Microsoft.Network/ddosProtectionPlans/alz-ddos-plan", - "Targets": [ - { - "Name": "parDdosProtectionPlanId.value", - "Destination": "Parameters" - } - ] - }, - "PrivateDnsResourceGroupId": { - "Type": "Computed", - "Value": "/subscriptions/{%ConnectivitySubscriptionId%}/resourceGroups/rg-{%Prefix%}-connectivity", - "Targets": [ - { - "Name": "parPrivateDnsResourceGroupId.value", - "Destination": "Parameters" - } - ] - }, - "ManagementSubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%ManagementSubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformManagementMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "ConnectivitySubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%ConnectivitySubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformConnectivityMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "IdentitySubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%IdentitySubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformIdentityMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "HubNetworkName": { - "Type": "Computed", - "Value": "alz-hub-{%Location%}", - "Targets": [ - { - "Name": "parHubNetworkName.value", - "Destination": "Parameters" - } - ] - }, - "VirtualIdToLink": { - "Type": "Computed", - "Value": "", - "Targets": [ - { - "Name": "parVirtualNetworkIdToLink.value", - "Destination": "Parameters" - } - ] - }, - "VirtualWanName": { - "Type": "Computed", - "Value": "alz-vwan-{%Location%}", - "Targets": [ - { - "Name": "parVirtualWanName.value", - "Destination": "Parameters" - } - ] - }, - "AzFirewallName": { - "Type": "Computed", - "Value": "alz-azfw-{%Location%}", - "Targets": [ - { - "Name": "parAzFirewallName.value", - "Destination": "Parameters" - } - ] - }, - "FirewallPoliciesName": { - "Type": "Computed", - "Value": "alz-azfwpolicy-{%Location%}", - "Targets": [ - { - "Name": "parAzFirewallPoliciesName.value", - "Destination": "Parameters" - } - ] - }, - "AK8sPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.azmk8s.io", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[0]", - "Destination": "Parameters" - } - ] - }, - "BatchPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.batch.azure.com", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[1]", - "Destination": "Parameters" - } - ] - }, - "KustoPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.kusto.windows.net", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[2]", - "Destination": "Parameters" - } - ] - }, - "BackupPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.backup.windowsazure.com", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[3]", - "Destination": "Parameters" - } - ] - }, - "UpstreamReleaseVersion": { - "Type": "Computed", - "Value": "v0.16.1", - "Targets": [ - { - "Name": "UPSTREAM_RELEASE_VERSION", - "Destination": "Environment" - } - ] - }, - "ConnectivityResourceGroupName": { - "Type": "Computed", - "Value": "rg-{%Prefix%}-connectivity", - "Targets": [ - { - "Name": "CONNECTIVITY_RESOURCE_GROUP", - "Destination": "Environment" - }, - { - "File": "resourceGroupConnectivity.parameters.all.json", - "Name": "parResourceGroupName.value", - "Destination": "Parameters" - } - ] - }, - "LoggingResourceGroupName": { - "Type": "Computed", - "Value": "rg-{%Prefix%}-logging", - "Targets": [ - { - "Name": "LOGGING_RESOURCE_GROUP", - "Destination": "Environment" - }, - { - "File": "resourceGroupLoggingAndSentinel.parameters.all.json", - "Name": "parResourceGroupName.value", - "Destination": "Parameters" - } - ] - } - } -} \ No newline at end of file diff --git a/src/ALZ/Assets/alz-bicep-config/v0.16.2.config.json b/src/ALZ/Assets/alz-bicep-config/v0.16.2.config.json deleted file mode 100644 index 565130c..0000000 --- a/src/ALZ/Assets/alz-bicep-config/v0.16.2.config.json +++ /dev/null @@ -1,556 +0,0 @@ -{ - "version": "v0.16.2", - "module_url": "https://github.com/Azure/ALZ-Bicep", - "config_files": [ - { - "source": "infra-as-code/bicep/modules/policy/definitions/parameters/customPolicyDefinitions.parameters.all.json", - "destination": "config/custom-parameters/customPolicyDefinitions.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/customRoleDefinitions/parameters/customRoleDefinitions.parameters.all.json", - "destination": "config/custom-parameters/customRoleDefinitions.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/hubNetworking/parameters/hubNetworking.parameters.all.json", - "destination": "config/custom-parameters/hubNetworking.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/logging/parameters/logging.parameters.all.json", - "destination": "config/custom-parameters/logging.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/managementGroups/parameters/managementGroups.parameters.all.json", - "destination": "config/custom-parameters/managementGroups.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/orchestration/mgDiagSettingsAll/parameters/mgDiagSettingsAll.parameters.all.json", - "destination": "config/custom-parameters/mgDiagSettingsAll.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/policy/assignments/alzDefaults/parameters/alzDefaultPolicyAssignments.parameters.all.json", - "destination": "config/custom-parameters/alzDefaultPolicyAssignments.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/resourceGroup/parameters/resourceGroup.parameters.all.json", - "destination": "config/custom-parameters/resourceGroupConnectivity.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/resourceGroup/parameters/resourceGroup.parameters.all.json", - "destination": "config/custom-parameters/resourceGroupLoggingAndSentinel.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/roleAssignments/parameters/roleAssignmentManagementGroupMany.servicePrincipal.parameters.all.json", - "destination": "config/custom-parameters/roleAssignmentManagementGroupMany.servicePrincipal.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/orchestration/subPlacementAll/parameters/subPlacementAll.parameters.all.json", - "destination": "config/custom-parameters/subPlacementAll.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/vwanConnectivity/parameters/vwanConnectivity.parameters.all.json", - "destination": "config/custom-parameters/vwanConnectivity.parameters.all.json" - }, - { - "source": "accelerator/README.md", - "destination": "README.md" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZConnectivityResourceGroup.ps1", - "destination": "pipeline-scripts/Deploy-ALZConnectivityResourceGroup.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZCustomPolicyDefinitions.ps1", - "destination": "pipeline-scripts/Deploy-ALZCustomPolicyDefinitions.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZCustomRoleDefinitions.ps1", - "destination": "pipeline-scripts/Deploy-ALZCustomRoleDefinitions.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZHub-HubAndSpoke.ps1", - "destination": "pipeline-scripts/Deploy-ALZHub-HubAndSpoke.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZHub-VWAN.ps1", - "destination": "pipeline-scripts/Deploy-ALZHub-VWAN.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZLoggingAndSentinel.ps1", - "destination": "pipeline-scripts/Deploy-ALZLoggingAndSentinel.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZLoggingAndSentinelResourceGroup.ps1", - "destination": "pipeline-scripts/Deploy-ALZLoggingAndSentinelResourceGroup.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZMGDiagnosticSettings.ps1", - "destination": "pipeline-scripts/Deploy-ALZMGDiagnosticSettings.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZManagementGroups.ps1", - "destination": "pipeline-scripts/Deploy-ALZManagementGroups.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZPolicyAssignments.ps1", - "destination": "pipeline-scripts/Deploy-ALZPolicyAssignments.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZRoleAssignments.ps1", - "destination": "pipeline-scripts/Deploy-ALZRoleAssignments.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZSubscriptionPlacement.ps1", - "destination": "pipeline-scripts/Deploy-ALZSubscriptionPlacement.ps1" - } - ], - "cicd": { - "azuredevops": [ - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-1-core.yml", - "destination": ".azuredevops/pipelines/alz-bicep-1-core.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-2-policyassignments.yml", - "destination": ".azuredevops/pipelines/alz-bicep-2-policyassignments.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-3-subplacement.yml", - "destination": ".azuredevops/pipelines/alz-bicep-3-subplacement.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-4a-hubspoke.yml", - "destination": ".azuredevops/pipelines/alz-bicep-4a-hubspoke.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-4b-vwan.yml", - "destination": ".azuredevops/pipelines/alz-bicep-4b-vwan.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-pr1-build.yml", - "destination": ".azuredevops/pipelines/alz-bicep-pr1-build.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-pr2-lint.yml", - "destination": ".azuredevops/pipelines/alz-bicep-pr2-lint.yml" - } - ], - "github": [ - { - "source": "accelerator/.github/workflows/alz-bicep-1-core.yml", - "destination": ".github/workflows/alz-bicep-1-core.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-2-policyassignments.yml", - "destination": ".github/workflows/alz-bicep-2-policyassignments.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-3-subplacement.yml", - "destination": ".github/workflows/alz-bicep-3-subplacement.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-4a-hubspoke.yml", - "destination": ".github/workflows/alz-bicep-4a-hubspoke.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-4b-vwan.yml", - "destination": ".github/workflows/alz-bicep-4b-vwan.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-pr1-build.yml", - "destination": ".github/workflows/alz-bicep-pr1-build.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-pr2-lint.yml", - "destination": ".github/workflows/alz-bicep-pr2-lint.yml" - } - ] - }, - "parameters": { - "Prefix": { - "Type": "UserInput", - "Description": "The prefix that will be added to all resources created by this deployment. (e.g. 'alz')", - "Targets": [ - { - "Name": "parTopLevelManagementGroupPrefix.value", - "Destination": "Parameters" - }, - { - "Name": "parCompanyPrefix.value", - "Destination": "Parameters" - }, - { - "Name": "parTargetManagementGroupId.value", - "Destination": "Parameters" - }, - { - "Name": "parAssignableScopeManagementGroupId.value", - "Destination": "Parameters" - }, - { - "name": "TOP_LEVEL_MG_PREFIX", - "destination": "Environment" - } - ], - "Value": "", - "DefaultValue": "alz", - "Valid": "^[a-zA-Z0-9]{2,10}(-[a-zA-Z0-9]{2,10})?$" - }, - "Location": { - "Type": "UserInput", - "Description": "Deployment location. (e.g. 'uksouth')", - "Value": "", - "Targets": [ - { - "Name": "parLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parAutomationAccountLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parPolicyAssignmentParameters.value.ascExportResourceGroupLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parVirtualWanHubs.value.[0].parHubLocation", - "Destination": "Parameters" - }, - { - "Name": "LOCATION", - "Destination": "Environment" - } - ], - "AllowedValues": { - "Display": false, - "Values": [ - "australiacentral", - "australiacentral2", - "australiaeast", - "australiasoutheast", - "brazilsouth", - "brazilsoutheast", - "canadacentral", - "canadaeast", - "centralindia", - "centralus", - "centraluseuap", - "eastasia", - "eastus", - "eastus2", - "eastus2euap", - "eastusstg", - "francecentral", - "francesouth", - "germanynorth", - "germanywestcentral", - "japaneast", - "japanwest", - "jioindiacentral", - "jioindiawest", - "koreacentral", - "koreasouth", - "northcentralus", - "northeurope", - "norwayeast", - "norwaywest", - "qatarcentral", - "southafricanorth", - "southafricawest", - "southcentralus", - "southeastasia", - "southindia", - "swedencentral", - "switzerlandnorth", - "switzerlandwest", - "uaecentral", - "uaenorth", - "uksouth", - "ukwest", - "westcentralus", - "westeurope", - "westindia", - "westus", - "westus2", - "westus3" - ] - } - }, - "Environment": { - "Type": "UserInput", - "Description": "The Type of environment that will be created. (e.g. 'live', 'canary')", - "Targets": [ - { - "Name": "parEnvironment.value", - "Destination": "Parameters" - }, - { - "Name": "parTags.value.Environment", - "Destination": "Parameters" - } - ], - "Value": "", - "DefaultValue": "live", - "Valid": "^[a-zA-Z0-9]{2,10}$" - }, - "IdentitySubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Identity Subscription. (e.g '00000000-0000-0000-0000-000000000000')", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "IDENTITY_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "ConnectivitySubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Connectivity Subscription. (e.g '00000000-0000-0000-0000-000000000000')", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "CONNECTIVITY_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "ManagementSubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Management Subscription. (e.g 00000000-0000-0000-0000-000000000000)", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "MANAGEMENT_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "SecurityContact": { - "Type": "UserInput", - "Description": "The email address of the contact for security issues. (e.g. security@contactme.com)", - "Valid": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", - "Targets": [ - { - "Name": "parMsDefenderForCloudEmailSecurityContact.value", - "Destination": "Parameters" - } - ], - "Value": "" - }, - "LogAnalyticsWorkspaceLocation": { - "Type": "Computed", - "Value": "{%Location%}", - "Process": "($args[0] -eq \"eastus\") ? \"eastus2\" : ($args[0] -eq \"eastus2\") ? \"eastus\" : $args[0]", - "Targets": [ - { - "Name": "parLogAnalyticsWorkspaceLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parLogAnalyticsWorkSpaceAndAutomationAccountLocation.value", - "Destination": "Parameters" - } - ] - }, - "LogAnalyticsResourceId": { - "Type": "Computed", - "Value": "/subscriptions/{%ManagementSubscriptionId%}/resourcegroups/rg-{%Prefix%}-logging/providers/microsoft.operationalinsights/workspaces/alz-log-analytics", - "Targets": [ - { - "Name": "parLogAnalyticsWorkspaceResourceId.value", - "Destination": "Parameters" - } - ] - }, - "DdosPretectionPlanId": { - "Type": "Computed", - "Value": "/subscriptions/{%ConnectivitySubscriptionId%}/resourceGroups/rg-{%Prefix%}-connectivity/providers/Microsoft.Network/ddosProtectionPlans/alz-ddos-plan", - "Targets": [ - { - "Name": "parDdosProtectionPlanId.value", - "Destination": "Parameters" - } - ] - }, - "PrivateDnsResourceGroupId": { - "Type": "Computed", - "Value": "/subscriptions/{%ConnectivitySubscriptionId%}/resourceGroups/rg-{%Prefix%}-connectivity", - "Targets": [ - { - "Name": "parPrivateDnsResourceGroupId.value", - "Destination": "Parameters" - } - ] - }, - "ManagementSubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%ManagementSubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformManagementMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "ConnectivitySubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%ConnectivitySubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformConnectivityMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "IdentitySubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%IdentitySubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformIdentityMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "HubNetworkName": { - "Type": "Computed", - "Value": "alz-hub-{%Location%}", - "Targets": [ - { - "Name": "parHubNetworkName.value", - "Destination": "Parameters" - } - ] - }, - "VirtualIdToLink": { - "Type": "Computed", - "Value": "", - "Targets": [ - { - "Name": "parVirtualNetworkIdToLink.value", - "Destination": "Parameters" - } - ] - }, - "VirtualWanName": { - "Type": "Computed", - "Value": "alz-vwan-{%Location%}", - "Targets": [ - { - "Name": "parVirtualWanName.value", - "Destination": "Parameters" - } - ] - }, - "AzFirewallName": { - "Type": "Computed", - "Value": "alz-azfw-{%Location%}", - "Targets": [ - { - "Name": "parAzFirewallName.value", - "Destination": "Parameters" - } - ] - }, - "FirewallPoliciesName": { - "Type": "Computed", - "Value": "alz-azfwpolicy-{%Location%}", - "Targets": [ - { - "Name": "parAzFirewallPoliciesName.value", - "Destination": "Parameters" - } - ] - }, - "AK8sPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.azmk8s.io", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[0]", - "Destination": "Parameters" - } - ] - }, - "BatchPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.batch.azure.com", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[1]", - "Destination": "Parameters" - } - ] - }, - "KustoPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.kusto.windows.net", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[2]", - "Destination": "Parameters" - } - ] - }, - "BackupPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.backup.windowsazure.com", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[3]", - "Destination": "Parameters" - } - ] - }, - "UpstreamReleaseVersion": { - "Type": "Computed", - "Value": "v0.16.2", - "Targets": [ - { - "Name": "UPSTREAM_RELEASE_VERSION", - "Destination": "Environment" - } - ] - }, - "ConnectivityResourceGroupName": { - "Type": "Computed", - "Value": "rg-{%Prefix%}-connectivity", - "Targets": [ - { - "Name": "CONNECTIVITY_RESOURCE_GROUP", - "Destination": "Environment" - }, - { - "File": "resourceGroupConnectivity.parameters.all.json", - "Name": "parResourceGroupName.value", - "Destination": "Parameters" - } - ] - }, - "LoggingResourceGroupName": { - "Type": "Computed", - "Value": "rg-{%Prefix%}-logging", - "Targets": [ - { - "Name": "LOGGING_RESOURCE_GROUP", - "Destination": "Environment" - }, - { - "File": "resourceGroupLoggingAndSentinel.parameters.all.json", - "Name": "parResourceGroupName.value", - "Destination": "Parameters" - } - ] - } - } -} \ No newline at end of file diff --git a/src/ALZ/Assets/alz-bicep-config/v0.16.3.config.json b/src/ALZ/Assets/alz-bicep-config/v0.16.3.config.json deleted file mode 100644 index 432c840..0000000 --- a/src/ALZ/Assets/alz-bicep-config/v0.16.3.config.json +++ /dev/null @@ -1,556 +0,0 @@ -{ - "version": "v0.16.3", - "module_url": "https://github.com/Azure/ALZ-Bicep", - "config_files": [ - { - "source": "infra-as-code/bicep/modules/policy/definitions/parameters/customPolicyDefinitions.parameters.all.json", - "destination": "config/custom-parameters/customPolicyDefinitions.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/customRoleDefinitions/parameters/customRoleDefinitions.parameters.all.json", - "destination": "config/custom-parameters/customRoleDefinitions.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/hubNetworking/parameters/hubNetworking.parameters.all.json", - "destination": "config/custom-parameters/hubNetworking.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/logging/parameters/logging.parameters.all.json", - "destination": "config/custom-parameters/logging.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/managementGroups/parameters/managementGroups.parameters.all.json", - "destination": "config/custom-parameters/managementGroups.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/orchestration/mgDiagSettingsAll/parameters/mgDiagSettingsAll.parameters.all.json", - "destination": "config/custom-parameters/mgDiagSettingsAll.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/policy/assignments/alzDefaults/parameters/alzDefaultPolicyAssignments.parameters.all.json", - "destination": "config/custom-parameters/alzDefaultPolicyAssignments.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/resourceGroup/parameters/resourceGroup.parameters.all.json", - "destination": "config/custom-parameters/resourceGroupConnectivity.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/resourceGroup/parameters/resourceGroup.parameters.all.json", - "destination": "config/custom-parameters/resourceGroupLoggingAndSentinel.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/roleAssignments/parameters/roleAssignmentManagementGroupMany.servicePrincipal.parameters.all.json", - "destination": "config/custom-parameters/roleAssignmentManagementGroupMany.servicePrincipal.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/orchestration/subPlacementAll/parameters/subPlacementAll.parameters.all.json", - "destination": "config/custom-parameters/subPlacementAll.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/vwanConnectivity/parameters/vwanConnectivity.parameters.all.json", - "destination": "config/custom-parameters/vwanConnectivity.parameters.all.json" - }, - { - "source": "accelerator/README.md", - "destination": "README.md" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZConnectivityResourceGroup.ps1", - "destination": "pipeline-scripts/Deploy-ALZConnectivityResourceGroup.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZCustomPolicyDefinitions.ps1", - "destination": "pipeline-scripts/Deploy-ALZCustomPolicyDefinitions.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZCustomRoleDefinitions.ps1", - "destination": "pipeline-scripts/Deploy-ALZCustomRoleDefinitions.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZHub-HubAndSpoke.ps1", - "destination": "pipeline-scripts/Deploy-ALZHub-HubAndSpoke.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZHub-VWAN.ps1", - "destination": "pipeline-scripts/Deploy-ALZHub-VWAN.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZLoggingAndSentinel.ps1", - "destination": "pipeline-scripts/Deploy-ALZLoggingAndSentinel.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZLoggingAndSentinelResourceGroup.ps1", - "destination": "pipeline-scripts/Deploy-ALZLoggingAndSentinelResourceGroup.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZMGDiagnosticSettings.ps1", - "destination": "pipeline-scripts/Deploy-ALZMGDiagnosticSettings.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZManagementGroups.ps1", - "destination": "pipeline-scripts/Deploy-ALZManagementGroups.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZPolicyAssignments.ps1", - "destination": "pipeline-scripts/Deploy-ALZPolicyAssignments.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZRoleAssignments.ps1", - "destination": "pipeline-scripts/Deploy-ALZRoleAssignments.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZSubscriptionPlacement.ps1", - "destination": "pipeline-scripts/Deploy-ALZSubscriptionPlacement.ps1" - } - ], - "cicd": { - "azuredevops": [ - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-1-core.yml", - "destination": ".azuredevops/pipelines/alz-bicep-1-core.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-2-policyassignments.yml", - "destination": ".azuredevops/pipelines/alz-bicep-2-policyassignments.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-3-subplacement.yml", - "destination": ".azuredevops/pipelines/alz-bicep-3-subplacement.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-4a-hubspoke.yml", - "destination": ".azuredevops/pipelines/alz-bicep-4a-hubspoke.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-4b-vwan.yml", - "destination": ".azuredevops/pipelines/alz-bicep-4b-vwan.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-pr1-build.yml", - "destination": ".azuredevops/pipelines/alz-bicep-pr1-build.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-pr2-lint.yml", - "destination": ".azuredevops/pipelines/alz-bicep-pr2-lint.yml" - } - ], - "github": [ - { - "source": "accelerator/.github/workflows/alz-bicep-1-core.yml", - "destination": ".github/workflows/alz-bicep-1-core.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-2-policyassignments.yml", - "destination": ".github/workflows/alz-bicep-2-policyassignments.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-3-subplacement.yml", - "destination": ".github/workflows/alz-bicep-3-subplacement.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-4a-hubspoke.yml", - "destination": ".github/workflows/alz-bicep-4a-hubspoke.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-4b-vwan.yml", - "destination": ".github/workflows/alz-bicep-4b-vwan.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-pr1-build.yml", - "destination": ".github/workflows/alz-bicep-pr1-build.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-pr2-lint.yml", - "destination": ".github/workflows/alz-bicep-pr2-lint.yml" - } - ] - }, - "parameters": { - "Prefix": { - "Type": "UserInput", - "Description": "The prefix that will be added to all resources created by this deployment. (e.g. 'alz')", - "Targets": [ - { - "Name": "parTopLevelManagementGroupPrefix.value", - "Destination": "Parameters" - }, - { - "Name": "parCompanyPrefix.value", - "Destination": "Parameters" - }, - { - "Name": "parTargetManagementGroupId.value", - "Destination": "Parameters" - }, - { - "Name": "parAssignableScopeManagementGroupId.value", - "Destination": "Parameters" - }, - { - "name": "TOP_LEVEL_MG_PREFIX", - "destination": "Environment" - } - ], - "Value": "", - "DefaultValue": "alz", - "Valid": "^[a-zA-Z0-9]{2,10}(-[a-zA-Z0-9]{2,10})?$" - }, - "Location": { - "Type": "UserInput", - "Description": "Deployment location. (e.g. 'uksouth')", - "Value": "", - "Targets": [ - { - "Name": "parLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parAutomationAccountLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parPolicyAssignmentParameters.value.ascExportResourceGroupLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parVirtualWanHubs.value.[0].parHubLocation", - "Destination": "Parameters" - }, - { - "Name": "LOCATION", - "Destination": "Environment" - } - ], - "AllowedValues": { - "Display": false, - "Values": [ - "australiacentral", - "australiacentral2", - "australiaeast", - "australiasoutheast", - "brazilsouth", - "brazilsoutheast", - "canadacentral", - "canadaeast", - "centralindia", - "centralus", - "centraluseuap", - "eastasia", - "eastus", - "eastus2", - "eastus2euap", - "eastusstg", - "francecentral", - "francesouth", - "germanynorth", - "germanywestcentral", - "japaneast", - "japanwest", - "jioindiacentral", - "jioindiawest", - "koreacentral", - "koreasouth", - "northcentralus", - "northeurope", - "norwayeast", - "norwaywest", - "qatarcentral", - "southafricanorth", - "southafricawest", - "southcentralus", - "southeastasia", - "southindia", - "swedencentral", - "switzerlandnorth", - "switzerlandwest", - "uaecentral", - "uaenorth", - "uksouth", - "ukwest", - "westcentralus", - "westeurope", - "westindia", - "westus", - "westus2", - "westus3" - ] - } - }, - "Environment": { - "Type": "UserInput", - "Description": "The Type of environment that will be created. (e.g. 'live', 'canary')", - "Targets": [ - { - "Name": "parEnvironment.value", - "Destination": "Parameters" - }, - { - "Name": "parTags.value.Environment", - "Destination": "Parameters" - } - ], - "Value": "", - "DefaultValue": "live", - "Valid": "^[a-zA-Z0-9]{2,10}$" - }, - "IdentitySubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Identity Subscription. (e.g '00000000-0000-0000-0000-000000000000')", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "IDENTITY_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "ConnectivitySubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Connectivity Subscription. (e.g '00000000-0000-0000-0000-000000000000')", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "CONNECTIVITY_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "ManagementSubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Management Subscription. (e.g 00000000-0000-0000-0000-000000000000)", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "MANAGEMENT_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "SecurityContact": { - "Type": "UserInput", - "Description": "The email address of the contact for security issues. (e.g. security@contactme.com)", - "Valid": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", - "Targets": [ - { - "Name": "parMsDefenderForCloudEmailSecurityContact.value", - "Destination": "Parameters" - } - ], - "Value": "" - }, - "LogAnalyticsWorkspaceLocation": { - "Type": "Computed", - "Value": "{%Location%}", - "Process": "($args[0] -eq \"eastus\") ? \"eastus2\" : ($args[0] -eq \"eastus2\") ? \"eastus\" : $args[0]", - "Targets": [ - { - "Name": "parLogAnalyticsWorkspaceLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parLogAnalyticsWorkSpaceAndAutomationAccountLocation.value", - "Destination": "Parameters" - } - ] - }, - "LogAnalyticsResourceId": { - "Type": "Computed", - "Value": "/subscriptions/{%ManagementSubscriptionId%}/resourcegroups/rg-{%Prefix%}-logging/providers/microsoft.operationalinsights/workspaces/alz-log-analytics", - "Targets": [ - { - "Name": "parLogAnalyticsWorkspaceResourceId.value", - "Destination": "Parameters" - } - ] - }, - "DdosPretectionPlanId": { - "Type": "Computed", - "Value": "/subscriptions/{%ConnectivitySubscriptionId%}/resourceGroups/rg-{%Prefix%}-connectivity/providers/Microsoft.Network/ddosProtectionPlans/alz-ddos-plan", - "Targets": [ - { - "Name": "parDdosProtectionPlanId.value", - "Destination": "Parameters" - } - ] - }, - "PrivateDnsResourceGroupId": { - "Type": "Computed", - "Value": "/subscriptions/{%ConnectivitySubscriptionId%}/resourceGroups/rg-{%Prefix%}-connectivity", - "Targets": [ - { - "Name": "parPrivateDnsResourceGroupId.value", - "Destination": "Parameters" - } - ] - }, - "ManagementSubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%ManagementSubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformManagementMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "ConnectivitySubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%ConnectivitySubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformConnectivityMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "IdentitySubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%IdentitySubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformIdentityMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "HubNetworkName": { - "Type": "Computed", - "Value": "alz-hub-{%Location%}", - "Targets": [ - { - "Name": "parHubNetworkName.value", - "Destination": "Parameters" - } - ] - }, - "VirtualIdToLink": { - "Type": "Computed", - "Value": "", - "Targets": [ - { - "Name": "parVirtualNetworkIdToLink.value", - "Destination": "Parameters" - } - ] - }, - "VirtualWanName": { - "Type": "Computed", - "Value": "alz-vwan-{%Location%}", - "Targets": [ - { - "Name": "parVirtualWanName.value", - "Destination": "Parameters" - } - ] - }, - "AzFirewallName": { - "Type": "Computed", - "Value": "alz-azfw-{%Location%}", - "Targets": [ - { - "Name": "parAzFirewallName.value", - "Destination": "Parameters" - } - ] - }, - "FirewallPoliciesName": { - "Type": "Computed", - "Value": "alz-azfwpolicy-{%Location%}", - "Targets": [ - { - "Name": "parAzFirewallPoliciesName.value", - "Destination": "Parameters" - } - ] - }, - "AK8sPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.azmk8s.io", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[0]", - "Destination": "Parameters" - } - ] - }, - "BatchPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.batch.azure.com", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[1]", - "Destination": "Parameters" - } - ] - }, - "KustoPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.kusto.windows.net", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[2]", - "Destination": "Parameters" - } - ] - }, - "BackupPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.backup.windowsazure.com", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[3]", - "Destination": "Parameters" - } - ] - }, - "UpstreamReleaseVersion": { - "Type": "Computed", - "Value": "v0.16.3", - "Targets": [ - { - "Name": "UPSTREAM_RELEASE_VERSION", - "Destination": "Environment" - } - ] - }, - "ConnectivityResourceGroupName": { - "Type": "Computed", - "Value": "rg-{%Prefix%}-connectivity", - "Targets": [ - { - "Name": "CONNECTIVITY_RESOURCE_GROUP", - "Destination": "Environment" - }, - { - "File": "resourceGroupConnectivity.parameters.all.json", - "Name": "parResourceGroupName.value", - "Destination": "Parameters" - } - ] - }, - "LoggingResourceGroupName": { - "Type": "Computed", - "Value": "rg-{%Prefix%}-logging", - "Targets": [ - { - "Name": "LOGGING_RESOURCE_GROUP", - "Destination": "Environment" - }, - { - "File": "resourceGroupLoggingAndSentinel.parameters.all.json", - "Name": "parResourceGroupName.value", - "Destination": "Parameters" - } - ] - } - } -} \ No newline at end of file diff --git a/src/ALZ/Assets/alz-bicep-config/v0.16.4.config.json b/src/ALZ/Assets/alz-bicep-config/v0.16.4.config.json deleted file mode 100644 index a1b2ae0..0000000 --- a/src/ALZ/Assets/alz-bicep-config/v0.16.4.config.json +++ /dev/null @@ -1,556 +0,0 @@ -{ - "version": "v0.16.4", - "module_url": "https://github.com/Azure/ALZ-Bicep", - "config_files": [ - { - "source": "infra-as-code/bicep/modules/policy/definitions/parameters/customPolicyDefinitions.parameters.all.json", - "destination": "config/custom-parameters/customPolicyDefinitions.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/customRoleDefinitions/parameters/customRoleDefinitions.parameters.all.json", - "destination": "config/custom-parameters/customRoleDefinitions.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/hubNetworking/parameters/hubNetworking.parameters.all.json", - "destination": "config/custom-parameters/hubNetworking.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/logging/parameters/logging.parameters.all.json", - "destination": "config/custom-parameters/logging.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/managementGroups/parameters/managementGroups.parameters.all.json", - "destination": "config/custom-parameters/managementGroups.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/orchestration/mgDiagSettingsAll/parameters/mgDiagSettingsAll.parameters.all.json", - "destination": "config/custom-parameters/mgDiagSettingsAll.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/policy/assignments/alzDefaults/parameters/alzDefaultPolicyAssignments.parameters.all.json", - "destination": "config/custom-parameters/alzDefaultPolicyAssignments.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/resourceGroup/parameters/resourceGroup.parameters.all.json", - "destination": "config/custom-parameters/resourceGroupConnectivity.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/resourceGroup/parameters/resourceGroup.parameters.all.json", - "destination": "config/custom-parameters/resourceGroupLoggingAndSentinel.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/roleAssignments/parameters/roleAssignmentManagementGroupMany.servicePrincipal.parameters.all.json", - "destination": "config/custom-parameters/roleAssignmentManagementGroupMany.servicePrincipal.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/orchestration/subPlacementAll/parameters/subPlacementAll.parameters.all.json", - "destination": "config/custom-parameters/subPlacementAll.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/vwanConnectivity/parameters/vwanConnectivity.parameters.all.json", - "destination": "config/custom-parameters/vwanConnectivity.parameters.all.json" - }, - { - "source": "accelerator/README.md", - "destination": "README.md" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZConnectivityResourceGroup.ps1", - "destination": "pipeline-scripts/Deploy-ALZConnectivityResourceGroup.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZCustomPolicyDefinitions.ps1", - "destination": "pipeline-scripts/Deploy-ALZCustomPolicyDefinitions.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZCustomRoleDefinitions.ps1", - "destination": "pipeline-scripts/Deploy-ALZCustomRoleDefinitions.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZHub-HubAndSpoke.ps1", - "destination": "pipeline-scripts/Deploy-ALZHub-HubAndSpoke.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZHub-VWAN.ps1", - "destination": "pipeline-scripts/Deploy-ALZHub-VWAN.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZLoggingAndSentinel.ps1", - "destination": "pipeline-scripts/Deploy-ALZLoggingAndSentinel.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZLoggingAndSentinelResourceGroup.ps1", - "destination": "pipeline-scripts/Deploy-ALZLoggingAndSentinelResourceGroup.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZMGDiagnosticSettings.ps1", - "destination": "pipeline-scripts/Deploy-ALZMGDiagnosticSettings.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZManagementGroups.ps1", - "destination": "pipeline-scripts/Deploy-ALZManagementGroups.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZPolicyAssignments.ps1", - "destination": "pipeline-scripts/Deploy-ALZPolicyAssignments.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZRoleAssignments.ps1", - "destination": "pipeline-scripts/Deploy-ALZRoleAssignments.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZSubscriptionPlacement.ps1", - "destination": "pipeline-scripts/Deploy-ALZSubscriptionPlacement.ps1" - } - ], - "cicd": { - "azuredevops": [ - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-1-core.yml", - "destination": ".azuredevops/pipelines/alz-bicep-1-core.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-2-policyassignments.yml", - "destination": ".azuredevops/pipelines/alz-bicep-2-policyassignments.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-3-subplacement.yml", - "destination": ".azuredevops/pipelines/alz-bicep-3-subplacement.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-4a-hubspoke.yml", - "destination": ".azuredevops/pipelines/alz-bicep-4a-hubspoke.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-4b-vwan.yml", - "destination": ".azuredevops/pipelines/alz-bicep-4b-vwan.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-pr1-build.yml", - "destination": ".azuredevops/pipelines/alz-bicep-pr1-build.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-pr2-lint.yml", - "destination": ".azuredevops/pipelines/alz-bicep-pr2-lint.yml" - } - ], - "github": [ - { - "source": "accelerator/.github/workflows/alz-bicep-1-core.yml", - "destination": ".github/workflows/alz-bicep-1-core.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-2-policyassignments.yml", - "destination": ".github/workflows/alz-bicep-2-policyassignments.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-3-subplacement.yml", - "destination": ".github/workflows/alz-bicep-3-subplacement.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-4a-hubspoke.yml", - "destination": ".github/workflows/alz-bicep-4a-hubspoke.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-4b-vwan.yml", - "destination": ".github/workflows/alz-bicep-4b-vwan.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-pr1-build.yml", - "destination": ".github/workflows/alz-bicep-pr1-build.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-pr2-lint.yml", - "destination": ".github/workflows/alz-bicep-pr2-lint.yml" - } - ] - }, - "parameters": { - "Prefix": { - "Type": "UserInput", - "Description": "The prefix that will be added to all resources created by this deployment. (e.g. 'alz')", - "Targets": [ - { - "Name": "parTopLevelManagementGroupPrefix.value", - "Destination": "Parameters" - }, - { - "Name": "parCompanyPrefix.value", - "Destination": "Parameters" - }, - { - "Name": "parTargetManagementGroupId.value", - "Destination": "Parameters" - }, - { - "Name": "parAssignableScopeManagementGroupId.value", - "Destination": "Parameters" - }, - { - "name": "TOP_LEVEL_MG_PREFIX", - "destination": "Environment" - } - ], - "Value": "", - "DefaultValue": "alz", - "Valid": "^[a-zA-Z0-9]{2,10}(-[a-zA-Z0-9]{2,10})?$" - }, - "Location": { - "Type": "UserInput", - "Description": "Deployment location. (e.g. 'uksouth')", - "Value": "", - "Targets": [ - { - "Name": "parLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parAutomationAccountLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parPolicyAssignmentParameters.value.ascExportResourceGroupLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parVirtualWanHubs.value.[0].parHubLocation", - "Destination": "Parameters" - }, - { - "Name": "LOCATION", - "Destination": "Environment" - } - ], - "AllowedValues": { - "Display": false, - "Values": [ - "australiacentral", - "australiacentral2", - "australiaeast", - "australiasoutheast", - "brazilsouth", - "brazilsoutheast", - "canadacentral", - "canadaeast", - "centralindia", - "centralus", - "centraluseuap", - "eastasia", - "eastus", - "eastus2", - "eastus2euap", - "eastusstg", - "francecentral", - "francesouth", - "germanynorth", - "germanywestcentral", - "japaneast", - "japanwest", - "jioindiacentral", - "jioindiawest", - "koreacentral", - "koreasouth", - "northcentralus", - "northeurope", - "norwayeast", - "norwaywest", - "qatarcentral", - "southafricanorth", - "southafricawest", - "southcentralus", - "southeastasia", - "southindia", - "swedencentral", - "switzerlandnorth", - "switzerlandwest", - "uaecentral", - "uaenorth", - "uksouth", - "ukwest", - "westcentralus", - "westeurope", - "westindia", - "westus", - "westus2", - "westus3" - ] - } - }, - "Environment": { - "Type": "UserInput", - "Description": "The Type of environment that will be created. (e.g. 'live', 'canary')", - "Targets": [ - { - "Name": "parEnvironment.value", - "Destination": "Parameters" - }, - { - "Name": "parTags.value.Environment", - "Destination": "Parameters" - } - ], - "Value": "", - "DefaultValue": "live", - "Valid": "^[a-zA-Z0-9]{2,10}$" - }, - "IdentitySubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Identity Subscription. (e.g '00000000-0000-0000-0000-000000000000')", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "IDENTITY_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "ConnectivitySubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Connectivity Subscription. (e.g '00000000-0000-0000-0000-000000000000')", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "CONNECTIVITY_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "ManagementSubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Management Subscription. (e.g 00000000-0000-0000-0000-000000000000)", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "MANAGEMENT_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "SecurityContact": { - "Type": "UserInput", - "Description": "The email address of the contact for security issues. (e.g. security@contactme.com)", - "Valid": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", - "Targets": [ - { - "Name": "parMsDefenderForCloudEmailSecurityContact.value", - "Destination": "Parameters" - } - ], - "Value": "" - }, - "LogAnalyticsWorkspaceLocation": { - "Type": "Computed", - "Value": "{%Location%}", - "Process": "($args[0] -eq \"eastus\") ? \"eastus2\" : ($args[0] -eq \"eastus2\") ? \"eastus\" : $args[0]", - "Targets": [ - { - "Name": "parLogAnalyticsWorkspaceLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parLogAnalyticsWorkSpaceAndAutomationAccountLocation.value", - "Destination": "Parameters" - } - ] - }, - "LogAnalyticsResourceId": { - "Type": "Computed", - "Value": "/subscriptions/{%ManagementSubscriptionId%}/resourcegroups/rg-{%Prefix%}-logging/providers/microsoft.operationalinsights/workspaces/alz-log-analytics", - "Targets": [ - { - "Name": "parLogAnalyticsWorkspaceResourceId.value", - "Destination": "Parameters" - } - ] - }, - "DdosPretectionPlanId": { - "Type": "Computed", - "Value": "/subscriptions/{%ConnectivitySubscriptionId%}/resourceGroups/rg-{%Prefix%}-connectivity/providers/Microsoft.Network/ddosProtectionPlans/alz-ddos-plan", - "Targets": [ - { - "Name": "parDdosProtectionPlanId.value", - "Destination": "Parameters" - } - ] - }, - "PrivateDnsResourceGroupId": { - "Type": "Computed", - "Value": "/subscriptions/{%ConnectivitySubscriptionId%}/resourceGroups/rg-{%Prefix%}-connectivity", - "Targets": [ - { - "Name": "parPrivateDnsResourceGroupId.value", - "Destination": "Parameters" - } - ] - }, - "ManagementSubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%ManagementSubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformManagementMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "ConnectivitySubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%ConnectivitySubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformConnectivityMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "IdentitySubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%IdentitySubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformIdentityMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "HubNetworkName": { - "Type": "Computed", - "Value": "alz-hub-{%Location%}", - "Targets": [ - { - "Name": "parHubNetworkName.value", - "Destination": "Parameters" - } - ] - }, - "VirtualIdToLink": { - "Type": "Computed", - "Value": "", - "Targets": [ - { - "Name": "parVirtualNetworkIdToLink.value", - "Destination": "Parameters" - } - ] - }, - "VirtualWanName": { - "Type": "Computed", - "Value": "alz-vwan-{%Location%}", - "Targets": [ - { - "Name": "parVirtualWanName.value", - "Destination": "Parameters" - } - ] - }, - "AzFirewallName": { - "Type": "Computed", - "Value": "alz-azfw-{%Location%}", - "Targets": [ - { - "Name": "parAzFirewallName.value", - "Destination": "Parameters" - } - ] - }, - "FirewallPoliciesName": { - "Type": "Computed", - "Value": "alz-azfwpolicy-{%Location%}", - "Targets": [ - { - "Name": "parAzFirewallPoliciesName.value", - "Destination": "Parameters" - } - ] - }, - "AK8sPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.azmk8s.io", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[0]", - "Destination": "Parameters" - } - ] - }, - "BatchPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.batch.azure.com", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[1]", - "Destination": "Parameters" - } - ] - }, - "KustoPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.kusto.windows.net", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[2]", - "Destination": "Parameters" - } - ] - }, - "BackupPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.backup.windowsazure.com", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[3]", - "Destination": "Parameters" - } - ] - }, - "UpstreamReleaseVersion": { - "Type": "Computed", - "Value": "v0.16.4", - "Targets": [ - { - "Name": "UPSTREAM_RELEASE_VERSION", - "Destination": "Environment" - } - ] - }, - "ConnectivityResourceGroupName": { - "Type": "Computed", - "Value": "rg-{%Prefix%}-connectivity", - "Targets": [ - { - "Name": "CONNECTIVITY_RESOURCE_GROUP", - "Destination": "Environment" - }, - { - "File": "resourceGroupConnectivity.parameters.all.json", - "Name": "parResourceGroupName.value", - "Destination": "Parameters" - } - ] - }, - "LoggingResourceGroupName": { - "Type": "Computed", - "Value": "rg-{%Prefix%}-logging", - "Targets": [ - { - "Name": "LOGGING_RESOURCE_GROUP", - "Destination": "Environment" - }, - { - "File": "resourceGroupLoggingAndSentinel.parameters.all.json", - "Name": "parResourceGroupName.value", - "Destination": "Parameters" - } - ] - } - } -} \ No newline at end of file diff --git a/src/ALZ/Assets/alz-bicep-config/v0.16.5.config.json b/src/ALZ/Assets/alz-bicep-config/v0.16.5.config.json deleted file mode 100644 index a7a7e20..0000000 --- a/src/ALZ/Assets/alz-bicep-config/v0.16.5.config.json +++ /dev/null @@ -1,556 +0,0 @@ -{ - "version": "v0.16.5", - "module_url": "https://github.com/Azure/ALZ-Bicep", - "config_files": [ - { - "source": "infra-as-code/bicep/modules/policy/definitions/parameters/customPolicyDefinitions.parameters.all.json", - "destination": "config/custom-parameters/customPolicyDefinitions.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/customRoleDefinitions/parameters/customRoleDefinitions.parameters.all.json", - "destination": "config/custom-parameters/customRoleDefinitions.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/hubNetworking/parameters/hubNetworking.parameters.all.json", - "destination": "config/custom-parameters/hubNetworking.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/logging/parameters/logging.parameters.all.json", - "destination": "config/custom-parameters/logging.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/managementGroups/parameters/managementGroups.parameters.all.json", - "destination": "config/custom-parameters/managementGroups.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/orchestration/mgDiagSettingsAll/parameters/mgDiagSettingsAll.parameters.all.json", - "destination": "config/custom-parameters/mgDiagSettingsAll.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/policy/assignments/alzDefaults/parameters/alzDefaultPolicyAssignments.parameters.all.json", - "destination": "config/custom-parameters/alzDefaultPolicyAssignments.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/resourceGroup/parameters/resourceGroup.parameters.all.json", - "destination": "config/custom-parameters/resourceGroupConnectivity.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/resourceGroup/parameters/resourceGroup.parameters.all.json", - "destination": "config/custom-parameters/resourceGroupLoggingAndSentinel.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/roleAssignments/parameters/roleAssignmentManagementGroupMany.servicePrincipal.parameters.all.json", - "destination": "config/custom-parameters/roleAssignmentManagementGroupMany.servicePrincipal.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/orchestration/subPlacementAll/parameters/subPlacementAll.parameters.all.json", - "destination": "config/custom-parameters/subPlacementAll.parameters.all.json" - }, - { - "source": "infra-as-code/bicep/modules/vwanConnectivity/parameters/vwanConnectivity.parameters.all.json", - "destination": "config/custom-parameters/vwanConnectivity.parameters.all.json" - }, - { - "source": "accelerator/README.md", - "destination": "README.md" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZConnectivityResourceGroup.ps1", - "destination": "pipeline-scripts/Deploy-ALZConnectivityResourceGroup.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZCustomPolicyDefinitions.ps1", - "destination": "pipeline-scripts/Deploy-ALZCustomPolicyDefinitions.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZCustomRoleDefinitions.ps1", - "destination": "pipeline-scripts/Deploy-ALZCustomRoleDefinitions.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZHub-HubAndSpoke.ps1", - "destination": "pipeline-scripts/Deploy-ALZHub-HubAndSpoke.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZHub-VWAN.ps1", - "destination": "pipeline-scripts/Deploy-ALZHub-VWAN.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZLoggingAndSentinel.ps1", - "destination": "pipeline-scripts/Deploy-ALZLoggingAndSentinel.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZLoggingAndSentinelResourceGroup.ps1", - "destination": "pipeline-scripts/Deploy-ALZLoggingAndSentinelResourceGroup.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZMGDiagnosticSettings.ps1", - "destination": "pipeline-scripts/Deploy-ALZMGDiagnosticSettings.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZManagementGroups.ps1", - "destination": "pipeline-scripts/Deploy-ALZManagementGroups.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZPolicyAssignments.ps1", - "destination": "pipeline-scripts/Deploy-ALZPolicyAssignments.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZRoleAssignments.ps1", - "destination": "pipeline-scripts/Deploy-ALZRoleAssignments.ps1" - }, - { - "source": "accelerator/pipeline-scripts/Deploy-ALZSubscriptionPlacement.ps1", - "destination": "pipeline-scripts/Deploy-ALZSubscriptionPlacement.ps1" - } - ], - "cicd": { - "azuredevops": [ - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-1-core.yml", - "destination": ".azuredevops/pipelines/alz-bicep-1-core.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-2-policyassignments.yml", - "destination": ".azuredevops/pipelines/alz-bicep-2-policyassignments.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-3-subplacement.yml", - "destination": ".azuredevops/pipelines/alz-bicep-3-subplacement.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-4a-hubspoke.yml", - "destination": ".azuredevops/pipelines/alz-bicep-4a-hubspoke.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-4b-vwan.yml", - "destination": ".azuredevops/pipelines/alz-bicep-4b-vwan.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-pr1-build.yml", - "destination": ".azuredevops/pipelines/alz-bicep-pr1-build.yml" - }, - { - "source": "accelerator/.azuredevops/pipelines/alz-bicep-pr2-lint.yml", - "destination": ".azuredevops/pipelines/alz-bicep-pr2-lint.yml" - } - ], - "github": [ - { - "source": "accelerator/.github/workflows/alz-bicep-1-core.yml", - "destination": ".github/workflows/alz-bicep-1-core.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-2-policyassignments.yml", - "destination": ".github/workflows/alz-bicep-2-policyassignments.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-3-subplacement.yml", - "destination": ".github/workflows/alz-bicep-3-subplacement.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-4a-hubspoke.yml", - "destination": ".github/workflows/alz-bicep-4a-hubspoke.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-4b-vwan.yml", - "destination": ".github/workflows/alz-bicep-4b-vwan.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-pr1-build.yml", - "destination": ".github/workflows/alz-bicep-pr1-build.yml" - }, - { - "source": "accelerator/.github/workflows/alz-bicep-pr2-lint.yml", - "destination": ".github/workflows/alz-bicep-pr2-lint.yml" - } - ] - }, - "parameters": { - "Prefix": { - "Type": "UserInput", - "Description": "The prefix that will be added to all resources created by this deployment. (e.g. 'alz')", - "Targets": [ - { - "Name": "parTopLevelManagementGroupPrefix.value", - "Destination": "Parameters" - }, - { - "Name": "parCompanyPrefix.value", - "Destination": "Parameters" - }, - { - "Name": "parTargetManagementGroupId.value", - "Destination": "Parameters" - }, - { - "Name": "parAssignableScopeManagementGroupId.value", - "Destination": "Parameters" - }, - { - "name": "TOP_LEVEL_MG_PREFIX", - "destination": "Environment" - } - ], - "Value": "", - "DefaultValue": "alz", - "Valid": "^[a-zA-Z0-9]{2,10}(-[a-zA-Z0-9]{2,10})?$" - }, - "Location": { - "Type": "UserInput", - "Description": "Deployment location. (e.g. 'uksouth')", - "Value": "", - "Targets": [ - { - "Name": "parLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parAutomationAccountLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parPolicyAssignmentParameters.value.ascExportResourceGroupLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parVirtualWanHubs.value.[0].parHubLocation", - "Destination": "Parameters" - }, - { - "Name": "LOCATION", - "Destination": "Environment" - } - ], - "AllowedValues": { - "Display": false, - "Values": [ - "australiacentral", - "australiacentral2", - "australiaeast", - "australiasoutheast", - "brazilsouth", - "brazilsoutheast", - "canadacentral", - "canadaeast", - "centralindia", - "centralus", - "centraluseuap", - "eastasia", - "eastus", - "eastus2", - "eastus2euap", - "eastusstg", - "francecentral", - "francesouth", - "germanynorth", - "germanywestcentral", - "japaneast", - "japanwest", - "jioindiacentral", - "jioindiawest", - "koreacentral", - "koreasouth", - "northcentralus", - "northeurope", - "norwayeast", - "norwaywest", - "qatarcentral", - "southafricanorth", - "southafricawest", - "southcentralus", - "southeastasia", - "southindia", - "swedencentral", - "switzerlandnorth", - "switzerlandwest", - "uaecentral", - "uaenorth", - "uksouth", - "ukwest", - "westcentralus", - "westeurope", - "westindia", - "westus", - "westus2", - "westus3" - ] - } - }, - "Environment": { - "Type": "UserInput", - "Description": "The Type of environment that will be created. (e.g. 'live', 'canary')", - "Targets": [ - { - "Name": "parEnvironment.value", - "Destination": "Parameters" - }, - { - "Name": "parTags.value.Environment", - "Destination": "Parameters" - } - ], - "Value": "", - "DefaultValue": "live", - "Valid": "^[a-zA-Z0-9]{2,10}$" - }, - "IdentitySubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Identity Subscription. (e.g '00000000-0000-0000-0000-000000000000')", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "IDENTITY_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "ConnectivitySubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Connectivity Subscription. (e.g '00000000-0000-0000-0000-000000000000')", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "CONNECTIVITY_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "ManagementSubscriptionId": { - "Type": "UserInput", - "Description": "The identifier of the Management Subscription. (e.g 00000000-0000-0000-0000-000000000000)", - "Valid": "^( {){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(}){0,1}$", - "Targets": [ - { - "Name": "MANAGEMENT_SUBSCRIPTION_ID", - "Destination": "Environment" - } - ], - "Value": "" - }, - "SecurityContact": { - "Type": "UserInput", - "Description": "The email address of the contact for security issues. (e.g. security@contactme.com)", - "Valid": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", - "Targets": [ - { - "Name": "parMsDefenderForCloudEmailSecurityContact.value", - "Destination": "Parameters" - } - ], - "Value": "" - }, - "LogAnalyticsWorkspaceLocation": { - "Type": "Computed", - "Value": "{%Location%}", - "Process": "($args[0] -eq \"eastus\") ? \"eastus2\" : ($args[0] -eq \"eastus2\") ? \"eastus\" : $args[0]", - "Targets": [ - { - "Name": "parLogAnalyticsWorkspaceLocation.value", - "Destination": "Parameters" - }, - { - "Name": "parLogAnalyticsWorkSpaceAndAutomationAccountLocation.value", - "Destination": "Parameters" - } - ] - }, - "LogAnalyticsResourceId": { - "Type": "Computed", - "Value": "/subscriptions/{%ManagementSubscriptionId%}/resourcegroups/rg-{%Prefix%}-logging/providers/microsoft.operationalinsights/workspaces/alz-log-analytics", - "Targets": [ - { - "Name": "parLogAnalyticsWorkspaceResourceId.value", - "Destination": "Parameters" - } - ] - }, - "DdosPretectionPlanId": { - "Type": "Computed", - "Value": "/subscriptions/{%ConnectivitySubscriptionId%}/resourceGroups/rg-{%Prefix%}-connectivity/providers/Microsoft.Network/ddosProtectionPlans/alz-ddos-plan", - "Targets": [ - { - "Name": "parDdosProtectionPlanId.value", - "Destination": "Parameters" - } - ] - }, - "PrivateDnsResourceGroupId": { - "Type": "Computed", - "Value": "/subscriptions/{%ConnectivitySubscriptionId%}/resourceGroups/rg-{%Prefix%}-connectivity", - "Targets": [ - { - "Name": "parPrivateDnsResourceGroupId.value", - "Destination": "Parameters" - } - ] - }, - "ManagementSubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%ManagementSubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformManagementMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "ConnectivitySubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%ConnectivitySubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformConnectivityMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "IdentitySubscriptionGroup": { - "Type": "Computed", - "Value": [ - "{%IdentitySubscriptionId%}" - ], - "Targets": [ - { - "Name": "parPlatformIdentityMgSubs.value", - "Destination": "Parameters" - } - ] - }, - "HubNetworkName": { - "Type": "Computed", - "Value": "alz-hub-{%Location%}", - "Targets": [ - { - "Name": "parHubNetworkName.value", - "Destination": "Parameters" - } - ] - }, - "VirtualIdToLink": { - "Type": "Computed", - "Value": "", - "Targets": [ - { - "Name": "parVirtualNetworkIdToLink.value", - "Destination": "Parameters" - } - ] - }, - "VirtualWanName": { - "Type": "Computed", - "Value": "alz-vwan-{%Location%}", - "Targets": [ - { - "Name": "parVirtualWanName.value", - "Destination": "Parameters" - } - ] - }, - "AzFirewallName": { - "Type": "Computed", - "Value": "alz-azfw-{%Location%}", - "Targets": [ - { - "Name": "parAzFirewallName.value", - "Destination": "Parameters" - } - ] - }, - "FirewallPoliciesName": { - "Type": "Computed", - "Value": "alz-azfwpolicy-{%Location%}", - "Targets": [ - { - "Name": "parAzFirewallPoliciesName.value", - "Destination": "Parameters" - } - ] - }, - "AK8sPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.azmk8s.io", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[0]", - "Destination": "Parameters" - } - ] - }, - "BatchPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.batch.azure.com", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[1]", - "Destination": "Parameters" - } - ] - }, - "KustoPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.kusto.windows.net", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[2]", - "Destination": "Parameters" - } - ] - }, - "BackupPrivateLink": { - "Type": "Computed", - "Value": "privatelink.{%Location%}.backup.windowsazure.com", - "Targets": [ - { - "Name": "parPrivateDnsZones.value.[3]", - "Destination": "Parameters" - } - ] - }, - "UpstreamReleaseVersion": { - "Type": "Computed", - "Value": "v0.16.5", - "Targets": [ - { - "Name": "UPSTREAM_RELEASE_VERSION", - "Destination": "Environment" - } - ] - }, - "ConnectivityResourceGroupName": { - "Type": "Computed", - "Value": "rg-{%Prefix%}-connectivity", - "Targets": [ - { - "Name": "CONNECTIVITY_RESOURCE_GROUP", - "Destination": "Environment" - }, - { - "File": "resourceGroupConnectivity.parameters.all.json", - "Name": "parResourceGroupName.value", - "Destination": "Parameters" - } - ] - }, - "LoggingResourceGroupName": { - "Type": "Computed", - "Value": "rg-{%Prefix%}-logging", - "Targets": [ - { - "Name": "LOGGING_RESOURCE_GROUP", - "Destination": "Environment" - }, - { - "File": "resourceGroupLoggingAndSentinel.parameters.all.json", - "Name": "parResourceGroupName.value", - "Destination": "Parameters" - } - ] - } - } -} \ No newline at end of file diff --git a/src/ALZ/Private/Get-ALZConfig.ps1 b/src/ALZ/Private/Get-ALZConfig.ps1 index c492512..0c135f0 100644 --- a/src/ALZ/Private/Get-ALZConfig.ps1 +++ b/src/ALZ/Private/Get-ALZConfig.ps1 @@ -3,36 +3,23 @@ function Get-ALZConfig { #> param( - [Parameter(Mandatory = $false)] - [string] $alzVersion = "v0.16.5", - [Parameter(Mandatory = $false)] - [ValidateSet("bicep", "terraform")] - [Alias("Iac")] - [string] $alzIacProvider = "bicep", [Parameter(Mandatory = $false)] [string] $configFilePath = "" ) - # Import the config from the json file inside assets and transform it to a PowerShell object - if ($configFilePath -ne "") { - $extension = (Get-Item -Path $configFilePath).Extension.ToLower() - if($extension -eq ".yml" -or $extension -eq ".yaml") { - if (!(Get-Module -ListAvailable -Name powershell-Yaml)) { - Write-Host "Installing YAML module" - Install-Module powershell-Yaml -Force - } - $config = [PSCustomObject](Get-Content -Path $configFilePath | ConvertFrom-Yaml) - } elseif($extension -eq ".json") { - $config = Get-Content -Path $configFilePath | ConvertFrom-Json - } else { - throw "The config file must be a json or yaml/yml file" + # Import the config and transform it to a PowerShell object + $extension = (Get-Item -Path $configFilePath).Extension.ToLower() + if($extension -eq ".yml" -or $extension -eq ".yaml") { + if (!(Get-Module -ListAvailable -Name powershell-Yaml)) { + Write-Host "Installing YAML module" + Install-Module powershell-Yaml -Force } - - return $config + $config = [PSCustomObject](Get-Content -Path $configFilePath | ConvertFrom-Yaml) + } elseif($extension -eq ".json") { + $config = Get-Content -Path $configFilePath | ConvertFrom-Json + } else { + throw "The config file must be a json or yaml/yml file" } - else { - $config = Get-Content -Path (Join-Path $(Get-ScriptRoot) "../Assets/alz-$alzIacProvider-config" "$alzVersion.config.json" ) | ConvertFrom-Json - return $config - } + return $config } \ No newline at end of file diff --git a/src/ALZ/Private/New-ALZEnvironmentBicep.ps1 b/src/ALZ/Private/New-ALZEnvironmentBicep.ps1 index 707e888..e2f16fd 100644 --- a/src/ALZ/Private/New-ALZEnvironmentBicep.ps1 +++ b/src/ALZ/Private/New-ALZEnvironmentBicep.ps1 @@ -16,19 +16,34 @@ function New-ALZEnvironmentBicep { [string] $alzCicdPlatform ) + $bicepModuleUrl = "https://github.com/Azure/ALZ-Bicep" + if ($PSCmdlet.ShouldProcess("ALZ-Bicep module configuration", "modify")) { - $bicepConfig = Get-ALZConfig -alzVersion $alzVersion + if($alzVersion -ne "latest" -and $alzVersion -notlike "*-preview") { + $lastSupportedLocalVersion = [System.Version]"0.16.5" + $targetVersion = [System.Version]($alzVersion -replace "v", "") + + if($targetVersion -le $lastSupportedLocalVersion) { + throw "The version of the ALZ-Bicep accelerator you are targetting is not supported by this version of the ALZ PowerShell. In order to target versions prior to v0.6.16 you will need to downgrade to version v0.2.20 or lower of this module." + } + } New-ALZDirectoryEnvironment -alzEnvironmentDestination $alzEnvironmentDestination -alzCicdDestination $alzCicdPlatform | Out-String | Write-Verbose $alzEnvironmentDestinationInternalCode = Join-Path $alzEnvironmentDestination "upstream-releases" - Get-ALZGithubRelease -directoryForReleases $alzEnvironmentDestinationInternalCode -githubRepoUrl $bicepConfig.module_url -releases @($bicepConfig.version) | Out-String | Write-Verbose + # Downloading the latest or specified version of the bicep accelerator module + $releaseTag = Get-ALZGithubRelease -directoryForReleases $alzEnvironmentDestinationInternalCode -githubRepoUrl $bicepModuleUrl -release $alzVersion + $releasePath = Join-Path -Path $alzEnvironmentDestinationInternalCode -ChildPath $releaseTag + + # Getting the configuration + $configFilePath = Join-Path -Path $releasePath -ChildPath "accelerator/.config/ALZ-Powershell.config.json" + $bicepConfig = Get-ALZConfig -configFilePath $configFilePath Write-InformationColored "Copying ALZ-Bicep module to $alzEnvironmentDestinationInternalCode" -ForegroundColor Green -InformationAction Continue - Copy-ALZParametersFile -alzEnvironmentDestination $alzEnvironmentDestination -upstreamReleaseDirectory $(Join-Path $alzEnvironmentDestinationInternalCode $bicepConfig.version) -configFiles $bicepConfig.config_files | Out-String | Write-Verbose - Copy-ALZParametersFile -alzEnvironmentDestination $alzEnvironmentDestination -upstreamReleaseDirectory $(Join-Path $alzEnvironmentDestinationInternalCode $bicepConfig.version) -configFiles $bicepConfig.cicd.$alzCicdPlatform | Out-String | Write-Verbose + Copy-ALZParametersFile -alzEnvironmentDestination $alzEnvironmentDestination -upstreamReleaseDirectory $(Join-Path $alzEnvironmentDestinationInternalCode $releaseTag) -configFiles $bicepConfig.config_files | Out-String | Write-Verbose + Copy-ALZParametersFile -alzEnvironmentDestination $alzEnvironmentDestination -upstreamReleaseDirectory $(Join-Path $alzEnvironmentDestinationInternalCode $releaseTag) -configFiles $bicepConfig.cicd.$alzCicdPlatform | Out-String | Write-Verbose Write-InformationColored "ALZ-Bicep source directory: $alzBicepSourceDirectory" -ForegroundColor Green -InformationAction Continue $configuration = Request-ALZEnvironmentConfig -configurationParameters $bicepConfig.parameters diff --git a/src/ALZ/Private/New-ALZEnvironmentTerraform.ps1 b/src/ALZ/Private/New-ALZEnvironmentTerraform.ps1 index 8f2d51e..353d92d 100644 --- a/src/ALZ/Private/New-ALZEnvironmentTerraform.ps1 +++ b/src/ALZ/Private/New-ALZEnvironmentTerraform.ps1 @@ -36,9 +36,8 @@ function New-ALZEnvironmentTerraform { } # Downloading the latest or specified version of the alz-terraform-accelerator module - $releaseObject = Get-ALZGithubRelease -directoryForReleases $alzEnvironmentDestination -githubRepoUrl $terraformModuleUrl -releases $alzVersion - $release = $($releaseObject.name) - $releasePath = Join-Path -Path $alzEnvironmentDestination -ChildPath $release + $releaseTag = Get-ALZGithubRelease -directoryForReleases $alzEnvironmentDestination -githubRepoUrl $terraformModuleUrl -release $alzVersion + $releasePath = Join-Path -Path $alzEnvironmentDestination -ChildPath $releaseTag # Getting the configuration for the initial bootstrap user input and validators $bootstrapConfigFilePath = Join-Path -Path $releasePath -ChildPath "bootstrap/.config/ALZ-Powershell.config.json" @@ -50,7 +49,7 @@ function New-ALZEnvironmentTerraform { $hclParserToolPath = Get-HCLParserTool -alzEnvironmentDestination $releasePath -toolVersion "v0.6.0" $bootstrapParameters = Convert-HCLVariablesToUserInputConfig -targetVariableFile $bootstrapVariableFilesPath -hclParserToolPath $hclParserToolPath -validators $bootstrapConfig.validators - Write-InformationColored "Got configuration and downloaded alz-terraform-accelerator Terraform module version $release to $alzEnvironmentDestination" -ForegroundColor Green -InformationAction Continue + Write-InformationColored "Got configuration and downloaded alz-terraform-accelerator Terraform module version $releaseTag to $alzEnvironmentDestination" -ForegroundColor Green -InformationAction Continue # Getting the user input for the bootstrap module $bootstrapConfiguration = Request-ALZEnvironmentConfig -configurationParameters $bootstrapParameters -respectOrdering -userInputOverrides $userInputOverrides -treatEmptyDefaultAsValid $true diff --git a/src/ALZ/Public/Get-ALZGithubRelease.ps1 b/src/ALZ/Public/Get-ALZGithubRelease.ps1 index bc472de..30b63eb 100644 --- a/src/ALZ/Public/Get-ALZGithubRelease.ps1 +++ b/src/ALZ/Public/Get-ALZGithubRelease.ps1 @@ -28,7 +28,7 @@ function Get-ALZGithubRelease { [Parameter(Mandatory = $false, Position = 2, HelpMessage = "The releases to download. Specify 'all' to download all releases or 'latest' to download the latest release. Defaults to the latest release.")] [array] - $releases = @("latest"), + $release = "latest", [Parameter(Mandatory = $false, Position = 3, HelpMessage = "The directory to download the releases to. Defaults to the current directory.")] [string] @@ -46,93 +46,79 @@ function Get-ALZGithubRelease { # Split Repo URL into parts $repoOrgPlusRepo = $githubRepoUrl.Split("/")[-2..-1] -join "/" - Write-Verbose "=====> Checking for releases on GitHub Repo: $repoOrgPlusRepo" + Write-Verbose "=====> Checking for release on GitHub Repo: $repoOrgPlusRepo" # Get releases on repo - $repoReleasesUrl = "https://api.github.com/repos/$repoOrgPlusRepo/releases" - $allRepoReleases = Invoke-RestMethod $repoReleasesUrl -RetryIntervalSec 3 -MaximumRetryCount 100 - - Write-Verbose "=====> All available releases on GitHub Repo: $repoOrgPlusRepo" - $allRepoReleases | Select-Object name, tag_name, published_at, prerelease, draft, html_url | Format-Table -AutoSize | Out-String | Write-Verbose - - # Get latest release on repo - $latestRepoRelease = $allRepoReleases | Where-Object { $_.prerelease -eq $false } | Where-Object { $_.draft -eq $false } | Sort-Object -Descending published_at | Select-Object -First 1 - # replace latest with the tag of the latest release - if ($releases -contains "latest") { - $releases += $latestRepoRelease.tag_name - $releases = $releases | Where-Object { $_ -ne "latest" } + $repoReleaseUrl = "https://api.github.com/repos/$repoOrgPlusRepo/releases/$release" + if($release -ne "latest") { + $repoReleaseUrl = "https://api.github.com/repos/$repoOrgPlusRepo/releases/tags/$release" } - Write-Verbose "=====> Latest available release on GitHub Repo: $repoOrgPlusRepo" - $latestRepoRelease | Select-Object name, tag_name, published_at, prerelease, draft, html_url | Format-Table -AutoSize | Out-String | Write-Verbose + $releaseData = Invoke-RestMethod $repoReleaseUrl -SkipHttpErrorCheck -StatusCodeVariable "statusCode" - # Check if directory exists - Write-Verbose "=====> Checking if directory for releases exists: $directoryForReleases" - - if (!(Test-Path $directoryForReleases)) { - Write-Verbose "Directory does not exist for releases, will now create: $directoryForReleases" - New-Item -ItemType Directory -Path $directoryForReleases | Out-String | Write-Verbose + if($statusCode -eq 404) { + Write-Error "The release $release does not exist in the GitHub repository $githubRepoUrl - $repoReleaseUrl" + throw "The release $release does not exist in the GitHub repository $githubRepoUrl - $repoReleaseUrl" } - # if all is specified add all the releases to the array and remove all - if ($releases -contains "all") { - $releases = $allRepoReleases | Select-Object -ExpandProperty tag_name - $releases = $releases | Where-Object { $_ -ne "all" } + # Handle transient errors like throttling + if($statusCode -ge 400 -and $statusCode -le 599) { + Write-InformationColored "Retrying as got the Status Code $statusCode, which may be a tranisent error." -ForegroundColor Yellow -InformationAction Continue + $releaseData = Invoke-RestMethod $repoReleaseUrl -RetryIntervalSec 3 -MaximumRetryCount 100 } - # Remove all the releases that were not found - foreach ($release in $releases) { - if (($allRepoReleases | Where-Object { $_.tag_name -eq $release } | Measure-Object).Count -eq 0) { - Write-Warning "Release $release was not found on GitHub Repo: $repoOrgPlusRepo" - $releases = $releases | Where-Object { $_ -ne $release } - } + $releaseTag = $releaseData.tag_name + + if($queryOnly) { + return $releaseTag } - $selectedReleases = $allRepoReleases | Where-Object { $releases -contains $_.tag_name } + # Check if directory exists + Write-Verbose "=====> Checking if directory for releases exists: $directoryForReleases" - if($queryOnly) { - return $selectedReleases + if (!(Test-Path $directoryForReleases)) { + Write-Verbose "Directory does not exist for releases, will now create: $directoryForReleases" + New-Item -ItemType Directory -Path $directoryForReleases | Out-String | Write-Verbose } - foreach ($release in $selectedReleases) { - # Check the firectory for this release - $releaseDirectory = "$directoryForReleases/$($release.tag_name)" + # Check the firectory for this release + $releaseDirectory = "$directoryForReleases/$releaseTag" - Write-Verbose "===> Checking if directory for release version exists: $releaseDirectory" + Write-Verbose "===> Checking if directory for release version exists: $releaseDirectory" - if (!(Test-Path $releaseDirectory)) { - Write-Verbose "Directory does not exist for release $($release.tag_name), will now create: $releaseDirectory" - New-Item -ItemType Directory -Path $releaseDirectory | Out-String | Write-Verbose - } + if (!(Test-Path $releaseDirectory)) { + Write-Verbose "Directory does not exist for release $releaseTag, will now create: $releaseDirectory" + New-Item -ItemType Directory -Path $releaseDirectory | Out-String | Write-Verbose + } - Write-Verbose "===> Checking if any content exists inside of $releaseDirectory" + Write-Verbose "===> Checking if any content exists inside of $releaseDirectory" - $contentInReleaseDirectory = Get-ChildItem -Path $releaseDirectory -Recurse -ErrorAction SilentlyContinue + $contentInReleaseDirectory = Get-ChildItem -Path $releaseDirectory -Recurse -ErrorAction SilentlyContinue - if ($null -eq $contentInReleaseDirectory) { - Write-Verbose "===> Pulling and extracting release $($release.tag_name) into $releaseDirectory" - New-Item -ItemType Directory -Path "$releaseDirectory/tmp" | Out-String | Write-Verbose - Invoke-WebRequest -Uri "https://github.com/$repoOrgPlusRepo/archive/refs/tags/$($release.tag_name).zip" -OutFile "$releaseDirectory/tmp/$($release.tag_name).zip" -RetryIntervalSec 3 -MaximumRetryCount 100 | Out-String | Write-Verbose - Expand-Archive -Path "$releaseDirectory/tmp/$($release.tag_name).zip" -DestinationPath "$releaseDirectory/tmp/extracted" | Out-String | Write-Verbose - $extractedSubFolder = Get-ChildItem -Path "$releaseDirectory/tmp/extracted" -Directory + if ($null -eq $contentInReleaseDirectory) { + Write-Verbose "===> Pulling and extracting release $releaseTag into $releaseDirectory" + New-Item -ItemType Directory -Path "$releaseDirectory/tmp" | Out-String | Write-Verbose + Invoke-WebRequest -Uri "https://github.com/$repoOrgPlusRepo/archive/refs/tags/$releaseTag.zip" -OutFile "$releaseDirectory/tmp/$releaseTag.zip" -RetryIntervalSec 3 -MaximumRetryCount 100 | Out-String | Write-Verbose + Expand-Archive -Path "$releaseDirectory/tmp/$releaseTag.zip" -DestinationPath "$releaseDirectory/tmp/extracted" | Out-String | Write-Verbose + $extractedSubFolder = Get-ChildItem -Path "$releaseDirectory/tmp/extracted" -Directory - if ($null -ne $directoryAndFilesToKeep) { - foreach ($path in $directoryAndFilesToKeep) { - Write-Verbose "===> Moving $path into $releaseDirectory." - Move-Item -Path "$($extractedSubFolder.FullName)/$($path)" -Destination "$releaseDirectory" -ErrorAction SilentlyContinue | Out-String | Write-Verbose - } + if ($null -ne $directoryAndFilesToKeep) { + foreach ($path in $directoryAndFilesToKeep) { + Write-Verbose "===> Moving $path into $releaseDirectory." + Move-Item -Path "$($extractedSubFolder.FullName)/$($path)" -Destination "$releaseDirectory" -ErrorAction SilentlyContinue | Out-String | Write-Verbose } + } - if ($null -eq $directoryAndFilesToKeep) { - Write-Verbose "===> Moving all extracted contents into $releaseDirectory." - Move-Item -Path "$($extractedSubFolder.FullName)/*" -Destination "$releaseDirectory" -ErrorAction SilentlyContinue | Out-String | Write-Verbose - } + if ($null -eq $directoryAndFilesToKeep) { + Write-Verbose "===> Moving all extracted contents into $releaseDirectory." + Move-Item -Path "$($extractedSubFolder.FullName)/*" -Destination "$releaseDirectory" -ErrorAction SilentlyContinue | Out-String | Write-Verbose + } - Remove-Item -Path "$releaseDirectory/tmp" -Force -Recurse + Remove-Item -Path "$releaseDirectory/tmp" -Force -Recurse - } else { - Write-Verbose "===> Content already exists in $releaseDirectory. Skipping" - } + } else { + Write-Verbose "===> Content already exists in $releaseDirectory. Skipping" } - return $selectedReleases + + return $releaseTag } \ No newline at end of file diff --git a/src/ALZ/Public/New-ALZEnvironment.ps1 b/src/ALZ/Public/New-ALZEnvironment.ps1 index 4a94175..b5dbb36 100644 --- a/src/ALZ/Public/New-ALZEnvironment.ps1 +++ b/src/ALZ/Public/New-ALZEnvironment.ps1 @@ -35,7 +35,7 @@ function New-ALZEnvironment { [Parameter(Mandatory = $false)] [Alias("alzBicepVersion")] - [string] $alzVersion = "", + [string] $alzVersion = "latest", [Parameter(Mandatory = $false)] [ValidateSet("bicep", "terraform")] @@ -59,16 +59,10 @@ function New-ALZEnvironment { if ($PSCmdlet.ShouldProcess("Accelerator setup", "modify")) { if ($alzIacProvider -eq "bicep") { - if ($alzVersion -eq "") { - $alzVersion = "v0.16.5" - } New-ALZEnvironmentBicep -alzEnvironmentDestination $alzEnvironmentDestination -alzVersion $alzVersion -alzCicdPlatform $alzCicdPlatform } if($alzIacProvider -eq "terraform") { - if($alzVersion -eq "") { - $alzVersion = "latest" - } if($autoApprove) { New-ALZEnvironmentTerraform -alzEnvironmentDestination $alzEnvironmentDestination -alzVersion $alzVersion -alzCicdPlatform $alzCicdPlatform -userInputOverridePath $userInputOverridePath -autoApprove } else { diff --git a/src/Tests/Unit/Public/Get-ALZGithubRelease.Tests.ps1 b/src/Tests/Unit/Public/Get-ALZGithubRelease.Tests.ps1 index 10cf7c2..e4fa491 100644 --- a/src/Tests/Unit/Public/Get-ALZGithubRelease.Tests.ps1 +++ b/src/Tests/Unit/Public/Get-ALZGithubRelease.Tests.ps1 @@ -19,25 +19,23 @@ InModuleScope 'ALZ' { } Context 'Initialize config get the correct base values' { BeforeEach { - Mock -CommandName Invoke-RestMethod -ParameterFilter { $Uri -eq "https://api.github.com/repos/test/repo/releases" } -MockWith { - @( - [PSCustomObject]@{ - name = "v1.0.0" - tag_name = "v1.0.0" - published_at = "2020-01-01T00:00:00Z" - prerelease = $false - draft = $false - html_url = "" - }, - [PSCustomObject]@{ - name = "v1.0.1" - tag_name = "v1.0.1" - published_at = "2020-01-02T00:00:00Z" - prerelease = $false - draft = $false - html_url = "" - } - ) + Mock -CommandName Invoke-RestMethod -ParameterFilter { $Uri -eq "https://api.github.com/repos/test/repo/releases/latest" } -MockWith { + Set-Variable -Scope 3 'statusCode' 200 + [PSCustomObject]@{ + name = "v1.0.0" + tag_name = "v1.0.0" + published_at = "2020-01-01T00:00:00Z" + prerelease = $false + draft = $false + html_url = "" + } + } + + Mock -CommandName Invoke-RestMethod -ParameterFilter { $Uri -eq "https://api.github.com/repos/test/repo/releases/tags/v2.0.0" } -MockWith { + Set-Variable -Scope 3 'statusCode' 404 + [PSCustomObject]@{ + message = "Not Found" + } } Mock -CommandName Invoke-WebRequest -ParameterFilter { $Uri -eq "https://github.com/test/repo/archive/refs/tags/v1.0.1.zip" } -MockWith { @@ -96,6 +94,9 @@ InModuleScope 'ALZ' { $null } + Mock -CommandName Write-Error -MockWith { + $null + } } It 'Should get the correct releases' { @@ -104,15 +105,9 @@ InModuleScope 'ALZ' { Should -Not -Invoke Write-Warning } - It 'Should warn when you ask for a release that does not exist' { - Get-ALZGithubRelease -githubRepoUrl "http://github.com/test/repo" -releases @('v2.0.0') -directoryAndFilesToKeep @('repo-1.0.0') -directoryForReleases "output" - Should -Invoke Write-Warning - } - - It 'Should download all the releases with all' { - Get-ALZGithubRelease -githubRepoUrl "http://github.com/test/repo" -releases @('all') -directoryAndFilesToKeep @('repo-1.0.0') -directoryForReleases "output" - Should -Invoke Expand-Archive -Times 2 - Should -Not -Invoke Write-Warning + It 'Should throw an exception when you ask for a release that does not exist' { + { Get-ALZGithubRelease -githubRepoUrl "http://github.com/test/repo" -release 'v2.0.0' -directoryAndFilesToKeep @('repo-1.0.0') -directoryForReleases "output" } | Should -Throw + Should -Invoke Write-Error } } }