Skip to content

Latest commit

 

History

History
99 lines (85 loc) · 3.36 KB

append-nodes.md

File metadata and controls

99 lines (85 loc) · 3.36 KB

Append additional nodes to the builder

You can append nodes to the builder that is going to be created with the append input in the form of a YAML string document to remove limitations intrinsically linked to GitHub Actions (only string format is handled in the input fields). Following fields are supported:

name: ci

on:
  push:

jobs:
  buildx:
    runs-on: ubuntu-latest
    steps:
      -
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v2
        with:
          append: |
            - endpoint: ssh://me@graviton2
              platforms: linux/arm64
            - endpoint: ssh://foo@linuxone
              driver-opts:
                - image=moby/buildkit:master

In this example, a docker-container builder will be created on the GitHub Runner with a local node and two remote nodes.

To set up the SSH authentication for the remote nodes, you can use the following workflow:

name: ci

on:
  push:

jobs:
  buildx:
    runs-on: ubuntu-latest
    steps:
      -
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v2
        with:
          append: |
            - endpoint: ssh://me@graviton2
              platforms: linux/arm64
            - endpoint: ssh://foo@linuxone
              platforms: linux/s390x
          env:
            BUILDER_NODE_1_AUTH_SSH_PPK: ${{ secrets.GRAVITON2_SSH_PPK }}
            BUILDER_NODE_2_AUTH_SSH_PPK: ${{ secrets.LINUXONE_SSH_PPK }}

Here is another example using only remote nodes with the remote driver:

name: ci

on:
  push:

jobs:
  buildx:
    runs-on: ubuntu-latest
    steps:
      -
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v2
        with:
          driver: remote
          endpoint: tcp://oneprovider:1234
          append: |
            - endpoint: tcp://graviton2:1234
              platforms: linux/arm64
            - endpoint: tcp://linuxone:1234
              platforms: linux/s390x
        env:
          BUILDER_NODE_0_AUTH_TLS_CACERT: ${{ secrets.ONEPROVIDER_CA }}
          BUILDER_NODE_0_AUTH_TLS_CERT: ${{ secrets.ONEPROVIDER_CERT }}
          BUILDER_NODE_0_AUTH_TLS_KEY: ${{ secrets.ONEPROVIDER_KEY }}
          BUILDER_NODE_1_AUTH_TLS_CACERT: ${{ secrets.GRAVITON2_CA }}
          BUILDER_NODE_1_AUTH_TLS_CERT: ${{ secrets.GRAVITON2_CERT }}
          BUILDER_NODE_1_AUTH_TLS_KEY: ${{ secrets.GRAVITON2_KEY }}
          BUILDER_NODE_2_AUTH_TLS_CACERT: ${{ secrets.LINUXONE_CA }}
          BUILDER_NODE_2_AUTH_TLS_CERT: ${{ secrets.LINUXONE_CERT }}
          BUILDER_NODE_2_AUTH_TLS_KEY: ${{ secrets.LINUXONE_KEY }}