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
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+9 -16
View File
@@ -103,9 +103,6 @@ def main() -> None:
action='store_true',
help='Show what would be generated without writing files')
# Single generation mode options
parser.add_argument('--type', '-T',
help='Recipe type (e.g., virtual-desktop)')
parser.add_argument('--output', '-o',
type=Path, help='Output file (single generation)')
@@ -167,8 +164,9 @@ def main() -> None:
return
# === SINGLE GENERATION MODE ===
# If --type is specified, generate one recipe with the given options
if args.type:
# If --output is specified without --manifest, generate one recipe with the given options
# This makes --output without --manifest trigger single generation mode
if args.output and not args.manifest:
generate_single(args, generator)
return
@@ -396,12 +394,8 @@ def generate_from_manifest(args: argparse.Namespace, generator: RecipeGenerator)
# Generate all recipes from the manifest
for recipe_config in manifest.get('recipes', []):
recipe_type = recipe_config.get('recipe_type', recipe_config['name'])
if recipe_type not in generator.templates:
print(f"Error: Unknown recipe type in manifest: {recipe_type}", file=sys.stderr)
sys.exit(1)
# Get variants for this recipe type
# No recipe_type needed - use the universal template directly
name = recipe_config.get('name', 'unnamed')
variants = recipe_config.get('variants', [])
# Expand list-valued variants (e.g., version: ["43", "rawhide"])
@@ -411,11 +405,10 @@ def generate_from_manifest(args: argparse.Namespace, generator: RecipeGenerator)
# Extract version and other modifiers from variant
version = variant['version']
modifiers = {k: v for k, v in variant.items() if k not in ['name', 'version']}
modifiers = {k: v for k, v in variant.items() if k not in ['name', 'version']}
# name kept for manifest organization only, not passed to generator
# Generate the recipe content
content = generator.generate(recipe_type, version, **modifiers)
content = generator.generate(version, **modifiers)
# Optional validation on generated content
if args.validate and not args.dry_run:
@@ -423,13 +416,13 @@ def generate_from_manifest(args: argparse.Namespace, generator: RecipeGenerator)
semantic_issues = semantic_validator.validate(content, version)
all_issues = issues + semantic_issues
if all_issues:
print(f"Validation issues for {recipe_type} {version}:", file=sys.stderr)
print(f"Validation issues for {name} {version}:", file=sys.stderr)
for issue in issues:
print(f" - {issue}", file=sys.stderr)
sys.exit(1)
# Generate output filename based on recipe parameters
filename = generator.generate_filename(recipe_type, version, **modifiers)
filename = generator.generate_filename(version, **modifiers)
output_path = args.output_dir / filename
# Handle dry-run mode
@@ -479,7 +472,7 @@ def generate_single(args: argparse.Namespace, generator: RecipeGenerator) -> Non
modifiers = {k: v for k, v in modifiers.items() if v is not None}
# Generate the recipe
content = generator.generate(args.type, args.version, **modifiers)
content = generator.generate(args.version, **modifiers)
# Optional validation
if args.validate:
+5 -2
View File
@@ -5,8 +5,11 @@ the recipe generator. It follows the common Python pattern of having a script
that can be run directly or imported as a module.
Usage:
# Run as script
python generate_recipe.py --type virtual-desktop --version 43 --output output.cfg
# Run as script for single generation
python generate_recipe.py --output my-recipe.cfg --version 43 --desktop gnome
# Or using the universal template with modifiers
python generate_recipe.py --output single.cfg --version 43 --guest-agents true
# Or from another Python script
from generate_recipe import main
+14 -3
View File
@@ -14,14 +14,19 @@ are used in batch recipe generation mode. It has two main responsibilities:
Manifest Example:
recipes:
- name: virtual-desktop
- name: desktop
variants:
- version: 43
desktop: gnome
storage: encrypted
- version: ["43", "rawhide"]
storage: ["standard", "encrypted"]
The above would generate 4 recipes (2 versions × 2 storage types).
The above would generate 3 recipes (1 desktop + 2 rawhide variants).
With the universal template (proteus), recipes are generated using a single
template that supports all system types. The 'name' field is purely for
organization and doesn't affect the generated filenames.
The key insight is that list values in variants represent "multiple values for
this field", and we want to generate one recipe for each combination. This is
@@ -89,9 +94,10 @@ class ManifestProcessor:
This method performs schema-level validation of a manifest dictionary.
It checks that:
1. The top-level 'recipes' key exists
2. Each recipe configuration has a 'name' field
2. Each recipe configuration has a 'name' field (for organization only)
3. Each recipe configuration has a 'variants' field
4. Each variant has a 'version' field
5. No 'recipe_type' field exists (old format, removed with universal template)
This is a basic structural check that catches obvious errors before
trying to process the manifest. It doesn't validate the content of
@@ -118,6 +124,11 @@ class ManifestProcessor:
errors.append(f"Recipe '{recipe_config.get('name', 'unnamed')}' "
"missing 'variants' key")
# Check for old recipe_type field (which is no longer used)
if 'recipe_type' in recipe_config:
errors.append(f"Recipe '{recipe_config.get('name', 'unnamed')}' "
"has 'recipe_type' field which is no longer used with universal template")
return errors
def expand_variants(self, variants: List[Dict]) -> List[Dict]:
+84 -73
View File
@@ -56,17 +56,18 @@ class RecipeGenerator:
This is the core class that powers the recipe generation system. It works by:
1. Loading template definitions from a YAML file (recipe_templates.yaml)
2. Taking a recipe type (like "virtual-desktop") and version (like "43")
3. Accepting optional modifiers (like desktop environment, storage type, security mode)
4. Building a list of %include directives that reference ingredient fragments
5. Outputting a complete kickstart file with header and include statements
2. The template defines all the base ingredients and modifier options
3. Accepting version (Fedora version) and optional modifiers
4. Building a list of %include directives pointing to ingredient fragments
5. Outputting a complete kickstart file with header and includes
The templates define which ingredients are required, optional, conditional, or version-specific.
Modifiers control which optional ingredients get included based on user preferences.
Think of it as a "recipe assembler" - the template is the master recipe,
modifiers are your customizations, and the output is a complete installation
script that pulls in the right ingredient fragments.
Example usage:
generator = RecipeGenerator(Path('recipe_templates.yaml'))
recipe = generator.generate('virtual-desktop', '43', desktop='gnome', storage='encrypted')
recipe = generator.generate('43', desktop='gnome', storage='encrypted')
# Returns a string containing the complete kickstart recipe
"""
@@ -83,26 +84,24 @@ class RecipeGenerator:
def _load_templates(self, path: Path) -> Dict:
"""Load recipe templates from YAML file.
This method reads the templates YAML file and extracts the 'templates' section.
The YAML file contains a top-level 'templates' key with all recipe type definitions.
This method reads the templates YAML file and loads it as a single universal template.
The YAML file now contains the proteus template directly without a 'templates' wrapper.
Args:
path: Path to the templates YAML file (can be absolute or relative)
Returns:
Dictionary mapping recipe types to their template definitions.
The template dictionary (entire YAML content).
Example structure:
{
'virtual-desktop': {
'description': 'Virtual machine with desktop',
'required': ['ingredients/base.cfg', ...],
'modifiers': {'desktop': {...}, 'storage': {...}},
'name': 'proteus',
'description': 'Universal template...',
'required': {...},
'modifiers': {...},
'optional': {...},
'versioned': {...},
'conditional': {...},
'flags': {...}
},
...
}
Raises:
@@ -116,8 +115,8 @@ class RecipeGenerator:
template_path = self.project_root / path
with open(template_path, encoding='utf-8') as f:
data = yaml.safe_load(f)
# Extract the 'templates' section - the YAML file has this as top-level key
return data['templates']
# Return the entire YAML content as the single universal template
return data
except FileNotFoundError:
print(f"Error: Templates file not found: {template_path}")
exit(2)
@@ -125,16 +124,13 @@ class RecipeGenerator:
print(f"Error: Invalid YAML in {template_path}: {e}")
exit(2)
def generate(self, recipe_type: str, version: str, **modifiers) -> str:
def generate(self, version: str, **modifiers) -> str:
"""Generate a complete kickstart recipe from a template with modifiers.
This is the main entry point for recipe generation. It takes a recipe type
(like "virtual-desktop"), a Fedora version, and any number of modifier options,
then returns a complete kickstart file as a string.
This is the main entry point for recipe generation. It takes a Fedora version
and any number of modifier options, then returns a complete kickstart file as a string.
Args:
recipe_type: The type of recipe to generate. Must match a key in the templates.
Examples: 'virtual-desktop', 'server', 'hypervisor'
version: Fedora version string, typically '43' or 'rawhide'.
This affects which versioned ingredients are included.
**modifiers: Keyword arguments for recipe customization:
@@ -153,13 +149,9 @@ class RecipeGenerator:
- %include directives for all required and selected ingredients
Raises:
SystemExit: If the recipe_type is not found in templates
SystemExit: If the template is invalid or missing required ingredients
"""
if recipe_type not in self.templates:
print(f"Error: Unknown recipe type: {recipe_type}")
exit(1)
template = self.templates[recipe_type]
template = self.templates
# Build the output in two parts:
# 1. Header with ASCII art and description
@@ -180,13 +172,13 @@ class RecipeGenerator:
describes what type of system it will install.
Args:
description: Human-readable description of the recipe type
(e.g., "Virtual desktop environment")
description: Human-readable description of the template
(e.g., "Universal template for generating kickstart recipes")
Returns:
List of strings representing the header lines, including:
- The ASCII art banner (from HEADER_ASCII_ART constant)
- A comment line with the recipe description
- A comment line with the template description
- An empty line to separate header from content
"""
header = HEADER_ASCII_ART.copy()
@@ -240,16 +232,42 @@ class RecipeGenerator:
# === 1. REQUIRED INGREDIENTS ===
# These are always included, regardless of user options
# Example: base system, bootloader, partition scheme
for item in template.get('required', []):
if isinstance(item, dict):
# Dict format allows conditional logic within required
fragment_path = list(item.values())[0]
else:
# Simple string path
fragment_path = item
# The template uses nested dict structure: required[section][value] = path or [paths]
# For each section, use either:
# - A modifier value that overrides the default
# - The default value from the first/only key in the section
if fragment_path not in seen:
for section_name, section_config in template.get('required', {}).items():
if isinstance(section_config, dict):
# Find the value to use for this section
# Check modifiers first, then use default
default_value = None
override_value = None
# Get the default value (first key in dict, or only key)
keys = list(section_config.keys())
if keys:
default_value = keys[0]
# Check if any modifier overrides this section
for mod_key, mod_value in modifiers.items():
mod_key_normalized = mod_key.replace("_", "-")
if mod_key_normalized == section_name and isinstance(mod_value, str):
if mod_value in section_config:
override_value = mod_value
break
# Use override if available, otherwise use default
value_to_use = override_value if override_value else default_value
if value_to_use and value_to_use in section_config:
fragment_path = section_config[value_to_use]
if isinstance(fragment_path, list):
for fp in fragment_path:
if fp is not None and fp not in seen:
includes.append(f"%include {fp}")
seen.add(fp)
elif fragment_path and fragment_path not in seen:
includes.append(f"%include {fragment_path}")
seen.add(fragment_path)
@@ -437,7 +455,8 @@ class RecipeGenerator:
mod_key_normalized = mod_key.replace('_', '-')
if mod_key_normalized in template.get('flags', {}):
fragment_path = template['flags'][mod_key_normalized]
if mod_value is True and fragment_path not in seen:
if mod_value is True:
if fragment_path not in seen:
includes.append(f"%include {fragment_path}")
seen.add(fragment_path)
@@ -467,35 +486,41 @@ class RecipeGenerator:
return modifiers[alt_key]
return default
def generate_filename(self, recipe_type: str, version: str, **modifiers) -> str:
def generate_filename(self, version: str, **modifiers) -> str:
"""Generate recipe filename from parameters.
Creates a descriptive filename that encodes the recipe's configuration.
This allows users to identify what a recipe does just from its name.
Filename format:
{recipe_type}-{guest_type}-{variant}-{desktop}-{security}-{storage}-{version}.cfg
Filename format (using Approach A - primary modifier first):
{primary_modifier}-{other_modifiers}-{version}.cfg
Examples:
- virtual-desktop_gnome_43.cfg
- server_encrypted_43.cfg
- hypervisor_kvm_devel_43.cfg
- gnome_43.cfg (desktop=gnome is primary modifier)
- encrypted_43.cfg (storage=encrypted is primary modifier)
- server_43.cfg (initial_setup=server with no desktop)
- gnome_encrypted_43.cfg (when multiple modifiers are set)
The method only adds suffixes for non-default values:
- GNOME is default → only add if different (labwc)
- secure is default → only add if devel
- standard is default → only add if encrypted
The method prioritizes modifiers to create intuitive filenames:
- If `desktop` is present, it becomes the primary modifier
- Otherwise, `storage` or `initial_setup` can be primary
- `version` is always included at the end
Args:
recipe_type: Base recipe type (e.g., 'virtual-desktop')
version: Fedora version (e.g., '43' or 'rawhide')
**modifiers: All the modifier values that affect the recipe
Returns:
Filename string ending in .cfg
"""
# Build base parts - start with recipe type
parts = [recipe_type.replace('_', '-')]
# Build base parts - start with version (required)
parts = []
# Determine primary modifier (Approach A)
# If desktop is present, use it as primary modifier
desktop = self._get_modifier(modifiers, 'desktop')
if desktop:
parts.append(desktop)
# Add guest_agents suffix (for both True and False)
# Distinguishes between virtual machines and bare metal installs
@@ -516,7 +541,7 @@ class RecipeGenerator:
# Add hypervisor_type suffix
# For hypervisors, include the type (kvm, xen, etc.)
if modifiers.get('hypervisor_type'):
ht = modifiers['hypervisor_type']
ht = modifiers.get('hypervisor_type')
if isinstance(ht, list):
# Multiple hypervisor types
for h in ht:
@@ -526,17 +551,6 @@ class RecipeGenerator:
# Single hypervisor type
parts.append(ht)
# Add desktop
desktop = self._get_modifier(modifiers, 'desktop')
if desktop:
parts.append(desktop)
# Add security suffix (devel only, since secure is default)
# Security defaults to 'secure', so only 'devel' gets noted
security = self._get_modifier(modifiers, 'security')
if security == 'off':
parts.append('devel')
# Add storage suffix (encrypted only, since standard is default)
# Standard storage is default, encrypted gets noted
storage = self._get_modifier(modifiers, 'storage')
@@ -552,10 +566,7 @@ class RecipeGenerator:
# Add initial_setup suffix (non-server values)
# Server is default, other setup types get noted
initial_setup = self._get_modifier(modifiers, 'initial_setup')
if initial_setup == 'server':
# Server is the default for non-desktop, non-hypervisor
parts.append('server')
elif initial_setup and initial_setup != 'server':
if initial_setup and initial_setup != 'server':
parts.append(f'{initial_setup}-setup')
# Add bootloader suffix (systemd-boot only)
@@ -564,7 +575,7 @@ class RecipeGenerator:
if bootloader == 'systemd-boot':
parts.append('systemd-boot')
# Add version - always included
# Add version - always included at the end
parts.append(str(version))
# Join all parts with underscores and add .cfg extension
+50 -70
View File
@@ -1,32 +1,56 @@
# 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
name: proteus
description: "Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system"
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 }
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:
version:
"43": repo/fedora-43-mirrors.ks
repository:
"rawhide": repo/rawhide-mirrors.ks
storage:
standard: storage/standard.ks
encrypted: storage/encrypted.ks
"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
@@ -34,14 +58,6 @@ templates:
- 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
@@ -54,43 +70,7 @@ templates:
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
post:
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
- base: live/post/base.ks
- session: live/post/session.ks
@@ -5,16 +5,16 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
@@ -5,16 +5,16 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
@@ -5,16 +5,16 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
@@ -5,16 +5,16 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
@@ -22,4 +22,3 @@
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
%include storage/encrypted.ks
@@ -5,22 +5,21 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include storage/encrypted.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
%include storage/encrypted.ks
%include repo/rawhide-mirrors.ks
@@ -5,22 +5,21 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include storage/encrypted.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
%include storage/encrypted.ks
%include repo/rawhide-mirrors.ks
@@ -5,22 +5,21 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include storage/encrypted.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
%include storage/encrypted.ks
%include repo/rawhide-mirrors.ks
@@ -5,22 +5,21 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include storage/encrypted.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
%include storage/encrypted.ks
%include repo/rawhide-mirrors.ks
@@ -5,16 +5,16 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
@@ -5,16 +5,16 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
@@ -22,4 +22,3 @@
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
%include repo/rawhide-mirrors.ks
@@ -5,16 +5,16 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
@@ -22,4 +22,3 @@
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
%include storage/encrypted.ks
+24
View File
@@ -0,0 +1,24 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include repo/fedora-43-mirrors.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
@@ -0,0 +1,25 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include repo/fedora-43-mirrors.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include storage/encrypted.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
@@ -0,0 +1,25 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include repo/fedora-43-mirrors.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include storage/encrypted.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
@@ -0,0 +1,25 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include repo/fedora-43-mirrors.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include storage/encrypted.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
@@ -0,0 +1,25 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include repo/fedora-43-mirrors.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include storage/encrypted.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
@@ -0,0 +1,24 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include repo/fedora-43-mirrors.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
@@ -0,0 +1,24 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include repo/fedora-43-mirrors.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
@@ -5,23 +5,23 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include packages/virtual-machine-manager/packages.ks
%include packages/virtual-machine-manager/post-scripts.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
%include packages/virtual-machine-manager/packages.ks
%include packages/virtual-machine-manager/post-scripts.ks
%include hypervisor/amdcpu.ks
@@ -5,23 +5,23 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include packages/virtual-machine-manager/packages.ks
%include packages/virtual-machine-manager/post-scripts.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
%include packages/virtual-machine-manager/packages.ks
%include packages/virtual-machine-manager/post-scripts.ks
%include hypervisor/intelcpu.ks
+24
View File
@@ -0,0 +1,24 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include repo/fedora-43-mirrors.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
@@ -1,25 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include bootloader/grub.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
%include repo/rawhide-mirrors.ks
@@ -1,25 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include bootloader/grub.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
%include storage/encrypted.ks
@@ -1,25 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include bootloader/grub.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
%include storage/encrypted.ks
@@ -1,24 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include bootloader/grub.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
@@ -1,25 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include bootloader/grub.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
%include repo/rawhide-mirrors.ks
@@ -1,24 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include bootloader/grub.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
@@ -1,25 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include bootloader/grub.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
%include repo/rawhide-mirrors.ks
@@ -1,20 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# A live recipe for live-desktop or live-server
%include live/core/base.ks
%include repo/fedora-43-mirrors.ks
%include live/core/storage.ks
%include live/core/bootloader/grub.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include live/core/packages.ks
%include live/post/base.ks
%include live/post/session.ks
%include repo/rpmfusion-nonfree.ks
@@ -5,18 +5,17 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include repo/rawhide-mirrors.ks
@@ -5,20 +5,17 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# An install recipe for desktop, server, or hypervisor
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
%include core/base.ks
%include repo/fedora-43-mirrors.ks
%include storage/standard.ks
%include core/base.ks
%include bootloader/grub.ks
%include storage/standard.ks
%include core/locale.ks
%include core/services.ks
%include core/network.ks
%include packages/core-group.ks
%include packages/core.ks
%include packages/fedora-remix.ks
%include packages/hand-picked.ks
%include core/security/enabled.ks
%include initial-setup/server/config.ks
%include desktop/gnome/config.ks
%include desktop/gnome/packages.ks
%include desktop/gnome/post-scripts.ks
+8 -14
View File
@@ -11,13 +11,12 @@
# Example: version: ["43", "rawhide"] + storage: ["standard", "encrypted"]
# creates 4 variants: (43,standard), (43,encrypted), (rawhide,standard), (rawhide,encrypted)
#
# NOTE: The 'name' field is for organization only and doesn't affect generated filenames.
# The recipe type is always 'install' or 'live' from recipe_templates.yaml
# NOTE: The 'name' field is no longer used with the universal template.
# It can be kept for organization but doesn't affect generated filenames.
recipes:
# Install desktop variants
# Desktop variants
- name: desktop
recipe_type: install
variants:
- version: ["43", "rawhide"]
desktop: gnome
@@ -28,9 +27,8 @@ recipes:
initial-setup: server
security: secure
# Install server variants
# Server variants
- name: server
recipe_type: install
variants:
- version: ["43", "rawhide"]
storage: standard
@@ -40,9 +38,8 @@ recipes:
initial-setup: server
security: secure
# Install hypervisor variants
# Hypervisor variants
- name: hypervisor
recipe_type: install
variants:
- version: 43
storage: standard
@@ -54,9 +51,8 @@ recipes:
initial-setup: server
security: secure
# Install desktop-hypervisor variants
# Desktop-hypervisor variants
- name: desktop-hypervisor
recipe_type: install
variants:
- version: 43
desktop: gnome
@@ -70,16 +66,14 @@ recipes:
security: secure
# Live desktop variants
- name: desktop
recipe_type: live
- name: desktop-live
variants:
- version: 43
hardware-support: true
guest-agents: false
# Live server variants
- name: server
recipe_type: live
- name: server-live
variants:
- version: 43
hardware-support: true
+15 -13
View File
@@ -72,28 +72,30 @@ class TemplateValidator:
- Verifies 'required' key exists (base ingredients)
2. Required Ingredients Check:
- Iterates through template['required'] list
- Resolves each path relative to project_root
- Iterates through template['required'] nested dict structure
- For each section and value, checks if path(s) are valid
- Checks if the file actually exists
- Reports missing files as errors
3. Versioned Ingredients Check:
3. Modifier Ingredients Check:
- Checks template['modifiers'] structure
- For each modifier and value, checks referenced files exist
4. Optional Ingredients Check:
- Checks paths in template['optional']
- Verifies referenced files exist on disk
5. Versioned Ingredients Check:
- Checks paths in template['versioned']
- If the path contains {version}, it's deferred to generation time
- Otherwise checks if the resolved file exists
4. Conditional Ingredients Check:
- Iterates through template['conditional']
- For each modifier and value, checks referenced files exist
- Handles both single paths and lists of paths
5. Flag Ingredients Check:
6. Flag Ingredients Check:
- Checks all paths in template['flags']
- Flags are boolean on/off switches
- Flags are simple boolean on/off switches
Args:
template: The template dictionary to validate
Structure: {'description': str, 'required': [...], ...}
template: The entire template YAML content
Structure: {'name': str, 'description': str, 'required': {...}, ...}
Returns:
List of validation error strings (empty if valid)