v0.13.0
π’ Release Notes - v0.13.0
Released: May 22, 2026
β¨ Enhancements
β’ Hardcoded infra server hostname to tux2lab-engine with domain ${USER}.internal β deterministic FQDN, no user prompts, removes all CNAME aliases
β’ Deploy now calls setup-qemu-kvm.sh --yes automatically when libvirtd or the tux2lab network is unavailable, eliminating manual pre-deploy setup
β’ setup-qemu-kvm.sh accepts --yes flag for non-interactive invocation
β’ vm validate "Lab yum repo" check now matches domain-derived repo names (e.g., musubram-internal-almalinux-baseos)
π Bug Fixes
β’ Fix tux2lab distro download-infra-iso failing when run before first deploy β command dispatch order restructured
β’ Fix Anaconda installer hanging at "Trying to detect CD-ROM automatically" on AlmaLinux 10 β dracut's inst.repo=cdrom pre-mount conflicted with Anaconda's source module re-mount; replaced with kickstart cdrom directive
β’ Fix deploy failing with "Failed to connect socket to libvirt-sock" after destroy β setup-qemu-kvm.sh now uses systemctl restart with socket readiness polling instead of enable --now
β’ Fix stale SSL certs and chrony markers left by predecessor project (server-hub) cleanup
π§ Technical Details
β’ Anaconda 40.x (RHEL 10) source module deadlock: dracut mounts CDROM at /run/install/repo via inst.repo=cdrom, then Anaconda's payload module tries to mount the same device at /run/install/sources/mount-0000-cdrom and hangs on auto-detection; kickstart cdrom directive bypasses auto-detection entirely
β’ setup-qemu-kvm.sh polls virsh version up to 30 seconds after restart to confirm socket is accepting connections before defining networks
β’ Hostname simplification removes all interactive prompts from deploy configuration β FQDN is always tux2lab-engine.${USER}.internal
β’ kvm-validate.sh derives repo grep pattern from lab_infra_domain_name via ${lab_infra_domain_name//./-} (e.g., musubram.internal β musubram-internal)
Full Changelog: v0.12.0...v0.13.0