-
Notifications
You must be signed in to change notification settings - Fork 3.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixed issues with TemplateSpec deployments in New-AzTenantDeployment … #14179
Changes from all commits
38a1470
58e2a60
8bd9078
ab2959c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -146,6 +146,155 @@ function Test-NewDeploymentFromTemplateSpec | |
} | ||
} | ||
|
||
function Test-NewSubscriptionDeploymentFromTemplateSpec | ||
{ | ||
# Setup | ||
$rgname = Get-ResourceGroupName | ||
$rname = Get-ResourceName | ||
$rglocation = "West US 2" | ||
$subId = (Get-AzContext).Subscription.SubscriptionId | ||
|
||
try | ||
{ | ||
# Prepare our RG and basic template spec: | ||
|
||
New-AzResourceGroup -Name $rgname -Location $rglocation | ||
|
||
$sampleTemplateJson = Get-Content -Raw -Path "subscription_level_template.json" | ||
$basicCreatedTemplateSpec = New-AzTemplateSpec -ResourceGroupName $rgname -Name $rname -Location $rgLocation -Version "v1" -TemplateJson $sampleTemplateJson | ||
|
||
$resourceId = $basicCreatedTemplateSpec.Id + "/versions/v1" | ||
|
||
#Create deployment | ||
$deployment = New-AzSubscriptionDeployment -Name $rname -TemplateSpecId $resourceId -TemplateParameterFile "subscription_level_parameters.json" -Location $rglocation | ||
|
||
# Assert | ||
Assert-AreEqual Succeeded $deployment.ProvisioningState | ||
|
||
} | ||
|
||
finally | ||
{ | ||
# Cleanup | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Cleanup should delete the deployment at the subscription level. |
||
Clean-DeploymentAtSubscription $deployment | ||
Clean-ResourceGroup $rgname | ||
} | ||
} | ||
|
||
function Test-NewFailedSubscriptionDeploymentFromTemplateSpec | ||
{ | ||
# Setup | ||
$rgname = Get-ResourceGroupName | ||
$rname = Get-ResourceName | ||
$rglocation = "West US 2" | ||
$subId = (Get-AzContext).Subscription.SubscriptionId | ||
|
||
try | ||
{ | ||
# Prepare our RG and basic template spec: | ||
|
||
New-AzResourceGroup -Name $rgname -Location $rglocation | ||
|
||
#Use template that will fail at subscription scope | ||
$sampleTemplateJson = Get-Content -Raw -Path "subscription_level_template.json" | ||
$basicCreatedTemplateSpec = New-AzTemplateSpec -ResourceGroupName $rgname -Name $rname -Location $rgLocation -Version "v1" -TemplateJson $sampleTemplateJson | ||
|
||
$resourceId = $basicCreatedTemplateSpec.Id + "/versions/v1" | ||
|
||
#Create deployment | ||
try { | ||
$deployment = New-AzSubscriptionDeployment -Name $rname -TemplateSpecId $resourceId -TemplateParameterFile "subscription_level_parameters.json" -Location $rglocation | ||
} | ||
Catch { | ||
Assert-True { $Error[0].Contains("ResourceNotFound")} | ||
} | ||
|
||
} | ||
|
||
finally | ||
{ | ||
# Cleanup | ||
Clean-DeploymentAtSubscription $deployment | ||
Clean-ResourceGroup $rgname | ||
} | ||
} | ||
|
||
function Test-NewMGDeploymentFromTemplateSpec | ||
{ | ||
# Setup | ||
$rgname = Get-ResourceGroupName | ||
$rname = Get-ResourceName | ||
$managementGroupId = Get-ResourceName | ||
$rglocation = "West US 2" | ||
$subId = (Get-AzContext).Subscription.SubscriptionId | ||
|
||
try | ||
{ | ||
#Create New MG | ||
New-AzManagementGroup -GroupName $managementGroupId -ParentId "/providers/Microsoft.Management/managementGroups/AzDeploymentsPSTest" | ||
|
||
# Prepare our RG and basic template spec: | ||
|
||
New-AzResourceGroup -Name $rgname -Location $rglocation | ||
|
||
$sampleTemplateJson = Get-Content -Raw -Path "simpleTemplate.json" | ||
$basicCreatedTemplateSpec = New-AzTemplateSpec -ResourceGroupName $rgname -Name $rname -Location $rgLocation -Version "v1" -TemplateJson $sampleTemplateJson | ||
|
||
$resourceId = $basicCreatedTemplateSpec.Id + "/versions/v1" | ||
|
||
#Create deployment | ||
$deployment = New-AzManagementGroupDeployment -ManagementGroupId $managementGroupId -Name $rname -TemplateSpecId $resourceId -TemplateParameterFile "simpleTemplateParams.json" -Location $rglocation | ||
|
||
# Assert | ||
Assert-AreEqual Succeeded $deployment.ProvisioningState | ||
|
||
} | ||
|
||
finally | ||
{ | ||
# Cleanup | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Same as above. Cleanup should also clean the MG deployment. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Missed these. I will add them |
||
Remove-AzManagementGroupDeployment -ManagementGroup $managementGroupId -Name $rname | ||
Clean-ResourceGroup $rgname | ||
Remove-AzManagementGroup -GroupName $managementGroupId | ||
} | ||
} | ||
|
||
function Test-NewTenantDeploymentFromTemplateSpec | ||
{ | ||
# Setup | ||
$rgname = Get-ResourceGroupName | ||
$rname = Get-ResourceName | ||
$rglocation = "West US 2" | ||
$subId = (Get-AzContext).Subscription.SubscriptionId | ||
|
||
try | ||
{ | ||
# Prepare our RG and basic template spec: | ||
|
||
New-AzResourceGroup -Name $rgname -Location $rglocation | ||
|
||
$sampleTemplateJson = Get-Content -Raw -Path "simpleTemplate.json" | ||
$basicCreatedTemplateSpec = New-AzTemplateSpec -ResourceGroupName $rgname -Name $rname -Location $rgLocation -Version "v1" -TemplateJson $sampleTemplateJson | ||
|
||
$resourceId = $basicCreatedTemplateSpec.Id + "/versions/v1" | ||
|
||
#Create deployment | ||
$deployment = New-AzTenantDeployment -Name $rname -TemplateSpecId $resourceId -TemplateParameterFile "simpleTemplateParams.json" -Location $rglocation | ||
|
||
# Assert | ||
Assert-AreEqual Succeeded $deployment.ProvisioningState | ||
|
||
} | ||
|
||
finally | ||
{ | ||
# Cleanup | ||
Clean-ResourceGroup $rgname | ||
Remove-AzTenantDeployment -Name $rname | ||
Clean-DeploymentAtTenant $rname | ||
} | ||
} | ||
|
||
function Test-NewDeploymentFromTemplateObject | ||
{ | ||
# Setup | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd also add a negative test case where we expect a deployment to fail with given TS.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok. I will add them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ideally, the negative test case would look for non existing TS or TS version. However currently this scenario doesn't produce a meaningful error message. There is a task in the board to fix that, once it's fixed, Gokul will update the test case.