Hi,
We're setting up the Bitbucket Pipelines self-hosted runners autoscaler in our Kubernetes environment. We're authenticating using OAuth credentials (BITBUCKET_OAUTH_CLIENT_ID
and BITBUCKET_OAUTH_CLIENT_SECRET
), not an app password.
permissions:
In the autoscaler config (runners_config.yaml
), we're required to specify the workspace
field using the workspace UUID. The documentation or inline comments suggest using the UUID with curly braces, like this:
workspace: "{fb1c32a0-xxxx-416a-xxxx-XXXXXXXXXXX}"
The errors in the logs are:
INFO: Config file provided /opt/conf/config/runners_config.yaml.
INFO: File /opt/conf/job_template/job.yaml.template copied to /home/bitbucket/autoscaler/resources/job.yaml.template
INFO: Autoscaler config: constants=Constants(default_sleep_time_runner_setup=10, default_sleep_time_runner_delete=5, runner_api_polling_interval=600, runner_cool_down_period=300) groups=[GroupData(workspace=NameUUIDData(name='xxxxx', uuid='{fb1c32a0-xxxx-416a-xxxx-xxxxxxxxxx}'), name='Runners xxxxx', namespace='bitbucket-runner-xxxx', strategy='percentageRunnersIdle', repository=None, labels={'linux', 'self.hosted', 'autoscaler.created'}, parameters=PctRunnersIdleParameters(min=1, max=10, scale_up_threshold=0.5, scale_down_threshold=0.2, scale_up_multiplier=1.5, scale_down_multiplier=0.5), resources=KubernetesJobResources(requests=MemoryCPUData(memory='4Gi', cpu='1000m'), limits=MemoryCPUData(memory='4Gi', cpu='1000m')))]
INFO: Autoscaler runners: [GroupData(workspace=NameUUIDData(name='XXX', uuid='{XXXX-ac31-416a-857f-e6c7414a7668}'), name='Runners xxxx', namespace='bitbucket-runner-xxxx', strategy='percentageRunnersIdle', repository=None, labels={'linux', 'self.hosted', 'autoscaler.created'}, parameters=PctRunnersIdleParameters(min=1, max=10, scale_up_threshold=0.5, scale_down_threshold=0.2, scale_up_multiplier=1.5, scale_down_multiplier=0.5), resources=KubernetesJobResources(requests=MemoryCPUData(memory='4Gi', cpu='1000m'), limits=MemoryCPUData(memory='4Gi', cpu='1000m')))]
INFO: [Runners xxx] Working on runner group: workspace=NameUUIDData(name='XXXX', uuid='{fb1c32a0-xxxx-416a-xxxx-xxxxxxxxxxx}') name='Runners xxxx' namespace='bitbucket-runner-xxxxxx' strategy='percentageRunnersIdle' repository=None labels={'linux', 'self.hosted', 'autoscaler.created'} parameters=PctRunnersIdleParameters(min=1, max=10, scale_up_threshold=0.5, scale_down_threshold=0.2, scale_up_multiplier=1.5, scale_down_multiplier=0.5) resources=KubernetesJobResources(requests=MemoryCPUData(memory='4Gi', cpu='1000m'), limits=MemoryCPUData(memory='4Gi', cpu='1000m'))
INFO: [Runners xxx] Getting bitbucket-runner-xxxxx namespace in Kubernetes...
INFO: [Runners xxx] Namespace bitbucket-runner-xxxxx found.
INFO: [Runners xxx] Getting runners on Bitbucket workspace: xxxx ...
Traceback (most recent call last):
File "/home/bitbucket/autoscaler/clients/base.py", line 36, in make_http_request
response.raise_for_status()
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 1021, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://api.bitbucket.org/internal/workspaces/%7Bfb1c32a0-xxxx-xxxx-857f-xxxxxxxxx%7D/pipelines-config/runners?pagelen=100
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/bitbucket/autoscaler/start.py", line 91, in <module>
main()
File "/home/bitbucket/autoscaler/start.py", line 87, in main
poller.start()
File "/home/bitbucket/autoscaler/start.py", line 47, in start
fut.result()
File "/usr/local/lib/python3.10/concurrent/futures/_base.py", line 451, in result
return self.__get_result()
File "/usr/local/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result
raise self._exception
File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/home/bitbucket/autoscaler/strategy/pct_runners_idle.py", line 78, in process
self.run()
File "/home/bitbucket/autoscaler/strategy/pct_runners_idle.py", line 168, in run
runners = self.get_runners()
File "/home/bitbucket/autoscaler/strategy/pct_runners_idle.py", line 82, in get_runners
return self.runner_service.get_bitbucket_runners(self.runner_data.workspace, self.runner_data.repository)
File "/home/bitbucket/autoscaler/services/bitbucket.py", line 33, in get_bitbucket_runners
runners = workspace_runner_api.get_runners(workspace.uuid)
File "/home/bitbucket/autoscaler/clients/bitbucket/base.py", line 119, in get_runners
runners_part, _ = self.make_http_request(url)
File "/home/bitbucket/autoscaler/clients/base.py", line 40, in make_http_request
raise AutoscalerHTTPError(response.text, status_code=response.status_code)
autoscaler.core.exceptions.AutoscalerHTTPError: Status code: 404. {"type": "error", "error": {"message": "Resource not found"}}
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.