Add a mount unit and service for the OpenQA bootstrapping sysext

This is necessary to inject tests and set up the image for OpenQA testing.
This commit is contained in:
Thomas Duckworth
2026-05-04 19:09:03 +10:00
parent 486cf7bc9f
commit 7c020d25e0
3 changed files with 53 additions and 0 deletions

View File

@@ -28,6 +28,9 @@ enable tuned.service
enable vboxservice.service
enable vmtoolsd.service
# OpenQA integration
enable run-extensions-openqa.mount
# NVIDIA-specific services (shouldn't affect non-NVIDIA hardware)
enable nvidia-hibernate.service
enable nvidia-resume.service
@@ -43,6 +46,7 @@ enable kde-linux-btrfs.service
enable kde-linux-configure-firefox.path
enable kde-linux-iw-set-regdomain.path
enable kde-linux-live-setup.service
enable kde-linux-openqa-setup.service
enable kde-linux-powertop.service
enable kde-linux-volatile-var-lib-flatpak.service
enable kde-linux-sysupdated.socket

View File

@@ -0,0 +1,23 @@
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
# SPDX-FileCopyrightText: 2026 Thomas Duckworth <tduck@filotimoproject.org>
# This runs the bootstrapping executable that's included in the OpenQA sysext image.
[Unit]
Description=Bootstrap OpenQA Testing Environment
ConditionVirtualization=vm
ConditionPathIsMountPoint=/run/extensions/openqa
After=systemd-sysext.service
After=local-fs.target network-online.target
Before=display-manager.service
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/lib/openqa-bootstrap
RemainAfterExit=yes
TimeoutStartSec=300
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,26 @@
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
# SPDX-FileCopyrightText: 2026 Thomas Duckworth <tduck@filotimoproject.org>
# Mounts the OpenQA bootstrapping sysext - an erofs-formatted disk labelled kde-openqa-ext.
# This is attached as a hard disk in QEMU.
# This is used in OpenQA testing to do some setup and provide tests that run on the System Under Test.
[Unit]
Description=OpenQA Bootstrapping Sysext
# We don't want people using this to inject malware on some unwitting person's system with a pen drive.
# Hence, such dangerous things should only be allowed in a VM.
ConditionVirtualization=vm
ConditionPathExists=/dev/disk/by-label/kde-openqa-ext
DefaultDependencies=no
Before=systemd-sysext.service
After=dev-disk-by\x2dlabel-kde\x2dopenqa\x2dext.device
BindsTo=dev-disk-by\x2dlabel-kde\x2dopenqa\x2dext.device
[Mount]
What=/dev/disk/by-label/kde-openqa-ext
Where=/run/extensions/openqa
Type=erofs
Options=ro
[Install]
WantedBy=systemd-sysext.service