-
-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Description
The main bottleneck here is finishing the config format which is a critical component that everything else depends. It's user-facing, so it should be both intuitive and stable.
Some required features:
- Support multiboot images
- Flexible enough to conveniently support any kind of operating system
- Support custom provisioners for certain operating systems (
MirrorlistProvisioner
for certain Linux distributions, for example) - JSON, YAML, and maybe even TOML
- Documentation can be generated from Rust structs
This format is what I was working towards previously, but I think there's still room for improvement:
{
"name": "ArchLinux",
"arch": "x86_64",
"templates": [
{
"base": "ArchLinux",
"iso_checksum": "sha1:3700a16d4fcabbd29e9a7fbc97da732c4577dc2a",
"iso_url": "https://mirrors.edge.kernel.org/archlinux/iso/latest/archlinux-2022.05.01-x86_64.iso",
"mirrorlist": [
"https://mirrors.edge.kernel.org/archlinux/$repo/os/$arch"
],
"root_password": "root",
"storage_size": "4Gb",
"provisioners": [
{
"type": "ansible",
"playbook": "ansible.yml"
}
]
}
]
}
Since the above isn't fully implemented yet, there's still time to pivot onto a slightly better path if there is one.
Metadata
Metadata
Assignees
Labels
No labels