Skip to content

Design

18 pages
  • Barn 1.2.0 release readiness and acceptance

    In Design 1516 words 8 min

    DesignReleaseTestingCLI

    Status, 2026-11-12: Barn 1.2.0 is published as stable/latest. Its final acceptance is recorded below; the candidate sections preserve the earlier review and its original scope. Final release Tag v1.2.0 points to …

    Status, 2026-11-12: Barn 1.2.0 is published as stable/latest. Its final acceptance is recorded below; the candidate sections preserve the earlier review and its original scope. Final release Tag v1.2.0 points to …

  • In-place root growth: recovery and native acceptance

    In Design 949 words 5 min

    DesignCLIQEMUStorage

    Status (2026-11-11): The unreleased development build implements barn resize -D, with ext4 and XFS acceptance on macOS/arm64 using QEMU/HVF guests. Released 1.1.0 still limits resize to CPU/memory. See VM specification design for input precedence and …

    Status (2026-11-11): The unreleased development build implements barn resize -D, with ext4 and XFS acceptance on macOS/arm64 using QEMU/HVF guests. Released 1.1.0 still limits resize to CPU/memory. See VM specification design for input precedence and …

  • VM specification parameters: commands, short flags, environment, and root disks

    In Design 2708 words 13 min

    DesignCLIPigstyConfiguration

    Image, architecture, CPU, memory, scale, and root disk size form one set of VM specification inputs, with consistent names, value rules, and source tracking. Each command declares which fields it accepts and which changes it can apply; the resolution …

    Image, architecture, CPU, memory, scale, and root disk size form one set of VM specification inputs, with consistent names, value rules, and source tracking. Each command declares which fields it accepts and which changes it can apply; the resolution …

  • Pigsty host setup: fixed names and CA trust

    In Design 1940 words 10 min

    DesignPigstyDNSSecurity

    Recommend one optional host setup operation: install a fixed set of Pigsty names and trust the lab’s public root CA certificate. Keep one entry address, defaulting to 10.10.10.10, and reuse the same CA across ordinary lab rebuilds. With unchanged …

    Recommend one optional host setup operation: install a fixed set of Pigsty names and trust the lab’s public root CA certificate. Keep one entry address, defaulting to 10.10.10.10, and reuse the same CA across ordinary lab rebuilds. With unchanged …

  • Main and command reference review

    In Design 858 words 5 min

    DesignCLIDocumentationValidation

    Reviewed on 2026-11-11. Both repositories were on main, but neither had a clean working tree or matched its fetched remote head. The source checks passed on the reviewed working tree. The documentation now has a complete command reference with …

    Reviewed on 2026-11-11. Both repositories were on main, but neither had a clean working tree or matched its fetched remote head. The source checks passed on the reviewed working tree. The documentation now has a complete command reference with …

  • Host DNS and domain resolution for Pigsty on Barn

    In Design 5494 words 26 min

    DesignPigstyDNSNetworking

    Note Scope narrowed on 2026-11-11: the first delivery is now fixed core names and Pigsty CA trust. This page retains the broader exporter and resolver research; its general inventory and split-DNS work is optional expansion, not a prerequisite for …

    Note Scope narrowed on 2026-11-11: the first delivery is now fixed core names and Pigsty CA trust. This page retains the broader exporter and resolver research; its general inventory and split-DNS work is optional expansion, not a prerequisite for …

  • Replacing Vagrant with Barn in Pigsty: resources, names, and migration work

    In Design 1872 words 9 min

    DesignPigstyVagrantDNS

    Pigsty can use one inventory for Barn and Ansible. The migration needs to preserve topology selection, image matrices, resource scaling, fixed addresses, and SSH workflows while replacing the old scripts’ implicit addressing, naming, and destruction …

    Pigsty can use one inventory for Barn and Ansible. The migration needs to preserve topology selection, image matrices, resource scaling, fixed addresses, and SSH workflows while replacing the old scripts’ implicit addressing, naming, and destruction …

  • Beyond amd64 and arm64

    In Design 903 words 5 min

    DesignArchitectureQEMUImages

    Barn currently supports amd64 and arm64 Linux guests. QEMU can emulate more architectures, but each additional Barn target needs an image and a complete boot-and-operation contract. This design assessment, reviewed on 2026-11-08, separates the …

    Barn currently supports amd64 and arm64 Linux guests. QEMU can emulate more architectures, but each additional Barn target needs an image and a complete boot-and-operation contract. This design assessment, reviewed on 2026-11-08, separates the …

  • Running Barn from Windows

    In Design 752 words 4 min

    DesignWindowsWSLQEMU

    Barn’s current host profiles and release binaries cover macOS and Linux on amd64 and arm64. There is no native Windows Barn release. A Windows user can operate Barn through a Linux host; WSL2 and a nested Linux VM are candidates for bringing that …

    Barn’s current host profiles and release binaries cover macOS and Linux on amd64 and arm64. There is no native Windows Barn release. A Windows user can operate Barn through a Linux host; WSL2 and a nested Linux VM are candidates for bringing that …

  • What Barn Can Learn from Vagrant

    In Design 858 words 5 min

    DesignVagrantPigstyWorkflow

    Barn already creates multi-node Linux labs from Pigsty-compatible inventories, manages their lifecycle, and exposes SSH and structured output. The useful lessons from Vagrant concern what happens between creating a VM and repeating an experiment: run …

    Barn already creates multi-node Linux labs from Pigsty-compatible inventories, manages their lifecycle, and exposes SSH and structured output. The useful lessons from Vagrant concern what happens between creating a VM and repeating an experiment: run …

  • From Upstream Images to a Signed Catalog

    In Design 935 words 5 min

    DesignImagesSupply ChainReleases

    An image audit answers a narrower question than an image release. It can find a newer upstream file, but Barn may add that file to its signed catalog only after the artifact, runtime profile, and boot path have all been verified. The image reference …

    An image audit answers a narrower question than an image release. It can find a newer upstream file, but Barn may add that file to its signed catalog only after the artifact, runtime profile, and boot path have all been verified. The image reference …

  • Evolving the CLI Without Breaking Its Contracts

    In Design 958 words 5 min

    DesignCLICompatibilityArchitecture

    Barn already uses Cobra. The useful part of the 2026-11-04 CLI proposal is its separation of command syntax, application orchestration, and observable behavior. This essay retains that design, checked against v1.1.0 on 2026-11-09. The package split …

    Barn already uses Cobra. The useful part of the 2026-11-04 CLI proposal is its separation of command syntax, application orchestration, and observable behavior. This essay retains that design, checked against v1.1.0 on 2026-11-09. The package split …

  • The Lifetime of a Native Mac VM

    In Design 804 words 4 min

    DesignmacOSRecoveryArchitecture

    barn mac manages named macOS VMs through Apple’s Virtualization.framework, independently of the Linux inventory. Introduced in 0.9.0, it uses the native host app Barn.app, included in Apple Silicon release archives since 0.9.2. This essay distills …

    barn mac manages named macOS VMs through Apple’s Virtualization.framework, independently of the Linux inventory. Introduced in 0.9.0, it uses the native host app Barn.app, included in Apple Silicon release archives since 0.9.2. This essay distills …

  • repo.yaml Is Intent; catalog.json Is Evidence

    In Design 833 words 4 min

    DesignImagesSupply ChainCatalog

    This essay explains the Linux image repository contract in Barn 1.1.0 (macOS guests manage Apple .ipsw restore images and APFS base images separately via barn mac). A static VM image repository needs two kinds of metadata: human policy decisions …

    This essay explains the Linux image repository contract in Barn 1.1.0 (macOS guests manage Apple .ipsw restore images and APFS base images separately via barn mac). A static VM image repository needs two kinds of metadata: human policy decisions …

  • A PID Is Not a Virtual Machine

    In Design 890 words 5 min

    DesignQMPRecoverySafety

    This essay explains Linux runtime process identity and crash recovery in Barn 1.1.0. The separate native Mac lifecycle uses per-machine operation locks and runner protocol 2. A pidfile records a process ID at the moment it was written. Minutes or …

    This essay explains Linux runtime process identity and crash recovery in Barn 1.1.0. The separate native Mac lifecycle uses per-machine operation locks and runner protocol 2. A pidfile records a process ID at the moment it was written. Minutes or …

  • Declarative Does Not Mean Destructive

    In Design 1118 words 6 min

    DesignLifecycleDriftSafety

    This essay explains the Linux VM convergence model in Barn 1.1.0 (macOS guests are managed independently). A declarative tool compares live state against a configuration file—but in daily development, that file might be temporarily edited for …

    This essay explains the Linux VM convergence model in Barn 1.1.0 (macOS guests are managed independently). A declarative tool compares live state against a configuration file—but in daily development, that file might be temporarily edited for …

  • Why Every Barn Node Has Two NICs

    In Design 890 words 5 min

    DesignNetworkingQEMUPigsty

    This essay explains the Linux lab network architecture in Barn 1.1.0 (macOS guests use independent per-VM vmnet NAT subnets). A Pigsty inventory identifies every database node by a stable IPv4 address: PostgreSQL streaming replication, Patroni/etcd …

    This essay explains the Linux lab network architecture in Barn 1.1.0 (macOS guests use independent per-VM vmnet NAT subnets). A Pigsty inventory identifies every database node by a stable IPv4 address: PostgreSQL streaming replication, Patroni/etcd …

  • Why Barn Has No Projects

    In Design 644 words 4 min

    DesignArchitectureinventoryState

    This essay explains the Linux lab deployment model in Barn 1.1.0 (macOS guests are managed as independent named VMs). Early prototypes of Barn treated every working directory as a separate project: a hidden directory marker identified the project, a …

    This essay explains the Linux lab deployment model in Barn 1.1.0 (macOS guests are managed as independent named VMs). Early prototypes of Barn treated every working directory as a separate project: a hidden directory marker identified the project, a …