mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 11:46:35 +00:00
RUNNER_POOL and NODE_POOL were assertions. With a distro list of just debian and ubuntu the node pool offered zfs, because the table records that those distros ship the zfs userland - but the module comes from the runner's kernel, which carries none. One run in three would then have drawn zfs and either declined silently, testing ext4 while the summary claimed zfs, or hard-failed on all five nodes with nothing actually broken. Ask the kernel instead: /proc/filesystems for what is loaded, modinfo for what could be. Both answer unprivileged, which resolve.sh needs since it runs without sudo. The modinfo half carries weight rather than being belt-and-braces - xfs is absent from /proc/filesystems on this host while modinfo finds the module, so without it the pool would shrink to whatever happens to be loaded. The distro table stays above it for the other question: which userland a container can install. Two layers because they are two things, and only the kernel one cannot be fixed by a package. Every exclusion now names its reason on stderr and distinguishes a missing tool from a missing capability; a filesystem used to drop out of the pool in silence. For the full five-distro sweep the pool is unchanged: ext4 btrfs, measured before and after. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>