我们的 Azure DevOps 构建代理是在 Kubernetes 上设置的。失败的 pod 可以很容易地从 kube 中删除,但它们在 Azure DevOps Web UI 中显示为“离线”代理。
加班线下代理的名单真的很长。有没有办法以编程方式删除它们?
我们的 Azure DevOps 构建代理是在 Kubernetes 上设置的。失败的 pod 可以很容易地从 kube 中删除,但它们在 Azure DevOps Web UI 中显示为“离线”代理。
加班线下代理的名单真的很长。有没有办法以编程方式删除它们?
$agents = Invoke-RestMethod -uri 'http://dev.azure.com/{organization}/_apis/distributedtask/pools/29/agents' -Method Get -UseDefaultCredentials
$agents.value |
Where-Object { $_.status -eq 'offline' } |
ForEach-Object {
Invoke-RestMethod -uri "http://dev.azure.com/{organization}/_apis/distributedtask/pools/29/agents/$($_.id)?api-version=4.1" -Method Delete -UseDefaultCredentials
}
此解决方案的一些假设:
注意: 我使用的是 Azure DevOps Server,因此请-UseDefaultCredentials
用您的授权替换。
或者您可以为代理使用一些命名矩阵,因此即使不是同一个容器,它们也使用相同的“名称”。
https://github.com/julioct/azure-pipelines-kubernetes-agents