如何使用REST API在Azure DevOps环境中正确创建Kubernetes资源?

问题描述 投票:0回答:1

我正在尝试使用 Rest api 在 Azure DevOps 门户中创建 Kubernetes 资源(通用提供程序),但没有成功。另一方面,我已经正确创建了 Kubernetes 服务连接,我想将其与该资源连接。当我在门户中手动执行此操作时,效果很好。 文档:https://learn.microsoft.com/en-us/rest/api/azure/devops/distributedtask/kubernetes/add?view=azure-devops-rest-7.1&viewFallbackFrom=azure-devops-rest-7.2# kubernetes资源

首先困扰我的是,我不知道如何将参数作为服务器 URL 或秘密传递。仅使用主体的基本参数创建时 - 我只得到:screenshot

有人遇到过类似的事情吗?或者有什么建议吗?先感谢您。 这是代码:

$body = @{
clusterName       = $clusterName
name              = $resourceName
namespace         = $namespace
serviceEndpointId = $serviceConnectionId
} | ConvertTo-Json\`your text

$headers = @{
Authorization  = "Basic " + \[Convert\]::ToBase64String(\[Text.Encoding\]::ASCII.GetBytes(":$($personalAccessToken)"))
"Content-Type" = "application/json"
}

$createNewResourceUri = "<https://dev.azure.com/$organization/$project/_apis/pipelines/environments/$environmentId/providers/kubernetes?api-version=7.2-preview.2>"

Invoke-RestMethod -Uri $createNewResourceUri -Headers $headers -Method POST -Body $body

我尝试了几种可能的正文选项,在手动装箱时检查了 API 的 Web 检查器,但我无法使其工作。

azure-devops azure-devops-rest-api
1个回答
0
投票

这是我的示例,供您参考将 K8S 资源添加到我的环境中。

$clusterName = "azxxxxcluster"
$resourceName = "dev"
$namespace = "dev"
$serviceConnectionId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$organization = "ADOOrgName"
$project = "TheProjectName"
$environmentId = 44
$MyPat = 'xxxxxxxx'
$B64Pat = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":$MyPat"))

$body = @{
    clusterName       = $clusterName
    name              = $resourceName
    namespace         = $namespace
    serviceEndpointId = $serviceConnectionId
}

$headers = @{
    'Authorization'  = 'Basic ' + $B64Pat
    'Content-Type' = 'application/json'
}

$createNewResourceUri = "https://dev.azure.com/$organization/$project/_apis/pipelines/environments/$environmentId/providers/kubernetes?api-version=7.2-preview.2"

Invoke-RestMethod -Uri $createNewResourceUri -Headers $headers -Method POST -Body ($body | ConvertTo-Json)

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.