2

I am using Azure DevOps.

I have 5 Microsoft-hosted agents. And 10 pipelines. One pipeline in particular can get a bit grabby, so I want to restrict it to use just 2 agents.

But I want my other 9 pipelines to have access to the 3 remaining agents.

I figure Agent Pools is the right way to solve this. By default, Azure DevOps sets us up with 1 single "Azure Pipelines" pool with our self-hosted agents. I would like to split this into 2 pools.

However, when I go to "create new pool" I only get the option to add "self-hosted" agents.

How do I create a new Agent Pool with some of my existing Microsoft-hosted agents?

1

This is a good question because you would assume you could do what you are after, but as far as I know you can't yet. From the docs on sharing of parallel jobs across projects in a collection

Currently, there isn't a way to partition or dedicate parallel job capacity to a specific project or agent pool.

I considered trying to do buckets via capabilities on a subset of my agents, and then companion demands in the pipelines, but that will not work either because hosted pipelines don't work with demands.

In my case we had some greedy pipelines that fan out into multiple parallel jobs, that we had to update to run sequentially with dependsOn for each job. I think if your case is relatively simple you could potentially check the queue length or number of running builds in a first stage but that could get complex and might be tough to scale.

Hopefully this feature gets added soon. I will look to see if I can find one to vote up on the developer community forums. I am also interested in other ideas on how to solve for this issue!

Edit found a feature vote on it here

  • +1 for the feature voting link! – dbJones Jan 31 '20 at 21:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.