Testing Farm release 2026-07.1
Testing Farm release 2026-07.1 was deployed on 2026-07-13 🎉.
🎯 Highlights
Flavor filters can now be defined in the pool configuration, and the routing report now surfaces the flavor filter rulings applied to each request, making it easier to understand why a particular guest was selected (testing-farm/artemis!1584, testing-farm/artemis!1592).
Beaker provisioning now remembers recently aborted hosts and avoids reusing them, reducing the chance of repeated failures on unhealthy machines (TFT-3313).
Failing plans are now explained at both the request and plan levels: each plan reports a stage-aware error reason (e.g. guest setup failed: …) with a link to the failing phase’s log, and the request now carries a high-level summary such as 3 plans failed, 2 plans errored out. The error reason and log link are rendered inline in the plan summary (testing-farm/gluetool-modules!1073, testing-farm/oculus!97).
🚀 Improvements
AWS network interfaces (ENIs) are now tagged for both spot and standard instances (TFT-4805).
IBM Cloud boot volumes are now tagged, and the resource-tags check was fixed accordingly (TFT-4806).
The resource manager now logs guest acquisition attempts, previously logged from individual drivers, giving a consistent view of provisioning attempts (testing-farm/artemis!1586).
Fixed environment variables not being forwarded to tmt discovery and export invocations, which caused plans imported with scope: all-plans to be skipped as empty (testing-farm/gluetool-modules!1079).
Testing Farm now refuses unsafe SSH options (e.g. ProxyCommand) coming from plan metadata or TMT_SSH_* variables, and ignores extra options in the plan-name filter, hardening test execution (TFT-4839, TFT-4849).
CLI 400 error messages now include ranch, role, and token name for easier debugging (testing-farm/cli!233).
CLI no longer shows progress spinners in non-interactive output (testing-farm/cli!237).
The results viewer "show passed tests" toggle now also hides skipped tests (testing-farm/oculus!99).
Token lookups are now cached in the API, reducing database pool pressure under heavy load (testing-farm/nucleus!313).
The worker SIGTERM timeout was increased to 120 seconds, giving long-running test cleanup more time before the worker is killed (testing-farm/gluetool!236, testing-farm/infrastructure!1483).
📝 Documentation
Documented that ppc64le provisioning defaults to IBM Cloud with Beaker failover.
Added an FAQ entry for efibootmgr missing on Beaker after booting kernel-rt on RHEL < 10, with a workaround using kernel-options-post: efi=runtime.
🐞 Bugfixes
Fixed Beaker bootc (image-mode) installs by merging user kickstart metadata with the bootc ks-meta, so ostreecontainer --url= is no longer emptied (TFT-4779).
Fixed the SELinux context of /etc/resolv.conf not being restored by the workarounds.dns workaround (TFT-4769).
Allowed end-time: null in tmt subresults, preventing failures when a subresult has no end time (TFT-4821).
Added the missing patch-flavors schema key for the IBM Cloud VPC driver (testing-farm/artemis!1590).
Fixed a database READ COMMITTED isolation-level typo in Artemis (testing-farm/artemis!1589).
Fixed multiple serialization issues causing random 500s from the Testing Farm API (testing-farm/nucleus!314).
Workers now reap leaked Podman bridge interfaces, improving worker stability and reducing provisioning flakes (testing-farm/infrastructure!1409).
The results viewer no longer shows "Tests failed to run" for tests that have no logs (testing-farm/oculus!98).