Skip to content

Use buildbox-casd as remote execution proxy#1926

Merged
juergbi merged 3 commits intomasterfrom
juerg/re-proxy
Jul 5, 2024
Merged

Use buildbox-casd as remote execution proxy#1926
juergbi merged 3 commits intomasterfrom
juerg/re-proxy

Conversation

@juergbi
Copy link
Contributor

@juergbi juergbi commented Jun 22, 2024

buildbox-casd is already used as CAS and RA proxy. Using buildbox-casd for all remote connections aims to improve robustness (e.g., consistent retry behavior) and enables support for token-based authentication (#1913).

This depends on BuildBox 1.2.6+ for the remote execution proxy to be used. However, BuildStream will fall back to direct gRPC connections if buildbox-casd doesn't support execution remotes.

@gtristan
Copy link
Contributor

gtristan commented Jul 5, 2024

How does this factor into the remote service tests ?

It looks like ci.buildgrid.yml is using nightly buildbox from registry.gitlab.com/buildgrid/buildgrid.hub.docker.com/buildbox:nightly

Does this mean that this new codepath will be exercised in the buildgrid test with BuildBox 1.2.6+ in that image ?

Should we EOL the older codepaths eventually and just have a hard dependency on BuildBox 1.2.6+ ? Maybe in 6 months ? Or should we extend the tests to ensure that we run them with older buildbox ?

@juergbi
Copy link
Contributor Author

juergbi commented Jul 5, 2024

It looks like ci.buildgrid.yml is using nightly buildbox from registry.gitlab.com/buildgrid/buildgrid.hub.docker.com/buildbox:nightly

That's used for the worker container, which is not relevant to this PR.

buildbox-casd used by BuildStream CI on the client side is taken from https://gitlab.com/BuildStream/buildstream-docker-images/, which uses the latest release from https://gitlab.com/BuildGrid/buildbox/buildbox-integration/.

However, BuildStream CI uses a manually updated version from buildstream-docker-images, so this is actually still running with an old version of BuildBox. I'll push a commit to update the image for CI. (I did run the BuildStream BuildGrid tests locally with both older and updated BuildBox).

Should we EOL the older codepaths eventually and just have a hard dependency on BuildBox 1.2.6+ ? Maybe in 6 months ?

I think so, yes. I'd like to require BuildBox 1.2.8+ after some grace period to also ensure buildbox-run-bubblewrap drops all Linux capabilities (only relevant when running bst as privileged user) and include support for access tokens.

juergbi added 2 commits July 5, 2024 09:28
buildbox-casd is already used as CAS and RA proxy. Using buildbox-casd
for all remote connections aims to improve robustness (e.g., consistent
retry behavior) and enables support for token-based authentication.
@gtristan
Copy link
Contributor

gtristan commented Jul 5, 2024

I think so, yes. I'd like to require BuildBox 1.2.8+ after some grace period to also ensure buildbox-run-bubblewrap drops all Linux capabilities (only relevant when running bst as privileged user) and include support for access tokens.

+1

Copy link
Contributor

@gtristan gtristan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM :)

@juergbi juergbi merged commit f2db8fb into master Jul 5, 2024
@juergbi juergbi deleted the juerg/re-proxy branch July 5, 2024 08:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants