*: enable ARM64 runner

There are many Kubernetes clusters running on ARM64. Enable ARM64 runner
is to commit to support ARM64 platform officially.

Signed-off-by: Wei Fu <fuweid89@gmail.com>
This commit is contained in:
Wei Fu 2023-12-07 23:55:36 +08:00
parent a68efb1bad
commit cb5a48e645
3 changed files with 23 additions and 6 deletions

View File

@ -28,7 +28,7 @@ jobs:
strategy: strategy:
matrix: matrix:
os: [ubuntu-22.04, macos-12, windows-2019] os: [ubuntu-22.04, actuated-arm64-4cpu-16gb, macos-12, windows-2019]
steps: steps:
- uses: actions/setup-go@v4 - uses: actions/setup-go@v4
@ -208,7 +208,7 @@ jobs:
strategy: strategy:
matrix: matrix:
os: [ubuntu-22.04, macos-12, windows-2019, windows-2022] os: [ubuntu-22.04, actuated-arm64-4cpu-16gb, macos-12, windows-2019, windows-2022]
go-version: ["1.20.12", "1.21.5"] go-version: ["1.20.12", "1.21.5"]
steps: steps:
- uses: actions/setup-go@v4 - uses: actions/setup-go@v4
@ -396,7 +396,7 @@ jobs:
integration-linux: integration-linux:
name: Linux Integration name: Linux Integration
runs-on: ubuntu-22.04 runs-on: ${{ matrix.os }}
timeout-minutes: 40 timeout-minutes: 40
needs: [project, linters, protos, man] needs: [project, linters, protos, man]
@ -406,6 +406,7 @@ jobs:
runtime: runtime:
- io.containerd.runc.v2 - io.containerd.runc.v2
runc: [runc, crun] runc: [runc, crun]
os: [ubuntu-22.04, actuated-arm64-4cpu-16gb]
env: env:
GOTEST: gotestsum -- GOTEST: gotestsum --
@ -422,7 +423,7 @@ jobs:
RUNC_FLAVOR: ${{ matrix.runc }} RUNC_FLAVOR: ${{ matrix.runc }}
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y gperf sudo apt-get install -y gperf dmsetup strace xfsprogs
script/setup/install-seccomp script/setup/install-seccomp
script/setup/install-runc script/setup/install-runc
script/setup/install-cni $(grep containernetworking/plugins go.mod | awk '{print $2}') script/setup/install-cni $(grep containernetworking/plugins go.mod | awk '{print $2}')
@ -430,6 +431,10 @@ jobs:
script/setup/install-failpoint-binaries script/setup/install-failpoint-binaries
- name: Install criu - name: Install criu
# NOTE: Required actuated enable CONFIG_CHECKPOINT_RESTORE
#
# REF: https://criu.org/Linux_kernel
if: matrix.os != 'actuated-arm64-4cpu-16gb'
run: | run: |
sudo add-apt-repository -y ppa:criu/ppa sudo add-apt-repository -y ppa:criu/ppa
sudo apt-get update sudo apt-get update
@ -514,7 +519,9 @@ jobs:
losetup -l losetup -l
- name: Kernel Message - name: Kernel Message
if: failure() if: failure()
run: sudo dmesg -T -f kern run: |
sudo lsmod
sudo dmesg -T -f kern
- uses: actions/upload-artifact@v3 - uses: actions/upload-artifact@v3
if: always() if: always()

View File

@ -23,6 +23,7 @@ import (
"syscall" "syscall"
"testing" "testing"
kernel "github.com/containerd/containerd/v2/contrib/seccomp/kernelversion"
"github.com/containerd/continuity/testutil" "github.com/containerd/continuity/testutil"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"golang.org/x/sys/unix" "golang.org/x/sys/unix"
@ -45,6 +46,13 @@ var (
func TestGetUsernsFD(t *testing.T) { func TestGetUsernsFD(t *testing.T) {
testutil.RequiresRoot(t) testutil.RequiresRoot(t)
k512 := kernel.KernelVersion{Kernel: 5, Major: 12}
ok, err := kernel.GreaterEqualThan(k512)
require.NoError(t, err)
if !ok {
t.Skip("GetUsernsFD requires kernel >= 5.12")
}
t.Run("basic", testGetUsernsFDBasic) t.Run("basic", testGetUsernsFDBasic)
t.Run("when kill child process before write u[g]id maps", testGetUsernsFDKillChildWhenWriteUGIDMaps) t.Run("when kill child process before write u[g]id maps", testGetUsernsFDKillChildWhenWriteUGIDMaps)

View File

@ -25,7 +25,9 @@ script_dir="$(cd -- "$(dirname -- "$0")" > /dev/null 2>&1; pwd -P)"
# e2e will fail with "sudo: command not found" # e2e will fail with "sudo: command not found"
SUDO='' SUDO=''
if (( $EUID != 0 )); then if (( $EUID != 0 )); then
SUDO='sudo' # The actuated ARM64 env needs PATH=$PATH to get `go` path. Otherwise
# `make install` recipe will fail.
SUDO="sudo -E PATH=$PATH"
fi fi
cd "$(go env GOPATH)" cd "$(go env GOPATH)"