From a327f68df49e598d264ac3ff8d7ddfb8f774e14c Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Tue, 21 May 2024 14:31:35 -0700 Subject: [PATCH 1/7] Add static file secret-less sub-config support --- eng/common/TestResources/New-TestResources.ps1 | 2 +- eng/common/TestResources/New-TestResources.ps1.md | 6 +++--- eng/common/TestResources/Remove-TestResources.ps1 | 4 ++-- eng/common/TestResources/Remove-TestResources.ps1.md | 8 ++++---- eng/common/TestResources/deploy-test-resources.yml | 7 +++++++ eng/common/TestResources/remove-test-resources.yml | 7 +++++++ 6 files changed, 24 insertions(+), 10 deletions(-) diff --git a/eng/common/TestResources/New-TestResources.ps1 b/eng/common/TestResources/New-TestResources.ps1 index ea2987f115..64e075c570 100644 --- a/eng/common/TestResources/New-TestResources.ps1 +++ b/eng/common/TestResources/New-TestResources.ps1 @@ -52,7 +52,7 @@ param ( [ValidatePattern('^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$')] [string] $ProvisionerApplicationOid, - [Parameter(ParameterSetName = 'Provisioner', Mandatory = $true)] + [Parameter(ParameterSetName = 'Provisioner')] [string] $ProvisionerApplicationSecret, [Parameter()] diff --git a/eng/common/TestResources/New-TestResources.ps1.md b/eng/common/TestResources/New-TestResources.ps1.md index 55f791ea1a..b0811e1e68 100644 --- a/eng/common/TestResources/New-TestResources.ps1.md +++ b/eng/common/TestResources/New-TestResources.ps1.md @@ -29,7 +29,7 @@ New-TestResources.ps1 [-BaseName ] [-ResourceGroupName ] [-Servi [-TestResourcesDirectory ] [-TestApplicationId ] [-TestApplicationSecret ] [-TestApplicationOid ] -TenantId [-SubscriptionId ] -ProvisionerApplicationId [-ProvisionerApplicationOid ] - -ProvisionerApplicationSecret [-DeleteAfterHours ] [-Location ] + [-ProvisionerApplicationSecret ] [-DeleteAfterHours ] [-Location ] [-Environment ] [-ResourceType ] [-ArmTemplateParameters ] [-AdditionalParameters ] [-EnvironmentVariables ] [-CI] [-Force] [-OutFile] [-SuppressVsoCommands] [-ServicePrincipalAuth] [-NewTestResourcesRemainingArguments ] @@ -426,7 +426,7 @@ Type: String Parameter Sets: Provisioner Aliases: -Required: True +Required: False Position: Named Default value: None Accept pipeline input: False @@ -712,7 +712,7 @@ Accept wildcard characters: False ``` ### CommonParameters -This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](https://go.microsoft.com/fwlink/?LinkID=113216). +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). ## INPUTS diff --git a/eng/common/TestResources/Remove-TestResources.ps1 b/eng/common/TestResources/Remove-TestResources.ps1 index 4d28acc7d0..490b41b8eb 100644 --- a/eng/common/TestResources/Remove-TestResources.ps1 +++ b/eng/common/TestResources/Remove-TestResources.ps1 @@ -34,8 +34,8 @@ param ( [ValidatePattern('^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$')] [string] $ProvisionerApplicationId, - [Parameter(ParameterSetName = 'Default+Provisioner', Mandatory = $true)] - [Parameter(ParameterSetName = 'ResourceGroup+Provisioner', Mandatory = $true)] + [Parameter(ParameterSetName = 'Default+Provisioner')] + [Parameter(ParameterSetName = 'ResourceGroup+Provisioner')] [string] $ProvisionerApplicationSecret, [Parameter(ParameterSetName = 'Default', Position = 0)] diff --git a/eng/common/TestResources/Remove-TestResources.ps1.md b/eng/common/TestResources/Remove-TestResources.ps1.md index 15ac14ea87..d89de83b78 100644 --- a/eng/common/TestResources/Remove-TestResources.ps1.md +++ b/eng/common/TestResources/Remove-TestResources.ps1.md @@ -23,7 +23,7 @@ Remove-TestResources.ps1 [-BaseName ] [-SubscriptionId ] [[-Serv ### Default+Provisioner ``` Remove-TestResources.ps1 -BaseName -TenantId [-SubscriptionId ] - -ProvisionerApplicationId -ProvisionerApplicationSecret [[-ServiceDirectory] ] + -ProvisionerApplicationId [-ProvisionerApplicationSecret ] [[-ServiceDirectory] ] [-Environment ] [-ResourceType ] [-ServicePrincipalAuth] [-Force] [-RemoveTestResourcesRemainingArguments ] [-ProgressAction ] [-WhatIf] [-Confirm] [] @@ -32,7 +32,7 @@ Remove-TestResources.ps1 -BaseName -TenantId [-SubscriptionId ### ResourceGroup+Provisioner ``` Remove-TestResources.ps1 [-ResourceGroupName ] -TenantId [-SubscriptionId ] - -ProvisionerApplicationId -ProvisionerApplicationSecret [[-ServiceDirectory] ] + -ProvisionerApplicationId [-ProvisionerApplicationSecret ] [[-ServiceDirectory] ] [-Environment ] [-CI] [-ResourceType ] [-ServicePrincipalAuth] [-Force] [-RemoveTestResourcesRemainingArguments ] [-ProgressAction ] [-WhatIf] [-Confirm] [] @@ -184,7 +184,7 @@ Type: String Parameter Sets: Default+Provisioner, ResourceGroup+Provisioner Aliases: -Required: True +Required: False Position: Named Default value: None Accept pipeline input: False @@ -347,7 +347,7 @@ Accept wildcard characters: False ``` ### CommonParameters -This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](https://go.microsoft.com/fwlink/?LinkID=113216). +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). ## INPUTS diff --git a/eng/common/TestResources/deploy-test-resources.yml b/eng/common/TestResources/deploy-test-resources.yml index 5b1b080979..23e68d94ec 100644 --- a/eng/common/TestResources/deploy-test-resources.yml +++ b/eng/common/TestResources/deploy-test-resources.yml @@ -7,6 +7,7 @@ parameters: ServiceConnection: not-specified ResourceType: test UseFederatedAuth: false + SubscriptionConfigurationFilePath: '' # SubscriptionConfiguration will be splatted into the parameters of the test @@ -58,6 +59,12 @@ steps: ${{ parameters.SubscriptionConfiguration }} '@ | ConvertFrom-Json -AsHashtable; + if ('${{ parameters.SubscriptionConfigurationFilePath }}' -ne '') { + $subscriptionConfiguration = ` + Get-Content '${{ parameters.SubscriptionConfigurationFilePath }}' ` + | ConvertFrom-Json -AsHashtable; + } + # The subscriptionConfiguration may have ArmTemplateParameters defined, so # pass those in via the ArmTemplateParameters flag, and handle any # additional parameters from the pipelines via AdditionalParameters diff --git a/eng/common/TestResources/remove-test-resources.yml b/eng/common/TestResources/remove-test-resources.yml index 121f6b3dda..9e4b39aa29 100644 --- a/eng/common/TestResources/remove-test-resources.yml +++ b/eng/common/TestResources/remove-test-resources.yml @@ -7,6 +7,7 @@ parameters: ServiceConnection: not-specified ResourceType: test UseFederatedAuth: false + SubscriptionConfigurationFilePath: '' # SubscriptionConfiguration will be splat into the parameters of the test # resources script. It should be JSON in the form: @@ -40,6 +41,12 @@ steps: ${{ parameters.SubscriptionConfiguration }} "@ | ConvertFrom-Json -AsHashtable; + if ('${{ parameters.SubscriptionConfigurationFilePath }}' -ne '') { + $subscriptionConfiguration = ` + Get-Content '${{ parameters.SubscriptionConfigurationFilePath }}' ` + | ConvertFrom-Json -AsHashtable; + } + eng/common/TestResources/Remove-TestResources.ps1 ` @subscriptionConfiguration ` -ResourceType '${{ parameters.ResourceType }}' ` From 4dfe1d57de2517b019c10758636fa4c4ab08e43c Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Wed, 22 May 2024 10:16:58 -0700 Subject: [PATCH 2/7] Review feedback: if/else --- eng/common/TestResources/deploy-test-resources.yml | 10 +++++++--- eng/common/TestResources/remove-test-resources.yml | 10 +++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/eng/common/TestResources/deploy-test-resources.yml b/eng/common/TestResources/deploy-test-resources.yml index 23e68d94ec..1607a90672 100644 --- a/eng/common/TestResources/deploy-test-resources.yml +++ b/eng/common/TestResources/deploy-test-resources.yml @@ -55,14 +55,18 @@ steps: Inline: | eng/common/scripts/Import-AzModules.ps1 - $subscriptionConfiguration = @' - ${{ parameters.SubscriptionConfiguration }} - '@ | ConvertFrom-Json -AsHashtable; + if ('${{ parameters.SubscriptionConfigurationFilePath }}' -ne '') { $subscriptionConfiguration = ` Get-Content '${{ parameters.SubscriptionConfigurationFilePath }}' ` | ConvertFrom-Json -AsHashtable; + } else { + # Multiline string termination ('@) needs to be at the beginning + # of the line + $subscriptionConfiguration = @' + ${{ parameters.SubscriptionConfiguration }} + '@ | ConvertFrom-Json -AsHashtable; } # The subscriptionConfiguration may have ArmTemplateParameters defined, so diff --git a/eng/common/TestResources/remove-test-resources.yml b/eng/common/TestResources/remove-test-resources.yml index 9e4b39aa29..89aa7d825e 100644 --- a/eng/common/TestResources/remove-test-resources.yml +++ b/eng/common/TestResources/remove-test-resources.yml @@ -37,14 +37,18 @@ steps: Inline: | eng/common/scripts/Import-AzModules.ps1 - $subscriptionConfiguration = @" - ${{ parameters.SubscriptionConfiguration }} - "@ | ConvertFrom-Json -AsHashtable; if ('${{ parameters.SubscriptionConfigurationFilePath }}' -ne '') { $subscriptionConfiguration = ` Get-Content '${{ parameters.SubscriptionConfigurationFilePath }}' ` | ConvertFrom-Json -AsHashtable; + } else { + # Multiline string termination ("@) needs to be at the beginning + # of the line + $subscriptionConfiguration = @" + ${{ parameters.SubscriptionConfiguration }} + "@ | ConvertFrom-Json -AsHashtable; + } eng/common/TestResources/Remove-TestResources.ps1 ` From 632f54cfbc052cec44903d5b544a641b66cde6ef Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Wed, 22 May 2024 10:37:47 -0700 Subject: [PATCH 3/7] http -> https --- eng/common/TestResources/New-TestResources.ps1.md | 2 +- eng/common/TestResources/Remove-TestResources.ps1.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/common/TestResources/New-TestResources.ps1.md b/eng/common/TestResources/New-TestResources.ps1.md index b0811e1e68..f44feb1ab4 100644 --- a/eng/common/TestResources/New-TestResources.ps1.md +++ b/eng/common/TestResources/New-TestResources.ps1.md @@ -712,7 +712,7 @@ Accept wildcard characters: False ``` ### CommonParameters -This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](https://go.microsoft.com/fwlink/?LinkID=113216). ## INPUTS diff --git a/eng/common/TestResources/Remove-TestResources.ps1.md b/eng/common/TestResources/Remove-TestResources.ps1.md index d89de83b78..62b9e4f987 100644 --- a/eng/common/TestResources/Remove-TestResources.ps1.md +++ b/eng/common/TestResources/Remove-TestResources.ps1.md @@ -347,7 +347,7 @@ Accept wildcard characters: False ``` ### CommonParameters -This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](https://go.microsoft.com/fwlink/?LinkID=113216). ## INPUTS From 0025f85e3865105f0b48896ff0fe2481889a74b2 Mon Sep 17 00:00:00 2001 From: Wes Haggard Date: Wed, 22 May 2024 10:43:02 -0700 Subject: [PATCH 4/7] Update eng/common/TestResources/deploy-test-resources.yml --- eng/common/TestResources/deploy-test-resources.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/eng/common/TestResources/deploy-test-resources.yml b/eng/common/TestResources/deploy-test-resources.yml index 1607a90672..04369b9876 100644 --- a/eng/common/TestResources/deploy-test-resources.yml +++ b/eng/common/TestResources/deploy-test-resources.yml @@ -56,7 +56,6 @@ steps: eng/common/scripts/Import-AzModules.ps1 - if ('${{ parameters.SubscriptionConfigurationFilePath }}' -ne '') { $subscriptionConfiguration = ` Get-Content '${{ parameters.SubscriptionConfigurationFilePath }}' ` From 30c1dbbaa50f65b649466125262314b08fc23d3a Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Wed, 22 May 2024 13:50:57 -0700 Subject: [PATCH 5/7] Space cleanup --- eng/common/TestResources/deploy-test-resources.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/eng/common/TestResources/deploy-test-resources.yml b/eng/common/TestResources/deploy-test-resources.yml index 04369b9876..b4197dc236 100644 --- a/eng/common/TestResources/deploy-test-resources.yml +++ b/eng/common/TestResources/deploy-test-resources.yml @@ -55,7 +55,6 @@ steps: Inline: | eng/common/scripts/Import-AzModules.ps1 - if ('${{ parameters.SubscriptionConfigurationFilePath }}' -ne '') { $subscriptionConfiguration = ` Get-Content '${{ parameters.SubscriptionConfigurationFilePath }}' ` From cfc4f233d9b2bc38bff4f9601a3d395f1094d5e7 Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Tue, 28 May 2024 11:29:49 -0700 Subject: [PATCH 6/7] Add AzurePublicMsft.json --- .../TestResources/sub-config/AzurePublicMsft.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 eng/common/TestResources/sub-config/AzurePublicMsft.json diff --git a/eng/common/TestResources/sub-config/AzurePublicMsft.json b/eng/common/TestResources/sub-config/AzurePublicMsft.json new file mode 100644 index 0000000000..162d14da4e --- /dev/null +++ b/eng/common/TestResources/sub-config/AzurePublicMsft.json @@ -0,0 +1,11 @@ +{ + "SubscriptionId": "2cd617ea-1866-46b1-90e3-fffb087ebf9b", + "TenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "TestApplicationId": "f850650c-1fcf-4489-b46f-71af2e30d360", + "TestApplicationOid": "30511c9d-ba1a-4c7b-b422-5b543da11b3f", + "ProvisionerApplicationId": "f850650c-1fcf-4489-b46f-71af2e30d360", + "ProvisionerApplicationOid": "30511c9d-ba1a-4c7b-b422-5b543da11b3f", + "Environment": "AzureCloud", + "AzureSubscription": "Azure SDK Test Resources", + "EnvironmentVariables": {} +} \ No newline at end of file From 0a24cd6cde4f0e17ee488bc71a915e7fb0ad5516 Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Tue, 28 May 2024 13:24:09 -0700 Subject: [PATCH 7/7] Remove EnvironmentVariables --- eng/common/TestResources/sub-config/AzurePublicMsft.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/eng/common/TestResources/sub-config/AzurePublicMsft.json b/eng/common/TestResources/sub-config/AzurePublicMsft.json index 162d14da4e..78d8a782c2 100644 --- a/eng/common/TestResources/sub-config/AzurePublicMsft.json +++ b/eng/common/TestResources/sub-config/AzurePublicMsft.json @@ -6,6 +6,5 @@ "ProvisionerApplicationId": "f850650c-1fcf-4489-b46f-71af2e30d360", "ProvisionerApplicationOid": "30511c9d-ba1a-4c7b-b422-5b543da11b3f", "Environment": "AzureCloud", - "AzureSubscription": "Azure SDK Test Resources", - "EnvironmentVariables": {} + "AzureSubscription": "Azure SDK Test Resources" } \ No newline at end of file