refraction-forger/images/ubuntu-rust-ci.kdl
Till Wegmueller d24dcc0363
Fix builder VM disk sizing, rootfs copy, and diagnostics
- Add disk_gb field to BuilderNode/BuilderConfig with 20GB default,
  fixing debootstrap failure caused by 2GB cloud image running out of
  space. Cloud-init growpart/resize_rootfs expand the partition.

- Replace walkdir-based copy_rootfs with cp -a to preserve symlinks,
  fixing grub-install failure caused by broken merged-/usr symlinks
  (/lib, /bin, /sbin -> /usr/*) in modern Ubuntu.

- Add network verification step that checks DNS before building and
  auto-fixes resolv.conf with SLIRP DNS (10.0.2.3) if needed.

- Add diagnostic collection on failure (debootstrap log, resolv.conf,
  disk space) before VM teardown.

- Include build stderr/stdout in RemoteBuildFailed error for better
  error reporting.

- Install build dependencies (debootstrap, qemu-utils, etc.) inside
  the builder VM before running the build.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 18:01:49 +01:00

43 lines
940 B
Text

metadata name="ubuntu-rust-ci" version="0.1.0" description="Ubuntu 22.04 CI image with Rust"
distro "ubuntu-22.04"
repositories {
apt-mirror "http://archive.ubuntu.com/ubuntu" suite="jammy" components="main universe"
}
packages {
package "build-essential"
package "pkg-config"
package "curl"
package "git"
package "ca-certificates"
package "rustc"
package "cargo"
package "libssl-dev"
package "openssh-server"
package "cloud-init"
package "grub-efi-amd64"
package "linux-image-generic"
}
customization {
user "ci"
}
overlays {
shadow username="root" password="$5$kr1VgdIt$OUiUAyZCDogH/uaxH71rMeQxvpDEY2yX.x0ZQRnmeb9"
ensure-dir "/home/ci" owner="ci" group="ci" mode="755"
}
builder {
vcpus 4
memory 4096
}
target "qcow2" kind="qcow2" {
disk-size "8G"
bootloader "grub"
filesystem "ext4"
push-to "ghcr.io/cloudnebulaproject/ubuntu-rust:latest"
}