конечно, просто используйте powershell, что-то вроде этого будет работать (при условии, что вы аутентифицированы на Azure с достаточными разрешениями):
$certPassword = (Get-AzureKeyVaultSecret -VaultName vaultname -Name passwordsecretName).SecretValueText
$certBase64 = (Get-AzureKeyVaultSecret -VaultName vaultname -Name base64secretName).SecretValueText
$body = @{
Name = $certName
CertificateData = @{
HasValue = "True"
NewValue = $certBase64
}
Password = @{
NewValue = $certPassword
}
}
и тогда вы просто позвоните осьминогу api с остальным вызовом:
$datota = @{
Uri = $octopus_uri + "/api/certificates/" + '?skip=0&take=2147483647'
Headers = @{ "X-Octopus-ApiKey" = your_api_key }
ErrorAction = "Stop"
Body = $body | ConvertTo-Json -Depth 4 -Compress
Method = "Post
}
Invoke-RestMethod @datota
вам нужно быть немного умнее, если вы храните сертификаты как сертификаты, а не как строки в кодировке base64. но идея та же
пс. если вы хотите поместить их в наборы переменных, вам просто нужно использовать немного другой вызов rest.
имп. другой вариант, просто используйте сценарий powershell для развертывания шаблона arm, а сценарий powershell извлекает значение KV и передает его в шаблон в качестве параметра