Skip to content

Commit e324291

Browse files
committed
Get pool subnet using separate workload identity
1 parent 6d5edeb commit e324291

3 files changed

Lines changed: 25 additions & 27 deletions

File tree

eng/common/TestResources/New-TestResources.ps1

Lines changed: 5 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -119,28 +119,6 @@ param (
119119

120120
. $PSScriptRoot/SubConfig-Helpers.ps1
121121

122-
$azsdkPipelineVnetWestUS = '/subscriptions/a18897a6-7e44-457d-9260-f2854c0aca42/resourceGroups/azsdk-pools/providers/Microsoft.Network/virtualNetworks/azsdk-pipeline-vnet-wus'
123-
$azsdkPipelineVnetCanadaCentral = '/subscriptions/a18897a6-7e44-457d-9260-f2854c0aca42/resourceGroups/azsdk-pools/providers/Microsoft.Network/virtualNetworks/azsdk-pipeline-vnet-cnc'
124-
$azsdkPipelineSubnetMap = @{
125-
'azsdk-pool-mms-ubuntu-1804-general' = ($azsdkPipelineVnetWestUS + '/subnets/pipeline-subnet-ubuntu-1804-general')
126-
'azsdk-pool-mms-ubuntu-2004-general' = ($azsdkPipelineVnetWestUS + '/subnets/pipeline-subnet-ubuntu-2004-general')
127-
'azsdk-pool-mms-ubuntu-2204-general' = ($azsdkPipelineVnetWestUS + '/subnets/pipeline-subnet-ubuntu-2204-general')
128-
'azsdk-pool-mms-win-2019-general' = ($azsdkPipelineVnetWestUS + '/subnets/pipeline-subnet-win-2019-general')
129-
'azsdk-pool-mms-win-2022-general' = ($azsdkPipelineVnetWestUS + '/subnets/pipeline-subnet-win-2022-general')
130-
'azsdk-pool-mms-ubuntu-1804-storage' = ($azsdkPipelineVnetCanadaCentral + '/subnets/pipeline-subnet-ubuntu-1804-storage')
131-
'azsdk-pool-mms-ubuntu-2004-storage' = ($azsdkPipelineVnetCanadaCentral + '/subnets/pipeline-subnet-ubuntu-2004-storage')
132-
'azsdk-pool-mms-win-2019-storage' = ($azsdkPipelineVnetCanadaCentral + '/subnets/pipeline-subnet-win-2019-storage')
133-
'azsdk-pool-mms-win-2022-storage' = ($azsdkPipelineVnetCanadaCentral + '/subnets/pipeline-subnet-win-2022-storage')
134-
'Azure Pipelines' = ''
135-
}
136-
137-
$poolSubnet = ''
138-
if ($env:Pool) {
139-
$poolSubnet = $azsdkPipelineSubnetMap[$env:Pool]
140-
} else {
141-
Write-Warning "Pool environment variable is not defined! Subnet allowlisting will not work and live test resources may be non-compliant."
142-
}
143-
144122
if (!$ServicePrincipalAuth) {
145123
# Clear secrets if not using Service Principal auth. This prevents secrets
146124
# from being passed to pre- and post-scripts.
@@ -785,8 +763,8 @@ try {
785763
$templateParameters.Add('testApplicationSecret', $TestApplicationSecret)
786764
}
787765
# Only add subnets when running in an azure pipeline context
788-
if ($CI -and $Environment -eq 'AzureCloud' -and $poolSubnet) {
789-
$templateParameters.Add('azsdkPipelineSubnetList', @($poolSubnet))
766+
if ($CI -and $Environment -eq 'AzureCloud' -and $env:PoolSubnet) {
767+
$templateParameters.Add('azsdkPipelineSubnetList', @($env:PoolSubnet))
790768
}
791769

792770
$defaultCloudParameters = LoadCloudConfig $Environment
@@ -873,9 +851,9 @@ try {
873851
if ($rules -and $rules.DefaultAction -eq "Allow") {
874852
Write-Host "Restricting network rules in storage account '$($account.Name)' to deny access by default"
875853
Retry { Update-AzStorageAccountNetworkRuleSet -ResourceGroupName $ResourceGroupName -Name $account.Name -DefaultAction Deny }
876-
if ($CI -and $poolSubnet) {
877-
Write-Host "Enabling access to '$($account.Name)' from pipeline subnet $poolSubnet"
878-
Retry { Add-AzStorageAccountNetworkRule -ResourceGroupName $ResourceGroupName -Name $account.Name -VirtualNetworkResourceId $poolSubnet }
854+
if ($CI -and $env:PoolSubnet) {
855+
Write-Host "Enabling access to '$($account.Name)' from pipeline subnet $($env:PoolSubnet)"
856+
Retry { Add-AzStorageAccountNetworkRule -ResourceGroupName $ResourceGroupName -Name $account.Name -VirtualNetworkResourceId $env:PoolSubnet }
879857
} elseif ($AllowIpRanges) {
880858
Write-Host "Enabling access to '$($account.Name)' to $($AllowIpRanges.Length) IP ranges"
881859
$ipRanges = $AllowIpRanges | ForEach-Object {

eng/common/TestResources/build-test-resource-config.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,24 @@ parameters:
1414
default: null
1515

1616
steps:
17+
- task: AzurePowerShell@5
18+
displayName: Set Pipeline Subnet Info
19+
env: ${{ parameters.EnvVars }}
20+
inputs:
21+
azureSubscription: azure-sdk-tests
22+
azurePowerShellVersion: LatestVersion
23+
pwsh: true
24+
ScriptType: InlineScript
25+
Inline: |
26+
if ($env:Pool -eq 'Azure Pipelines') {
27+
Write-Host "Skipping pool subnet lookup when running on an Azure Pipelines hosted pool"
28+
Write-Host "##vso[task.setvariable variable=PoolSubnet;]"
29+
exit 0
30+
}
31+
$poolSubnet = (Get-AzResource -ResourceGroupName azsdk-pools -Name $env:Pool -ExpandProperties).Properties.networkProfile.subnetId
32+
Write-Host "Setting pipeline subnet env variable PoolSubnet to '$poolSubnet'"
33+
Write-Host "##vso[task.setvariable variable=PoolSubnet;]$poolSubnet"
34+
1735
- pwsh: |
1836
. ./eng/common/TestResources/SubConfig-Helpers.ps1
1937

eng/common/TestResources/deploy-test-resources.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ steps:
4646
displayName: Deploy test resources
4747
env:
4848
TEMP: $(Agent.TempDirectory)
49+
PoolSubnet: $(PoolSubnet)
4950
${{ insert }}: ${{ parameters.EnvVars }}
5051
inputs:
5152
azureSubscription: ${{ parameters.ServiceConnection }}
@@ -98,4 +99,5 @@ steps:
9899
displayName: Deploy test resources
99100
env:
100101
TEMP: $(Agent.TempDirectory)
102+
PoolSubnet: $(PoolSubnet)
101103
${{ insert }}: ${{ parameters.EnvVars }}

0 commit comments

Comments
 (0)