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:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+9
-16
@@ -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,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
@@ -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
|
||||
@@ -117,6 +123,11 @@ class ManifestProcessor:
|
||||
if 'variants' not in recipe_config:
|
||||
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
|
||||
|
||||
|
||||
+95
-84
@@ -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
|
||||
|
||||
The templates define which ingredients are required, optional, conditional, or version-specific.
|
||||
Modifiers control which optional ingredients get included based on user preferences.
|
||||
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
|
||||
|
||||
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': {...}},
|
||||
'optional': {...},
|
||||
'versioned': {...},
|
||||
'conditional': {...},
|
||||
'flags': {...}
|
||||
},
|
||||
...
|
||||
'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,18 +232,44 @@ 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
|
||||
|
||||
if fragment_path not in seen:
|
||||
includes.append(f"%include {fragment_path}")
|
||||
seen.add(fragment_path)
|
||||
# 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
|
||||
|
||||
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)
|
||||
|
||||
# === 2. MODIFIER INGREDIENTS ===
|
||||
# Process user-specified options like desktop, storage, security
|
||||
@@ -437,9 +455,10 @@ 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:
|
||||
includes.append(f"%include {fragment_path}")
|
||||
seen.add(fragment_path)
|
||||
if mod_value is True:
|
||||
if fragment_path not in seen:
|
||||
includes.append(f"%include {fragment_path}")
|
||||
seen.add(fragment_path)
|
||||
|
||||
return includes
|
||||
|
||||
@@ -467,36 +486,42 @@ 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
|
||||
guest_agents = self._get_modifier(modifiers, 'guest_agents')
|
||||
@@ -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
|
||||
|
||||
+74
-94
@@ -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
|
||||
|
||||
+4
-4
@@ -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
|
||||
+4
-4
@@ -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
|
||||
+4
-4
@@ -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
-6
@@ -5,21 +5,20 @@
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# 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
|
||||
%include storage/encrypted.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
+6
-7
@@ -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
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
+6
-7
@@ -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
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
+6
-7
@@ -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
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
+6
-7
@@ -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
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
+4
-4
@@ -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
-6
@@ -5,21 +5,20 @@
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# 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
|
||||
%include repo/rawhide-mirrors.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
+5
-6
@@ -5,21 +5,20 @@
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# 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
|
||||
%include storage/encrypted.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,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
|
||||
+6
-6
@@ -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
|
||||
+6
-6
@@ -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
|
||||
@@ -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
|
||||
%include initial-setup/server/config.ks
|
||||
+5
-8
@@ -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
|
||||
%include initial-setup/server/config.ks
|
||||
@@ -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
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user