tools/e2etesting/SetKeyVaultSecrets.ps1 (55 lines of code) (raw):
Param(
[string] $KeyVaultName,
[string] $ImageTag,
[string] $ImageNamespace,
[string] $ContainerRegistryServer,
[string] $ContainerRegistryUsername,
[string] $ContainerRegistryPassword
)
# Stop execution when an error occurs.
$ErrorActionPreference = "Stop"
if (!$KeyVaultName) {
Write-Error "KeyVaultName not set."
}
if (!$ImageTag) {
$ImageNamespace = "latest"
}
if (!$ImageNamespace) {
$ImageNamespace = ""
}
if (!$ContainerRegistryServer) {
$ContainerRegistryServer = "mcr.microsoft.com"
}
if (!$ContainerRegistryUsername) {
$ContainerRegistryUsername = ""
}
if (!$ContainerRegistryPassword) {
$ContainerRegistryPassword = ""
}
## Login if required
Write-Host "Getting Azure Context..."
$context = Get-AzContext
if (!$context) {
Write-Host "Logging in..."
Login-AzAccount -Tenant $TenantId
$context = Get-AzContext
}
## Ensure KeyVault
$resourceGroup = (Get-AzResource -Name $KeyVaultName).ResourceGroupName
$keyVault = Get-AzKeyVault -ResourceGroupName $resourceGroup -VaultName $KeyVaultName
Write-Host "Adding/Updating KeyVault-Secrets..."
[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingConvertToSecureStringWithPlainText", "")]
$secret = ConvertTo-SecureString $ContainerRegistryServer -AsPlainText -Force
Set-AzKeyVaultSecret -VaultName $keyVault.VaultName -Name 'PCS-DOCKER-SERVER' -SecretValue (ConvertTo-SecureString $ContainerRegistryServer -AsPlainText -Force) | Out-Null
[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingConvertToSecureStringWithPlainText", "")]
$secret = ConvertTo-SecureString $ContainerRegistryUsername -AsPlainText -Force
Set-AzKeyVaultSecret -VaultName $keyVault.VaultName -Name 'PCS-DOCKER-USER' -SecretValue (ConvertTo-SecureString $ContainerRegistryUsername -AsPlainText -Force) | Out-Null
[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingConvertToSecureStringWithPlainText", "")]
$secret = ConvertTo-SecureString $ContainerRegistryPassword -AsPlainText -Force
Set-AzKeyVaultSecret -VaultName $keyVault.VaultName -Name 'PCS-DOCKER-PASSWORD' -SecretValue (ConvertTo-SecureString $ContainerRegistryPassword -AsPlainText -Force) | Out-Null
[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingConvertToSecureStringWithPlainText", "")]
$secret = ConvertTo-SecureString $ImageNamespace -AsPlainText -Force
Set-AzKeyVaultSecret -VaultName $keyVault.VaultName -Name 'PCS-IMAGES-NAMESPACE' -SecretValue (ConvertTo-SecureString $ImageNamespace -AsPlainText -Force) | Out-Null
[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingConvertToSecureStringWithPlainText", "")]
$secret = ConvertTo-SecureString $ImageTag -AsPlainText -Force
Set-AzKeyVaultSecret -VaultName $keyVault.VaultName -Name 'PCS-IMAGES-TAG' -SecretValue (ConvertTo-SecureString $ImageTag -AsPlainText -Force) | Out-Null