-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Set up remote builders #23
Conversation
Looks good:
|
Outch:
As we are building with a matrix, a buildkit container is created for each of them. Performance wise this is not good. Maybe the remote driver would be nice for this. cc @jedevc |
Ok managed to use the remote driver instead of docker-container one:
Still hacky atm, will work on adding append support to |
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Added LinuxONE s390x remote builder too (thanks @sam-thibault):
Only PowerPC go through QEMU atm. |
name: 'Setup remote builder' | ||
description: 'Composite action to set up BuildKit remote builder' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we split this out into a separate action at some point? It seems fairly generic, and could be useful 👀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes I planned to move that to setup-buildx-action
at some point but pure typescript. I'm still thinking of how to handle authentication for the protocols we currently support like ssh://
and tcp://
.
@jedevc Opened several PRs in setup-buildx repo to add support for appending additional nodes to the builder and also authentication:
Step would look like this: -
name: Set up Docker Buildx
uses: crazy-max/docker-setup-buildx-action@append
with:
driver: remote
endpoint: docker-container://buildx_buildkit_${{ steps.builder.outputs.name }}0
append: |
- name: aws_graviton2
endpoint: tcp://${{ secrets.AWS_ARM64_HOST }}:1234
platforms: darwin/arm64,linux/arm64,linux/arm/v5,linux/arm/v6,linux/arm/v7,windows/arm64
- name: linuxone_s390x
endpoint: tcp://${{ secrets.LINUXONE_S390X_HOST }}:1234
platforms: linux/s390x
env:
BUILDER_NODE_1_AUTH_TLS_CACERT: ${{ secrets.AWS_ARM64_CACERT }}
BUILDER_NODE_1_AUTH_TLS_CERT: ${{ secrets.AWS_ARM64_CERT }}
BUILDER_NODE_1_AUTH_TLS_KEY: ${{ secrets.AWS_ARM64_KEY }}
BUILDER_NODE_2_AUTH_TLS_CACERT: ${{ secrets.LINUXONE_S390X_CACERT }}
BUILDER_NODE_2_AUTH_TLS_CERT: ${{ secrets.LINUXONE_S390X_CERT }}
BUILDER_NODE_2_AUTH_TLS_KEY: ${{ secrets.LINUXONE_S390X_KEY }} |
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax crazy-max@users.noreply.github.com