- deploy/: deployment bash scripts (4 files) - recipe-generator/: recipe generation tool (Python + YAML configs) - bin/: executable wrappers (single generate-recipe entry point) - Updated deploy.sh, README.md, DEVELOPMENT.md, DEVELOPMENT_QUICK.md - Updated tests/test_recipe_generator.py and tests/integration/test_integration.py - Updated CI workflow and Makefile paths - All 41 tests pass
187 lines
8.4 KiB
YAML
187 lines
8.4 KiB
YAML
# Recipe Templates for Phyllome OS Kickstart Generator
|
|
# Each template defines the structure for a recipe type
|
|
# Modifiers allow variant creation without duplicating files
|
|
# Fragment paths use relative paths from project root
|
|
|
|
templates:
|
|
# Virtual desktop recipe
|
|
# Modifiers: desktop (gnome|labwc), storage (standard|encrypted),
|
|
# security (secure|devel), version (43|rawhide), post (true|false)
|
|
virtual-desktop:
|
|
description: "A recipe for a virtual desktop"
|
|
base: core
|
|
required:
|
|
- core: fragments/shared/core/base.ks
|
|
- storage: fragments/shared/storage/standard.ks
|
|
- bootloader: fragments/platform/generic-43/bootloader/grub.ks
|
|
- locale: fragments/shared/core/locale.ks
|
|
- services: fragments/shared/core/services.ks
|
|
- network: fragments/shared/core/network.ks
|
|
- packages: fragments/shared/packages/core-group.ks
|
|
- fedora-remix: fragments/shared/packages/fedora-remix.ks
|
|
- hand-picked: fragments/shared/packages/hand-picked.ks
|
|
- initial-setup: fragments/shared/initial-setup/server/config.ks
|
|
optional:
|
|
security:
|
|
secure: fragments/shared/core/security/enabled.ks
|
|
devel: fragments/shared/core/security/disabled.ks
|
|
version:
|
|
"43": fragments/platform/generic-43/repo/fedora-mirrors.ks
|
|
"rawhide": fragments/platform/generic-rawhide/repo/rawhide-mirrors.ks
|
|
desktop:
|
|
gnome: fragments/shared/desktop/gnome/packages.ks
|
|
labwc: fragments/shared/desktop/labwc/config.ks
|
|
post: fragments/shared/section-data/post/base.ks
|
|
extras:
|
|
- fragments/shared/guest-agents/packages.ks
|
|
modifiers:
|
|
storage:
|
|
standard: fragments/shared/storage/standard.ks
|
|
encrypted: fragments/shared/storage/encrypted.ks
|
|
bootloader:
|
|
systemd-boot: fragments/platform/generic-43/bootloader/systemd-boot.ks
|
|
|
|
# Virtual server recipe
|
|
# Modifiers: security (secure|devel), version (43|rawhide), post (true|false)
|
|
virtual-server:
|
|
description: "A recipe for a virtual server"
|
|
base: core
|
|
required:
|
|
- core: fragments/shared/core/base.ks
|
|
- storage: fragments/shared/storage/standard.ks
|
|
- bootloader: fragments/platform/generic-43/bootloader/grub.ks
|
|
- locale: fragments/shared/core/locale.ks
|
|
- services: fragments/shared/core/services.ks
|
|
- network: fragments/shared/core/network.ks
|
|
- packages: fragments/shared/packages/core-group.ks
|
|
- fedora-remix: fragments/shared/packages/fedora-remix.ks
|
|
- hand-picked: fragments/shared/packages/hand-picked.ks
|
|
- initial-setup: fragments/shared/initial-setup/server/config.ks
|
|
optional:
|
|
security:
|
|
secure: fragments/shared/core/security/enabled.ks
|
|
devel: fragments/shared/core/security/disabled.ks
|
|
version:
|
|
"43": fragments/platform/generic-43/repo/fedora-mirrors.ks
|
|
"rawhide": fragments/platform/generic-rawhide/repo/rawhide-mirrors.ks
|
|
post: fragments/shared/section-data/post/base.ks
|
|
extras:
|
|
- fragments/shared/guest-agents/packages.ks
|
|
modifiers:
|
|
storage:
|
|
standard: fragments/shared/storage/standard.ks
|
|
encrypted: fragments/shared/storage/encrypted.ks
|
|
bootloader:
|
|
systemd-boot: fragments/platform/generic-43/bootloader/systemd-boot.ks
|
|
|
|
# Desktop hypervisor recipe
|
|
# Modifiers: cpu (generic|amdcpu|intelcpu), gpu (none|intelgpu),
|
|
# security (secure|devel), version (rawhide), post (true|false)
|
|
desktop-hypervisor:
|
|
description: "A recipe for a desktop hypervisor"
|
|
base: core
|
|
required:
|
|
- core: fragments/shared/core/base.ks
|
|
- storage: fragments/shared/storage/standard.ks
|
|
- bootloader: fragments/platform/generic-rawhide/bootloader/grub.ks
|
|
- locale: fragments/shared/core/locale.ks
|
|
- services: fragments/shared/core/services.ks
|
|
- network: fragments/shared/core/network.ks
|
|
- packages: fragments/shared/packages/core-group.ks
|
|
- fedora-remix: fragments/shared/packages/fedora-remix.ks
|
|
- hand-picked: fragments/shared/packages/hand-picked.ks
|
|
- hardware-support: fragments/shared/packages/hardware-support.ks
|
|
- initial-setup: fragments/shared/initial-setup/desktop/config.ks
|
|
- desktop: fragments/shared/desktop/gnome/config.ks
|
|
- desktop-gnome-packages: fragments/shared/desktop/gnome/packages.ks
|
|
- desktop-gnome-post: fragments/shared/desktop/gnome/post-scripts.ks
|
|
- vmm: fragments/shared/desktop/vmm/packages.ks
|
|
- vmm-post: fragments/shared/desktop/vmm/post-scripts.ks
|
|
- repo: fragments/platform/generic-rawhide/repo/rawhide-mirrors.ks
|
|
- hypervisor-base-services: fragments/shared/hypervisor/base/services.ks
|
|
- hypervisor-base-packages: fragments/shared/hypervisor/base/packages.ks
|
|
- hypervisor-base-post: fragments/shared/hypervisor/base/post-scripts.ks
|
|
optional:
|
|
security:
|
|
secure: fragments/shared/core/security/enabled.ks
|
|
devel: fragments/shared/core/security/disabled.ks
|
|
cpu:
|
|
generic: fragments/shared/hypervisor/base/services.ks
|
|
amdcpu: fragments/shared/hypervisor/amdcpu.ks
|
|
intelcpu: fragments/shared/hypervisor/intelcpu.ks
|
|
gpu:
|
|
intelgpu: fragments/shared/hypervisor/intelgpu.ks
|
|
post: fragments/shared/section-data/post/base.ks
|
|
modifiers:
|
|
cpu:
|
|
generic: fragments/shared/hypervisor/base/services.ks
|
|
amdcpu: fragments/shared/hypervisor/amdcpu.ks
|
|
intelcpu: fragments/shared/hypervisor/intelcpu.ks
|
|
gpu:
|
|
none: null
|
|
intelgpu: fragments/shared/hypervisor/intelgpu.ks
|
|
storage:
|
|
standard: fragments/shared/storage/standard.ks
|
|
encrypted: fragments/shared/storage/encrypted.ks
|
|
|
|
# Live desktop recipe
|
|
# Modifiers: desktop (gnome|none), security (secure|devel), version (rawhide)
|
|
live-desktop:
|
|
description: "A recipe for a live desktop"
|
|
base: live-core
|
|
required:
|
|
- live-core: fragments/shared/live/core/base.ks
|
|
- storage: fragments/shared/live/core/storage.ks
|
|
- bootloader: fragments/platform/generic-rawhide/bootloader/grub.ks
|
|
- locale: fragments/shared/core/locale.ks
|
|
- services: fragments/shared/core/services.ks
|
|
- network: fragments/shared/core/network.ks
|
|
- packages: fragments/shared/live/core/packages.ks
|
|
- mandatory: fragments/shared/live/core/packages.ks
|
|
- post: fragments/shared/live/post/base.ks
|
|
- session: fragments/shared/live/post/session.ks
|
|
- initial-setup: fragments/shared/initial-setup/desktop/config.ks
|
|
- desktop: fragments/shared/desktop/gnome/config.ks
|
|
- desktop-gnome-packages: fragments/shared/desktop/gnome/packages.ks
|
|
- desktop-gnome-post: fragments/shared/desktop/gnome/post-scripts.ks
|
|
- repo: fragments/platform/generic-rawhide/repo/rawhide-mirrors.ks
|
|
optional:
|
|
security:
|
|
secure: fragments/shared/core/security/enabled.ks
|
|
devel: fragments/shared/core/security/disabled.ks
|
|
packages-hw: fragments/shared/packages/hardware-support.ks
|
|
extras: fragments/shared/guest-agents/packages.ks
|
|
modifiers:
|
|
storage:
|
|
standard: fragments/shared/live/core/storage.ks
|
|
encrypted: fragments/shared/live/core/storage.ks
|
|
|
|
# Live server recipe
|
|
# Modifiers: security (secure|devel), version (rawhide), hypervisor (true|false)
|
|
live-server:
|
|
description: "A recipe for a live server"
|
|
base: live-core
|
|
required:
|
|
- live-core: fragments/shared/live/core/base.ks
|
|
- storage: fragments/shared/live/core/storage.ks
|
|
- bootloader: fragments/platform/generic-rawhide/bootloader/grub.ks
|
|
- locale: fragments/shared/core/locale.ks
|
|
- services: fragments/shared/core/services.ks
|
|
- network: fragments/shared/core/network.ks
|
|
- packages: fragments/shared/live/core/packages.ks
|
|
- mandatory: fragments/shared/live/core/packages.ks
|
|
- post: fragments/shared/live/post/base.ks
|
|
- session: fragments/shared/live/post/session.ks
|
|
- initial-setup: fragments/shared/initial-setup/server/config.ks
|
|
- repo: fragments/platform/generic-rawhide/repo/rawhide-mirrors.ks
|
|
optional:
|
|
security:
|
|
secure: fragments/shared/core/security/enabled.ks
|
|
devel: fragments/shared/core/security/disabled.ks
|
|
packages-hw: fragments/shared/packages/hardware-support.ks
|
|
hypervisor: fragments/shared/live/hypervisor.ks
|
|
modifiers:
|
|
storage:
|
|
standard: fragments/shared/live/core/storage.ks
|
|
encrypted: fragments/shared/live/core/storage.ks
|