Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to resolve "No hosted parallelism has been purchased or granted" in free tier?

I've just started with Azure DevOps pipelines and just created a very simple pipeline with a Maven task. For now I don't care for parallelism and I'm not sure in which way I've added it to my pipeline. Is there any way to use the Maven task on the free tier without parallelism?

This is my pipeline:

 trigger:
 - master
    
 pool:
   vmImage: ubuntu-latest
    
 steps:
 - task: Maven@3

My thought was that tasks are always parallel? Other than that I cannot see where's the parallel step.

like image 763
Apollo Avatar asked Jul 16 '21 07:07

Apollo


People also ask

How is azure DevOps billed?

All charges appear on your monthly Azure bill. Azure supports payment by credit card and invoiced billing through the Enterprise Agreement (EA), Cloud Solution Providers (CSP), and more. Make purchases for Azure DevOps Server on your monthly Azure bill.


5 Answers

First - tasks are always executed sequentially. And 1 sequential pipeline is documented as "1 parallel agent", yes naming could be better. Due to the changes laid out below new accounts now get zero parallel agents, and a manual request must be made to get the previous default of 1 parallel pipeline and the free build minutes.

See this:

We have temporarily disabled the free grant of parallel jobs for public projects and for certain private projects in new organizations. However, you can request this grant by submitting a request. Existing organizations and projects are not affected. Please note that it takes us 2-3 business days to respond to your free tier requests.

More background information on why these limitations are in play:

  • Change in Azure Pipelines Grant for Private Projects
  • Change in Azure Pipelines Grant for Public Projects
  • Changes to Azure Pipelines free grants

TLDR; People were using automation to spin up 1000's of Azure DevOps organizations, adding a pipeline and using the service to send spam, mine bitcoin or for other nefarious purposes. The fact that they could do so free, quick and without any human intervention was a burden on the team. Automatic detection of nefarious behavior proved hard and turned into an endless cat-and-mouse game. The manual step a necessary evil that has put a stop to this abuse and is in no way meant as a step towards further monetization of the service. It's actually to ensure a free tier remains something that can be offered to real peopjle like you and me,

like image 170
Krzysztof Madej Avatar answered Oct 22 '22 04:10

Krzysztof Madej


This is absurd. 'Free-tier' is not entirely free unless you request again!

Best Option: Use self-hosted pool. It can be your laptop where you would like to run tests.

MS azure doc here

enter image description here

and use above pool in YAML file

pool: MyPool

Alternatively

Request access to MS:

Folks, you can request here. Typically it get approved in a day or two.

##[error]No hosted parallelism has been purchased or granted. To request a free parallelism grant, please fill out the following form https://aka.ms/azpipelines-parallelism-request
like image 29
Digital_Reality Avatar answered Oct 22 '22 06:10

Digital_Reality


The simplest solution is to change the project from public to private so that you can use the free pool. Private projects have a free pool by default.

Consider using a self hosted pool on your machine as suggested otherwise.

Here's the billing page. enter image description here

like image 3
Marothi Codes Avatar answered Oct 22 '22 05:10

Marothi Codes


If you're using a recent version of MacOS with Gatekeeper, this "security enhancement" is a serious PITA for the unaware as you get 100s of errors where each denied assembly has to be manually allowed in Security.

Don't do that.

After downloading the agent file from DevOps and BEFORE you unzip the file, run this command on it. This will remove the attribute that triggers the errors and will allow you to continue uninterrupted.

xattr -c vsts-agent-osx-x64-V.v.v.tar.gz  ## replace V.v.v with the version in the filename downloaded.

# then unpack the gzip tar file normally:

tar xvfz vsts-agent-osx-x64-V.v.v.tar.gz

Here are all the steps you need to run, including the above, so that you can move past the "hosted parallelism" issue and continue testing immediately, either while you are waiting for authorization or to skip it entirely.

  1. Go to Project settings -> Agent pools

  2. Create new Agent pool, call it "local" (Call it whatever you want, or you can also do this in the Default agent pool)

  3. Add a new Agent and follow the instructions which will include downloading the Agent for your OS (MacOS here).

  4. Run xattr -c vsts-agent-osx-x64-V.v.v.tar.gz on the downloaded file to remove the Gatekeeper security issues.

  5. Unzip the archive with tar xvfz vsts-agent-osx-x64-V.v.v.tar.gz

  6. cd into the archive directory and type ./config.sh Here the most important configuration option is Server URL which will be https://dev.azure.com/{organization name} Defaults are fine for the rest. Continue until you are back at the command prompt. At this point, if you were to look inside DevOps either in your new agent pool or Default (depending on where you put it) You'll see your new agent as "offline" so run:

  7. ./run.sh which will bring your agent online. Your agent is now running and listening for you to start your job. Note this will tie up your terminal window.

  8. Finally, in your pipeline YAML file configure your job to use your local agent by specifying the name of the agent pool where the self-hosted agent resides, like so:

    trigger:
    - main
    
    pool:
      name: local
    #pool:
    #  vmImage: ubuntu-latest
like image 1
user658182 Avatar answered Oct 22 '22 06:10

user658182


I faced the same issue. I changes the project visibility from Public to Private and then it worked. No requirement to fill a form or to purchase anything.

Best Regards, Hitesh

like image 1
Hitesh Avatar answered Oct 22 '22 06:10

Hitesh