Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

bitbucket pipelines with Azure (self-hosted) runner

Alex Perez
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
November 25, 2025

Hi there

We are transitioning from an on-prem jenkins to bitbucket pipelines. We are interested in providing our own azure (self-hosted) runners and using our VM templates to take advantage of Azure Spot VM discounts.

 

Currently we're using this plugin from jenkins: 

https://plugins.jenkins.io/azure-vm-agents/ where you can define a fleet of runners. In short: When a new build is triggered, if the label matches the defined fleet, the plugin creates a new azure VM, and configured it as a jenkins worker. After the job is executed, the VM is terminated.

 

I have been reviewing bitbucket pipes related to Azure and basically there are:

az cli: it could work, but its way too generic compared to my use case.

azure webapps: aimed to deploy to an azure app (unrelated to my use case)

azure AKS / helm: we're not yet using AKS, just using regular VMs for now. This is the desired long-term solution, but unfortunatelly we work with a lot of windows-based software and windows containers are a kind of tricky

 

Desired scenario:

When a pipeline in executed, a new Azure VM is provisioned and registered as bitbucket runner. the execution takes place in that runner. When the execution is finished, the runner is unregistered and the VM is destroyed.

 

Anyone faced this situation before? Ideally we can manage a set of runner templates using Azure Gallery Image and related services ..

1 answer

1 vote
Xavier Fernandez
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
November 25, 2025

Hi,

We are facing the exact same frustration here and are actively looking for a workaround to cover our needs.

Like you, our long-term plan is to move to Kubernetes, but for now, we are stuck manually starting and stopping our persistent runners. It is definitely not the most efficient approach.

To be honest, I’m quite surprised that while Jenkins has established plugins for this, and both GitHub and GitLab offer native solutions for ephemeral runners, Bitbucket seems to fall short here. It's hard to believe I can't find any supported solution in the documentation (other than Kubernetes) for such a standard requirement.

Regards,

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events