Change: Update recipe generation to use single universal template

- Transition from multi-template (install/live recipe types) to single universal template (proteus)
- Remove recipe_type parameter from RecipeGenerator
- Update manifest format (remove recipe_type field)
- Simplify CLI (remove --type argument, use --output for single generation)
- Filename generation now uses primary modifier as first component
This commit is contained in:
Lukas Greve
2026-03-27 15:39:30 +01:00
parent 3ffb079981
commit a4bc2967e5
44 changed files with 493 additions and 507 deletions
+74 -94
View File
@@ -1,96 +1,76 @@
# Recipe Templates for Phyllome OS Kickstart Generator
# Each template defines the structure for a recipe type
# Proteus is a template generator for Phyllome OS
# Fragment paths use relative paths from project root
# Required elements can all be replaced by a listed modifier
# Optional elements add features
templates:
# Install recipe - for desktop, server, or hypervisor
install:
description: "An install recipe for desktop, server, or hypervisor"
base: core
required:
- core: core/base.ks
- { path: repo/fedora-43-mirrors.ks, replaceable: true }
- { path: storage/standard.ks, replaceable: true }
- { path: bootloader/grub.ks, replaceable: true }
- core/locale.ks
- core/services.ks
- core/network.ks
- packages/core-group.ks
- packages/fedora-remix.ks
- packages/hand-picked.ks
- { path: core/security/enabled.ks, replaceable: true }
- { path: initial-setup/server/config.ks, replaceable: true }
modifiers:
version:
"43": repo/fedora-43-mirrors.ks
"rawhide": repo/rawhide-mirrors.ks
storage:
standard: storage/standard.ks
encrypted: storage/encrypted.ks
desktop:
gnome:
- desktop/gnome/config.ks
- desktop/gnome/packages.ks
- desktop/gnome/post-scripts.ks
labwc:
- desktop/labwc/config.ks
security:
secure: core/security/enabled.ks
"off": core/security/disabled.ks
initial-setup:
server: initial-setup/server/config.ks
desktop: initial-setup/desktop/config.ks
gnome: initial-setup/gnome/config.ks
generic-wayland: initial-setup/generic-wayland/config.ks
hypervisor_type:
amdcpu: hypervisor/amdcpu.ks
intelcpu: hypervisor/intelcpu.ks
intelgpu: hypervisor/intelgpu.ks
hypervisor:
base:
- hypervisor/base/packages.ks
- hypervisor/base/services.ks
- hypervisor/base/post-scripts.ks
desktop:
- packages/virtual-machine-manager/packages.ks
- packages/virtual-machine-manager/post-scripts.ks
bootloader:
grub: bootloader/grub.ks
systemd-boot: bootloader/systemd-boot.ks
optional:
hardware-support: packages/hardware-support.ks
guest-agents: guest-agents/base.ks
# Live recipe - for live-desktop or live-server
live:
description: "A live recipe for live-desktop or live-server"
base: live-core
required:
- live-core: live/core/base.ks
- { path: repo/fedora-43-mirrors.ks, replaceable: true }
- { path: live/core/storage.ks, replaceable: true }
- { path: live/core/bootloader/grub.ks, replaceable: true }
- core/locale.ks
- core/services.ks
- core/network.ks
- live/core/packages.ks
- live/post/base.ks
- live/post/session.ks
- repo/rpmfusion-nonfree.ks
modifiers:
version:
"43": repo/fedora-43-mirrors.ks
"rawhide": repo/rawhide-mirrors.ks
storage:
standard: live/core/storage.ks
encrypted: live/core/storage.ks
bootloader:
grub: live/core/bootloader/grub.ks
systemd-boot: live/core/bootloader/systemd-boot.ks
optional:
hardware-support: packages/hardware-support.ks
guest-agents: guest-agents/base.ks
hypervisor: live/hypervisor.ks
security:
secure: core/security/enabled.ks
"off": core/security/disabled.ks
name: proteus
description: "Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system"
required:
repository:
"f43": repo/fedora-43-mirrors.ks
core:
"base": core/base.ks
bootloader:
"grub": bootloader/grub.ks
storage:
"ext4": storage/standard.ks
locale:
"fr_CH": core/locale.ks
services:
"minimal": core/services.ks
network:
"network-manager": core/network.ks
packages:
"core": packages/core.ks
brand:
"fedora-remix": packages/fedora-remix.ks
extra:
"extra": packages/hand-picked.ks
security:
"enabled": core/security/enabled.ks
initial-setup:
"server": initial-setup/server/config.ks
modifiers:
repository:
"rawhide": repo/rawhide-mirrors.ks
storage:
"encrypted": storage/encrypted.ks
security:
"disabled": core/security/disabled.ks
initial-setup:
gnome: initial-setup/gnome/config.ks
generic-wayland: initial-setup/generic-wayland/config.ks
live:
core:
"live-base": livecore/base.ks
bootloader:
"systemd-boot": live/core/bootloader/systemd-boot.ks
packages:
"live-core": live/core/packages.ks
optional:
hardware-support: packages/hardware-support.ks
guest-agents: guest-agents/base.ks
hypervisor: live/hypervisor.ks
desktop:
gnome:
- desktop/gnome/config.ks
- desktop/gnome/packages.ks
- desktop/gnome/post-scripts.ks
labwc:
- desktop/labwc/config.ks
hypervisor_type:
amdcpu: hypervisor/amdcpu.ks
intelcpu: hypervisor/intelcpu.ks
intelgpu: hypervisor/intelgpu.ks
hypervisor:
base:
- hypervisor/base/packages.ks
- hypervisor/base/services.ks
- hypervisor/base/post-scripts.ks
desktop:
- packages/virtual-machine-manager/packages.ks
- packages/virtual-machine-manager/post-scripts.ks
post:
live:
- base: live/post/base.ks
- session: live/post/session.ks