Commit Graph
82 Commits
Author SHA1 Message Date
Lukas Greve 5c9a2535df minor change for where the bootloader is 2026-03-26 11:10:36 +01:00
Lukas Greve 91cb314467 Reduces the number of generated variants 2026-03-26 10:39:46 +01:00
Lukas Greve c193914435 Fix duplicate recipe filenames by adding hardware-support, guest-agents, and hypervisor-type suffixes
Previously, list modifiers like hardware-support, guest-agents, and hypervisor-type created multiple variants but overwrote the same filenames. Now:

1. Add '_hw' suffix when hardware-support is enabled
2. Add '_ga' suffix when guest-agents is enabled
3. Add CPU type (amdcpu, intelcpu) suffix for hypervisor variants
4. Normalize modifier names from hypervisor-type to hypervisor_type

This ensures all 144 recipes have unique filenames.
2026-03-26 10:34:35 +01:00
Lukas Greve cd203b8799 Refactor security and guest-agents config
- Move guest-agents from hypervisor modifier to independent optional feature
- Merge guest-agents/gui.ks into base.ks
- Remove security from required, add optional security modifier with off option
- Fix hypervisor-type modifier key normalization (underscore→hyphen)
- Add expand_variants() to handle list values in manifest
- Update all tests and expected recipes
2026-03-25 21:18:01 +01:00
Lukas Greve 5b8974a6ed hypervisor: implement base vs desktop variants with GUI packages only for desktop
- Split guest-agents/packages.ks into base.ks (qemu-guest-agent) and gui.ks (spice-vdagent)
- Move hypervisor modifier from variant_type.hypervisor to dedicated modifier section
- Added hypervisor modifier with base (headless) and desktop (GUI) options
- Create hypervisor-desktop variant with desktop: gnome for GUI hypervisors
- Update generate_recipe.py to recognize hypervisor-desktop variant name

This ensures GUI packages (virt-manager, spice-vdagent) are only included
in hypervisors with desktop environments, keeping headless hypervisors minimal.
2026-03-25 20:06:13 +01:00
Lukas Greve 0843127d6a Reorganize fragments: flat structure from fragments/shared/ and fragments/platform/ 2026-03-25 19:40:07 +01:00
Lukas Greve 520657dcee recipe-generator: Update to new template structure with install and live templates
- Replaced individual templates with unified 'install' (desktop, server, hypervisor) and 'live' (live-desktop, live-server) templates

- Added new modifiers: variant_type, hypervisor-type, desktop, initial-setup, virtualization

- Updated generate_recipe.py to handle new modifier structure with additive flags

- Updated recipes_manifest.yaml with new modifier structure

- Added missing fragment files and directories
2026-03-25 19:15:32 +01:00
Lukas Greve de961e2dd8 ci: regenerate recipes with %ksappend syntax 2026-03-24 21:29:41 +01:00
Lukas Greve f3031fdf0f fix: update integration tests for new recipe paths 2026-03-24 21:27:47 +01:00
Lukas Greve 1aa264c146 Add recipe generator for automation and DRY recipes
- create generate_recipe.py: CLI tool for generating recipes from templates
- add recipe_templates.yaml: 5 base templates (virtual-desktop, virtual-server, desktop-hypervisor, live-desktop, live-server)
- add recipes_manifest.yaml: 16 recipe variants defined declaratively
- add Makefile: automation targets for generate, validate, test
- add requirements.txt: PyYAML dependency
- add tests/test_recipe_generator.py: 25 pytest tests

This enables:
- Template-based recipe generation with minimal duplication
- One-line variant addition via YAML manifest editing
- Automatic duplicate include prevention
- Ingredient path validation

