Barn 0.8.0: clearer recovery and refreshed images
Historical release record (0.8.0). Old release downloads are retired; use the installation guide for the current release.
Barn 0.8.0 cuts down on manual cleanup after interrupted host setup or partial VM starts, and refreshes the Debian and Ubuntu images while preserving previous catalog artifacts and existing VM identities.
What changed
- Host preparation follows the command. Interactive
start,restart, andreloadcan install missing host tools and bring an inactive Barn network back online. On macOS, first-time network installation locates or installs Homebrew (or downloads and verifies the pinned archive) before prompting for administrator credentials, preventing Homebrew from invalidating an earliersudotoken. - Failed nodes do not block independent peers. During
uporstart, a missing host share fails only the affected node while healthy stopped peers continue to start. Errors report both the missing host source path and guest mount point without creating empty placeholder directories, andrestart,reload, andrecreateverify share paths before stopping running VMs. - Recovery preserves identity. If a deployment public key is missing, Barn derives it from the existing private key; if the private key is lost, Barn prints backup recovery steps rather than generating a replacement keypair that existing guests would reject. macOS
socket_vmnetlog-directory recovery preserves network ownership markers to avoid false subnet-conflict errors. - Failures keep their context. Scoped retry hints preserve custom
-finventory paths,--repooverrides, and command names (a failedstartsuggestsstart). Initial setup and its retry share a single operation ID, bounded event logs can be written and read before deployment state exists, and inspecting uncached image metadata no longer requiresqemu-img. - Accurate cleanup summaries. Deleting persistent disks or running
purgereports the final deleted state without listing the same disks as both retained and removed. Orphaned disks from previously removed nodes no longer blockdestroyof the remaining lab.
September images
Embedded catalog 2026092001 contains 37 artifacts across 9 families, retaining all 27 previous artifacts and adding new amd64 and arm64 stable builds:
| Family | System version | Image catalog version |
|---|---|---|
d12 |
Debian 12.15 | 20260909.2596.1 |
d13 |
Debian 13.7 | 20260914.2601.1 |
u22 |
Ubuntu 22.04.5 | 20260913.0.0 |
u24 |
Ubuntu 24.04.5 | 20260911.0.0 |
u26 |
Ubuntu 26.04.1 | 20260918.0.0 |
Debian images include offline XFS tools and a pre-generated en_US.UTF-8 locale (C.UTF-8 remains default). Ubuntu images preserve Canonical’s upstream bytes and configure accounts and networking via cloud-init. Existing VMs and pinned image versions keep their current base images; see the image reference for catalog update details.
Install or upgrade
For an existing lab, inspect barn plan and run barn up. start powers on existing nodes as-is, while up applies inventory changes and retries unfinished guest bootstrap. See the storage guide for how up handles damaged test data disks during recovery.
Validation and limits
Four hosts—two macOS arm64/HVF machines (m1, m5) and two Linux amd64/KVM machines (m0, m3)—completed the 7-distro pro acceptance pass covering Rocky Linux 9.8/10.2, Debian 12.15/13.7, and Ubuntu 22.04.5/24.04.5/26.04.1. Candidate 6d7870e performed a clean initialization from the LAN repository, and runtime candidate 1c054a0 upgraded in place and passed repeated healthy up, stop/start, two rounds of guest SSH, data-disk checks, Ansible configuration reads, and control-node lateral SSH (plus 7-node Ansible ping on both Macs) while preserving VM UUIDs, image identities, and disk inodes.
Single-run timings from the acceptance pass (the first up includes image download):
| Host | Platform | Clean first up (6d7870e) |
Healthy up (1c054a0) |
Existing-disk start (1c054a0) |
|---|---|---|---|---|
m0 |
Linux amd64 / KVM |
117.915 s | 3.924 s | 36.944 s |
m1 |
macOS arm64 / HVF |
86.309 s | 1.745 s | 39.639 s |
m3 |
Linux amd64 / KVM |
98.443 s | 2.169 s | 44.068 s |
m5 |
macOS arm64 / HVF |
87.946 s | 1.467 s | 38.162 s |
Release tag v0.8.0 (320a32afa8f6fca02592215aa0d5607ca4e852b2) updates only documentation relative to the tested runtime and passed local make check, source CI, the packaging snapshot, and the tag workflow. All 20 release assets (19 payloads plus checksums.txt) were verified against the public pre-release. Earlier regression and image-boot records are archived in the UX audit and image refresh record.
Isolated barn update runs against both official repositories verified signatures and activated catalog 2026092001, with all ten new image objects returning HTTP 200 and matching content lengths. Isolated installer runs on macOS arm64 and Linux amd64 verified 0.8.0 (320a32a) binary delivery, and the Homebrew tap update passed local audits and Homebrew CI.
Known limitations in 0.8.0:
- macOS host directory sharing for Linux guests remains blocked by upstream QEMU
virtfsdirectory-descriptor behavior on Darwin; preflight now diagnoses this earlier. - A missing control-node guest private key is now detected even when an older ready marker exists, though restoring peer SSH still requires recreating the control node. See the validation history for the full dated test matrix.