Skip to content

Commit b1c44ba

Browse files
fix(ci): preserve KVM access across udev restarts
Signed-off-by: Matthew Grossman <[email protected]>
1 parent 02e890c commit b1c44ba

1 file changed

Lines changed: 23 additions & 15 deletions

File tree

‎.github/workflows/e2e-test.yml‎

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -305,21 +305,6 @@ jobs:
305305
with:
306306
artifact-name: ${{ inputs.vm-driver-artifact-name }}
307307

308-
- name: Enable KVM access
309-
run: |
310-
set -euo pipefail
311-
if [[ ! -c /dev/kvm ]]; then
312-
echo "::error::The GitHub-hosted runner did not expose /dev/kvm"
313-
lscpu
314-
grep -m1 -E '^(flags|Features)' /proc/cpuinfo || true
315-
ls -la /dev
316-
exit 1
317-
fi
318-
sudo chmod 0666 /dev/kvm
319-
ls -l /dev/kvm
320-
test -r /dev/kvm
321-
test -w /dev/kvm
322-
323308
- name: Install system dependencies
324309
run: |
325310
sudo apt-get update
@@ -335,6 +320,29 @@ jobs:
335320
socat \
336321
zstd
337322
323+
- name: Enable KVM access
324+
run: |
325+
set -euo pipefail
326+
if [[ ! -c /dev/kvm ]]; then
327+
echo "::error::The GitHub-hosted runner did not expose /dev/kvm"
328+
lscpu
329+
grep -m1 -E '^(flags|Features)' /proc/cpuinfo || true
330+
ls -la /dev
331+
exit 1
332+
fi
333+
334+
# Package installation can restart systemd-udevd, which reapplies
335+
# the default root:kvm 0660 mode. Install a persistent rule after
336+
# dependencies so later udev events preserve runner access.
337+
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' \
338+
| sudo tee /etc/udev/rules.d/99-kvm4all.rules
339+
sudo udevadm control --reload-rules
340+
sudo udevadm trigger --name-match=kvm
341+
342+
ls -l /dev/kvm
343+
exec 3<>/dev/kvm
344+
exec 3>&-
345+
338346
- name: Validate VM host tools
339347
run: |
340348
command -v mke2fs

0 commit comments

Comments
 (0)