accelerator/pipeline-scripts/Deploy-ALZMGDiagnosticSettings.ps1 (49 lines of code) (raw):
param (
[Parameter()]
[String]$Location = "$($env:LOCATION)",
[Parameter()]
[String]$TopLevelMGPrefix = "$($env:TOP_LEVEL_MG_PREFIX)",
[Parameter()]
[String]$ManagementSubscriptionId = "$($env:MANAGEMENT_SUBSCRIPTION_ID)",
[Parameter()]
[String]$TemplateFile = "upstream-releases\$($env:UPSTREAM_RELEASE_VERSION)\infra-as-code\bicep\orchestration\mgDiagSettingsAll\mgDiagSettingsAll.bicep",
[Parameter()]
[String]$TemplateParameterFile = "config\custom-parameters\mgDiagSettingsAll.parameters.all.json",
[Parameter()]
[Boolean]$WhatIfEnabled = [System.Convert]::ToBoolean($($env:IS_PULL_REQUEST))
)
# Parameters necessary for deployment
$inputObject = @{
DeploymentName = -join ('alz-MGDiagnosticSettings-{0}' -f (Get-Date -Format 'yyyyMMddTHHMMssffffZ'))[0..63]
Location = $Location
ManagementGroupId = $TopLevelMGPrefix
TemplateFile = $TemplateFile
TemplateParameterFile = $TemplateParameterFile
WhatIf = $WhatIfEnabled
Verbose = $true
}
# Registering 'Microsoft.Insights' resource provider on the Management subscription
Select-AzSubscription -SubscriptionId $ManagementSubscriptionId
$providers = @('Microsoft.insights')
foreach ($provider in $providers ) {
$iterationCount = 0
$maxIterations = 30
$providerStatus = (Get-AzResourceProvider -ListAvailable | Where-Object ProviderNamespace -eq $provider).registrationState
if ($providerStatus -ne 'Registered') {
Write-Output "`n Registering the '$provider' provider"
Register-AzResourceProvider -ProviderNamespace $provider
do {
$providerStatus = (Get-AzResourceProvider -ListAvailable | Where-Object ProviderNamespace -eq $provider).registrationState
$iterationCount++
Write-Output "Waiting for the '$provider' provider registration to complete....waiting 10 seconds"
Start-Sleep -Seconds 10
} until ($providerStatus -eq 'Registered' -and $iterationCount -ne $maxIterations)
if ($iterationCount -ne $maxIterations) {
Write-Output "`n The '$provider' has been registered successfully"
}
else {
Write-Output "`n The '$provider' has not been registered successfully"
}
}
}
New-AzManagementGroupDeployment @inputObject