51 lines
1.6 KiB
PowerShell
51 lines
1.6 KiB
PowerShell
|
function Get-SecretsForPod {
|
|||
|
<#
|
|||
|
.SYNOPSIS
|
|||
|
Gets Secrets for Pod.
|
|||
|
#>
|
|||
|
|
|||
|
[CmdletBinding()]
|
|||
|
Param(
|
|||
|
[string]$secretUserName,
|
|||
|
[string]$secretPassword,
|
|||
|
[string]$secretDomain,
|
|||
|
[string]$secretFolderNames
|
|||
|
)
|
|||
|
|
|||
|
$client = New-Object Alkami.Ops.SecretServer.Client
|
|||
|
$authResult = $client.AuthenticateAsync($secretUserName, $secretPassword, $secretDomain).GetAwaiter().GetResult()
|
|||
|
|
|||
|
if ($authResult.Status -ne [Alkami.Ops.SecretServer.Enum.ResultStatus]::Success) {
|
|||
|
Write-Warning ("Unable to authenticate with SecretServer: {0}" -f $authResult.Message)
|
|||
|
|
|||
|
if ($authResult.Errors.Count -gt 0) {
|
|||
|
$errors = ("Error(s) from server - " + ($authResult.Errors | Select-Object -ExpandProperty "ErrorMessage") -join ", ")
|
|||
|
Write-Warning -Message $errors
|
|||
|
}
|
|||
|
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
[HashTable]$secrets = $null
|
|||
|
|
|||
|
foreach ($secretFolder in $secretFolderNames.Split(',')) {
|
|||
|
$result = $client.GetFolderSecretsAsync($secretFolder.Trim()).GetAwaiter().GetResult()
|
|||
|
|
|||
|
if ($result.Status -ne [Alkami.Ops.SecretServer.Enum.ResultStatus]::Success) {
|
|||
|
Write-Warning ("Error pulling secrets for {0} from SecretServer: {1}" -f $secretFolder, $secretResult.Message)
|
|||
|
|
|||
|
if ($secretResult.Errors.Count -gt 0) {
|
|||
|
$errors = ("Error(s) from server - " + ($secretResult.Errors | Select-Object -ExpandProperty "ErrorMessage") -join ", ")
|
|||
|
Write-Warning -Message $errors
|
|||
|
}
|
|||
|
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
$secrets += $result.Secrets
|
|||
|
}
|
|||
|
|
|||
|
return $secrets
|
|||
|
}
|
|||
|
|