mirror of
https://github.com/CloudNebulaProject/vm-manager.git
synced 2026-04-10 13:20:41 +00:00
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>
32 lines
723 B
Text
32 lines
723 B
Text
vm "omnios-builder" {
|
|
image-url "https://downloads.omnios.org/media/stable/omnios-r151056.cloud.qcow2"
|
|
vcpus 4
|
|
memory 4096
|
|
disk 20
|
|
|
|
cloud-init {
|
|
hostname "omnios-builder"
|
|
ssh-key "~/.ssh/id_ed25519.pub"
|
|
}
|
|
|
|
ssh {
|
|
user "smithy"
|
|
private-key "~/.ssh/id_ed25519"
|
|
}
|
|
|
|
// Stage 1: System packages and Rust toolchain
|
|
provision "shell" {
|
|
script "scripts/bootstrap-omnios.sh"
|
|
}
|
|
|
|
// Stage 2: Upload forger source
|
|
provision "file" {
|
|
source "scripts/forger-src.tar.gz"
|
|
destination "/tmp/forger-src.tar.gz"
|
|
}
|
|
|
|
// Stage 3: Extract and build forger
|
|
provision "shell" {
|
|
script "scripts/install-forger.sh"
|
|
}
|
|
}
|