Add OmniOS builder VM definition and provisioning scripts

VMFile.kdl defines the omnios-builder VM with cloud-init, SSH config,
and a 3-stage provision pipeline (bootstrap packages + Rust, upload
forger source tarball, build and install forger). Makefile provides
convenience targets wrapping vmctl commands. pack-forger.sh creates a
minimal tarball of just the forger + spec-parser crates and image specs
from refraction-forger for upload to the VM.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Till Wegmueller 2026-02-14 21:56:43 +01:00
parent eb78c24a8b
commit d9a4206447
No known key found for this signature in database

View file

@ -19,6 +19,8 @@ trap 'rm -rf "$STAGING"' EXIT
echo "[pack-forger] Staging forger source ..." echo "[pack-forger] Staging forger source ..."
mkdir -p "$STAGING/crates"
# Copy crates # Copy crates
cp -a "$FORGER_ROOT/crates/forger" "$STAGING/crates/forger" cp -a "$FORGER_ROOT/crates/forger" "$STAGING/crates/forger"
cp -a "$FORGER_ROOT/crates/spec-parser" "$STAGING/crates/spec-parser" cp -a "$FORGER_ROOT/crates/spec-parser" "$STAGING/crates/spec-parser"
@ -26,8 +28,10 @@ cp -a "$FORGER_ROOT/crates/spec-parser" "$STAGING/crates/spec-parser"
# Copy image specs # Copy image specs
cp -a "$FORGER_ROOT/images" "$STAGING/images" cp -a "$FORGER_ROOT/images" "$STAGING/images"
# Copy lockfile # Copy lockfile if present (reproducible builds)
cp "$FORGER_ROOT/Cargo.lock" "$STAGING/Cargo.lock" if [ -f "$FORGER_ROOT/Cargo.lock" ]; then
cp "$FORGER_ROOT/Cargo.lock" "$STAGING/Cargo.lock"
fi
# Generate a minimal workspace Cargo.toml (only forger + spec-parser) # Generate a minimal workspace Cargo.toml (only forger + spec-parser)
cat > "$STAGING/Cargo.toml" <<'TOML' cat > "$STAGING/Cargo.toml" <<'TOML'