Add an experimental Alpine image flow
Stage a complete Alpine x86_64 image stack so \ --image alpineworks like the existing manual Void path instead of relying on Debian-oriented image builds.\n\nAdd make targets plus kernel/rootfs/register helpers that download pinned Alpine artifacts, extract a Firecracker-compatible vmlinux, build a matching mkinitfs initramfs, seed OpenRC services, and register/promote a managed image named alpine.\n\nFold in the bring-up fixes discovered during boot validation: use rootfstype=ext4 in shared boot args, install libgcc/libstdc++ for the opencode binary, and give opencode more time to become ready on cold boots.\n\nValidate with go test ./..., the Alpine helper builds, image promotion, and banger vm create --image alpine --name alp --nat plus guest service and port checks.
This commit is contained in:
parent
572bf32424
commit
a166068fab
14 changed files with 1307 additions and 9 deletions
|
|
@ -43,6 +43,31 @@ var voidBase = []string{
|
|||
"wget",
|
||||
}
|
||||
|
||||
var alpineBase = []string{
|
||||
"alpine-base",
|
||||
"bash",
|
||||
"ca-certificates",
|
||||
"curl",
|
||||
"docker",
|
||||
"docker-cli-compose",
|
||||
"e2fsprogs",
|
||||
"git",
|
||||
"iproute2",
|
||||
"less",
|
||||
"libgcc",
|
||||
"libstdc++",
|
||||
"make",
|
||||
"mkinitfs",
|
||||
"openssh",
|
||||
"procps-ng",
|
||||
"shadow",
|
||||
"sudo",
|
||||
"tmux",
|
||||
"tree",
|
||||
"vim",
|
||||
"wget",
|
||||
}
|
||||
|
||||
func DebianBasePackages() []string {
|
||||
return append([]string(nil), debianBase...)
|
||||
}
|
||||
|
|
@ -51,6 +76,10 @@ func VoidBasePackages() []string {
|
|||
return append([]string(nil), voidBase...)
|
||||
}
|
||||
|
||||
func AlpineBasePackages() []string {
|
||||
return append([]string(nil), alpineBase...)
|
||||
}
|
||||
|
||||
func Hash(lines []string) string {
|
||||
sum := sha256.Sum256([]byte(strings.Join(lines, "\n") + "\n"))
|
||||
return fmt.Sprintf("%x", sum)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue