Repository navigation
Released on 2026-11-12.
This minor update adds VM resource overrides, recoverable root-disk growth,
configurable Linux lifecycle concurrency, and inventory-based host names.
It also refreshes the build toolchain.
Upgrade from 1.1.0
Omitted Linux CPU/memory values now resolve to 1 vCPU / 2 GiB instead of
2 vCPUs / 4 GiB. Existing inventories that omit these fields use the new
defaults when read by 1.2.0. To retain the earlier defaults, add
vm_cpu: 2 and vm_mem: 4GiB under all.vars, preserving any per-host
overrides, and inspect barn plan before applying changes. Existing applied
VMs retain their resources until a resource-changing operation is requested.
Root and data-disk defaults remain 64 GiB and 128 GiB respectively.
VM resources and concurrency
- Use
--cpu/-C,--mem/-M,--scale/-S, and--disk/-Dfor resource
overrides, alongside the image and architecture selectors. The corresponding
BARN_*environment variables provide defaults; command-line values take
precedence. Generated inventories save the base settings. - Grow an existing root disk with
resize --disk/-D. Barn stops QEMU before
enlarging the disk, verifies the guest partition and ext4/XFS filesystem,
and records progress so an interrupted resize can resume. Shrinking and
unsupported root layouts are rejected. - Read effective resources in
SPEClabels such as2c4g; structured output
includes numeric resources, their bases, multiplier, and input sources. - Set Linux lifecycle concurrency with
--parallel/-p. The default is the
logical CPU count minus two, with a minimum of one. Zero runs all selected
nodes concurrently; a positive value sets the maximum.
Inventory host names
Declare extra service names in all.vars.vm_hosts, then preview the combined
node and service mappings with barn hosts install -f pigsty.yml --json.
Apply the reviewed plan with barn hosts install -f pigsty.yml --yes.
The inventory path works before VM creation; omitting -f continues to use
applied node names. Duplicate mappings merge case-insensitively, conflicting
addresses fail, and these host-side mappings leave VM identity and guest
configuration unchanged.
Dependencies and packaging
Source builds, CI, and release artifacts require Go 1.27.4. The module refresh
updates golang.org/x/sys to 0.50.0, golang.org/x/term to 0.48.0,
golang.org/x/text to 0.44.0, and github.com/klauspost/compress to 1.20.4.
All other requirements listed in go.mod already use their latest stable
versions as checked on 2026-11-11.
Packaging uses GoReleaser 2.20.1 with bundled nFPM 2.48.0, and Syft 1.57.1.
Download checksums and dependency licenses match those versions. Existing
quality-tool versions and GitHub Actions commit pins are current.
RPM payload verification now requires SOURCE_DATE_EPOCH timestamps,
matching nFPM 2.48's archive output.
The signed image catalog remains revision 2026110502, with 17 stable
architecture-specific artifacts. Both official repositories match the embedded
catalog; the default is Ubuntu 24.04 on the host's native architecture.
Upgrade and downloads
Stop running macOS guests before replacing Barn.app, then upgrade:
brew update
brew upgrade pgsty/infra/barnOr use the versioned installer:
curl -fLO https://github.com/pgsty/barn/releases/download/v1.2.0/install.sh
BARN_VERSION=1.2.0 bash install.sh
barn versionThe installer verifies the archive against checksums.txt. The Darwin arm64
archive includes the Developer ID signed and notarized CLI, hosts helper,
and Barn.app; other archives and Linux DEB/RPM packages include the CLI
and matching helper. VM disks, keys, and state remain under BARN_HOME.
See the command reference,
full changelog, and
changes since 1.1.0.