libbpf / ci

BPF CI
Other
7 stars 22 forks source link

[s390x] Use `aptman/qus` instead of `multiarch/qemu-user-static` #85

Closed chantra closed 1 year ago

chantra commented 1 year ago

multiarch/qemu-user-static does not support hosts other than x86_64. aptman/qus does. The command syntax is slightly different though.

This change update the systemd resource to:

To test, I confirmed that after using this new container, we could still run x86_64 containers in s390x hosts:

Before:

linux1@bpf-ci-runner-s390x-2:~$ sudo docker exec -ti 112b682130e9 bash
root@112b682130e9:/actions-runner# /usr/x86_64-linux-gnu/bin/ls
_diag  bin  config.sh  env.sh  externals  run-helper.cmd.template
run-helper.sh.template  run.sh  safe_sleep.sh  svc.sh

Updated systemd resource and restarted it:

linux1@bpf-ci-runner-s390x-2:~$ sudo systemctl status
qemu-user-static.service
● qemu-user-static.service - Support for transparent execution of
non-native binaries with QEMU user emulation
     Loaded: loaded (/etc/systemd/system/qemu-user-static.service;
enabled; vendor preset: enabled)
     Active: active (exited) since Mon 2023-02-06 21:47:14 UTC; 7s ago
    Process: 2761053 ExecStartPre=/usr/bin/docker run --rm --interactive
--privileged aptman/qus -s -- -r (code=exited, status=0/SUCCESS)
    Process: 2761265 ExecStart=/usr/bin/docker run --rm --interactive
--privileged aptman/qus -s -- -p (code=exited, status=0/SUCCESS)
   Main PID: 2761265 (code=exited, status=0/SUCCESS)

Feb 06 21:47:12 bpf-ci-runner-s390x-2 docker[2761265]: Setting
/qus/bin/qemu-riscv32-static as binfmt interpreter for riscv32
Feb 06 21:47:12 bpf-ci-runner-s390x-2 docker[2761265]: Setting
/qus/bin/qemu-riscv64-static as binfmt interpreter for riscv64
Feb 06 21:47:12 bpf-ci-runner-s390x-2 docker[2761265]: Setting
/qus/bin/qemu-xtensa-static as binfmt interpreter for xtensa
Feb 06 21:47:12 bpf-ci-runner-s390x-2 docker[2761265]: Setting
/qus/bin/qemu-xtensaeb-static as binfmt interpreter for xtensaeb
Feb 06 21:47:12 bpf-ci-runner-s390x-2 docker[2761265]: Setting
/qus/bin/qemu-microblaze-static as binfmt interpreter for microblaze
Feb 06 21:47:12 bpf-ci-runner-s390x-2 docker[2761265]: Setting
/qus/bin/qemu-microblazeel-static as binfmt interpreter for microblazeel
Feb 06 21:47:12 bpf-ci-runner-s390x-2 docker[2761265]: Setting
/qus/bin/qemu-or1k-static as binfmt interpreter for or1k
Feb 06 21:47:12 bpf-ci-runner-s390x-2 docker[2761265]: Setting
/qus/bin/qemu-x86_64-static as binfmt interpreter for x86_64
Feb 06 21:47:12 bpf-ci-runner-s390x-2 docker[2761265]: Setting
/qus/bin/qemu-hexagon-static as binfmt interpreter for hexagon
Feb 06 21:47:14 bpf-ci-runner-s390x-2 systemd[1]: Finished Support for
transparent execution of non-native binaries with QEMU user emulation.
linux1@bpf-ci-runner-s390x-2:~$ sudo docker exec -ti 112b682130e9 bash
root@112b682130e9:/actions-runner# /usr/x86_64-linux-gnu/bin/ls
_diag  bin  config.sh  env.sh  externals  run-helper.cmd.template
run-helper.sh.template  run.sh  safe_sleep.sh  svc.sh

Signed-off-by: Manu Bretelle chantr4@gmail.com