Ability to mount custom volumes in self hosted pipelines runner into a build container

Aaron.Luo March 3, 2022

Hi Atlassian Community:

We are running self hosted pipelines runner in GKE cluster. We need to pull/push docker images from/to "gcr.io" in a pipeline.

In GKE cluster, we use Kubernetes Service Account + GKE workload identity to allow an application (Kubernetes POD) to be able to access GCP services/resources, including logging in to gcr.io. This is a regular and recommended way to authorise applications to access services/resources in GCP (and AWS/Azure) cloud environment, and it's safer than using a static service account key file or credentials.

With Kubernetes Service Account + GKE Workload Identity, we can login to “gcr.io” in the bitbucket-pipelines-runner and docker:dind containers of a POD. But a build container which is started by bitbucket-pipelines-runner runs as docker in docker. The build container couldn’t access the mounted service account token in bitbucket-pipelines-runner container (i.e. “/var/run/secrets/kubernetes.io/serviceaccount”). As the result, we won’t be able to login to gcr.io within the build container and “docker build/pull/push” in a pipeline fails.

If we could have an ability to mount “/var/run/secrets/kubernetes.io/serviceaccount” into the build container, the issue would be solved.

With this ability, we may also pass some environment related variables into the build container by mounting file(s) without defining them in Bitbucket Cloud workspace/repository variables separately. 

I raised a feature request (https://jira.atlassian.com/browse/BCLOUD-21738) for this. Not sure what's the process for this feature request being picked up?

 

Regards,

Aaron

2 comments

leviblugato September 8, 2022

any news about it ?

Guillaume Brunel March 8, 2023

We are also interested by this feature request. We have on-prem cluster which require to refresh token every 12h max so we cannot store docker config.
Best is (as suggested by author) to add on our side a `serviceAccount` with required perms to bitbucket-runner pod and that you add a mechanism to mount it within DinD containers.

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events