Nos agents de build Azure DevOps sont configurés sur Kubernetes. Les pods ayant échoué peuvent facilement être supprimés de kube, mais ils apparaissent comme des agents «hors ligne» de l'interface utilisateur Web Azure DevOps.
Avec le temps, la liste des agents hors ligne est devenue très longue. Existe-t-il un moyen de les supprimer par programmation?
3 Réponses :
Je pense que vous auriez besoin d'utiliser une combinaison de ces 2 appels API:
Je ne sais pas comment obtenir un identifiant de groupe de déploiement, alors j'ai essayé de les lister, cela est revenu avec 0 résultats: \
hm, essayez agentclouds obtenir ou lister
ça renvoie un 404
$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 } Some assumptions for this solution: You are looking for build agents You know the id of the pool you are looking for already. You can get to this programatically also, or just loop through all pools if you want You don't have any issues deleting any offline agents Note: I'm using Azure DevOps Server, so replace the -UseDefaultCredentials with your authorization.
Ou vous pouvez utiliser une matrice de dénomination pour les agents, afin qu'ils utilisent le même "nom" même s'il ne s'agit pas du même conteneur.
https://github.com/julioct/azure-pipelines-kubernetes-agents
en relation: stackoverflow.com/questions/54206874/...