Generated recipes are committed for reproducibility as per project conventions.
2026-03-24 19:52:34 +01:00
Lukas Greve c1c5fa8d07 Updated dishes, including one with luks encryption 2026-03-24 16:00:32 +01:00
Lukas Greve 88db0b65b1 switch to server-based initial-setup until gnome-initial-setup is fixed 2026-02-18 21:32:53 +01:00
Lukas Greve 714d27b6dc Merge mandatory and default packages ingredients into core-packages
Rename initial setup desktop to gnome initial setup desktop
2026-02-15 19:31:16 +01:00
Lukas Greve fdae77ef23 just new recipes 2026-02-14 17:46:27 +01:00
Lukas Greve 999ff024d3 add new recipes 2026-02-14 17:46:08 +01:00
Lukas Greve 84bcfecd12 fix regression 2026-01-31 15:24:45 +01:00
lukas 986277166e tiny typo fix 2025-12-29 11:43:15 -06:00
Lukas Greve c102ab48f2 remove the hypervisor part 2025-12-14 10:09:16 +01:00
Lukas Greve c39e9b7803 recreate development-ready virtual machine recipes 2025-12-14 09:47:06 +01:00
Lukas Greve a5cbd39b31 default to rawhide instead of fedora 43 2025-12-13 14:40:47 +01:00
Lukas Greve 28c390f1b4 remove the post section to speed installation process 2025-12-11 20:49:29 +01:00
Lukas Greve ebd35f0b1f virtual dishes are for development-only 2025-12-10 21:31:31 +01:00
Lukas Greve bc5f156cd9 All non-virtual dishes / recipes are meant to be shipped with sane security defaults 2025-12-10 21:29:25 +01:00
Lukas Greve a186c60e9a add these changes to nano branch 2025-12-09 17:03:18 +01:00
Lukas Greve f612842e50 explicitly mention fedora 43 2025-11-13 21:28:28 +01:00
Lukas Greve 7ffc71043d reverting back to GRUB 2025-10-15 14:47:02 +02:00
Lukas Greve 28b3e927a6 fix comment 2025-10-10 12:58:26 +02:00
Lukas Greve 246fba3efa switch to systemd-boot 2025-09-07 20:17:05 +02:00
Lukas Greve 515950daad move to root directory 2025-09-05 18:04:55 +02:00
Lukas Greve 6a043dcd3d move and rename list of ingredients 2025-07-01 21:28:50 +02:00
Lukas Greve 6cfad2d5eb move file 2025-05-29 17:48:37 +02:00
Lukas Greve 4bd6294efe new dish 2025-05-21 17:50:40 +02:00
Lukas Greve fee6d59831 move explanation of list of ingredients into the README 2025-05-19 19:55:09 +02:00
luz bb583e20f8 updated list of ingredients 2025-05-12 10:56:43 -05:00
luz ba54075f34 typo fixes 2025-05-06 16:10:00 -05:00
luz 29d0999c07 refactor, typo fixes 2025-05-06 09:40:49 -05:00
luz c6b763a83e remove unecessary ingredient 2025-05-06 09:37:00 -05:00
luz 991e5b3abd remove unnecessary ingredient 2025-05-05 18:15:50 -05:00
luz 2ab76eaace update name of ingredient 2025-05-05 15:43:38 -05:00
luz 6799aa4a4c adopt GPL license instead of MIT 2025-05-04 16:35:14 -05:00
luz a73327e57c remove unecessary comments 2025-05-04 16:34:23 -05:00
luz 4216df8c7e renaming 2025-05-04 16:34:07 -05:00
luz ea732b850e remove some comments 2025-05-04 16:30:37 -05:00
luz 9d1a81827c typo fix 2025-05-04 14:52:46 -05:00
luz 644aa78f3f add correct bootloader for live sessions 2025-05-04 11:06:13 -05:00
luz 0960fa842d refactoring recipes 2025-05-04 10:54:13 -05:00
luz d908257cc7 updates dishes 2025-05-01 16:15:29 -05:00
luz ea20e8fc0a add new live desktop recipe 2025-05-01 14:45:17 -05:00
luz 4b2fb19472 correct storage for live systems 2025-04-30 13:00:00 -05:00
luz ffa89b3abc no-method install 2025-04-30 12:53:06 -05:00