Skip to content

Barn 1.1.0: image selection and live progress

Select Linux images and guest architectures from the CLI, follow live progress, and recover interrupted resource resizing.

Released on 2026-11-09. Barn 1.1.0 adds image and guest-architecture overrides, live progress tables, and more reliable CPU/memory resizing. It embeds signed image catalog revision 2026110502, with 9 distribution releases and 17 architecture-specific artifacts. The default remains Ubuntu 24.04 on the host’s native architecture.

Image and architecture selection

Use --image/-I and --arch/-A with plan, up, reload, recreate, and resize to override the inventory for one command. Image overrides apply to selected nodes, and suggested follow-up commands retain the selections, overrides, and repository. Existing VMs require recreate to change their image or architecture.

barn plan -I u24 -A amd64
barn up -I u24 -A amd64

init and generated setup templates save the choices into the new inventory; validate accepts the same overrides without changing the file. Image info, pull, and named imports accept -A. Architecture names include amd64 (x86_64, x64), arm64 (aarch64, a64), and native; image info and image pull retain the earlier -a spelling.

Matching guests use HVF or KVM. Foreign guests use QEMU TCG for compatibility testing, with a stable ARM CPU model for UEFI boot. On Linux, install the target QEMU system emulator and matching firmware separately; barn setup prepares native host dependencies. All nodes in a deployment share one guest architecture.

Progress and results

Linux and macOS lifecycle commands, setup, network operations, image transfers, and repository maintenance now share live progress tables and consistent completion summaries. Terminal redraws stop before a prompt or error, and redirected output uses ordinary lines. Validation lists the checks it performed. Status tables and labels use plain ASCII, including [DONE], [FAILED], and [CANCELLED], and barn purge deletes the deployment immediately by default (pass --ask for an interactive confirmation prompt). Use --json or --yaml for structured results.

Recovery fixes

  • Offline resize holds the deployment lock across inspection, shutdown, and commit, preserving QEMU process identity when another command tries to start the same node.
  • Interrupted online resize retains a recovery marker before hotplugging. status reports that live CPU or memory may differ from the applied configuration (stage: "resize", reason: "resize_incomplete"); retry resize or run up / start to recover.
  • Plans for deployment-wide changes include new nodes in the recreation scope and avoid suggesting an up command before recreation is complete.
  • Lifecycle retry commands preserve an explicit official --repo, even when BARN_REPO points elsewhere. Missing native QEMU programs trigger host preparation; missing foreign Linux emulators name the required dependencies.

YAML parsing uses go.yaml.in/yaml/v4 4.0.0, and flag parsing uses pflag 1.1.0. Existing YAML input/output settings are retained, and unfinished YAML documents report the parser’s EOF line. Packaged licenses and SPDX documents cover the updated dependencies.

Upgrade and downloads

Stop running macOS guests before replacing Barn.app, then upgrade:

brew update
brew upgrade pgsty/infra/barn

Or download and run this release’s installer:

curl -fLO https://github.com/pgsty/barn/releases/download/v1.1.0/install.sh
BARN_VERSION=1.1.0 bash install.sh
barn version

The installer verifies the selected archive against checksums.txt. The Darwin arm64 archive includes the signed, notarized CLI, hosts helper, and Barn.app; the other archives and Linux DEB/RPM packages provide the CLI and matching helper. VM disks, keys, and state remain under BARN_HOME.

See the documentation, full changelog, and changes since 1.0.0.