feat: hardware/firmware/gpu/peripherals detection and packages

This commit is contained in:
2026-05-30 18:05:05 +02:00
parent 9757ed3785
commit c843f5289b
10 changed files with 30 additions and 184 deletions

View File

@@ -1,5 +1,5 @@
---
# OS family lists single source of truth for platform detection and validation
# OS family lists - single source of truth for platform detection and validation
os_family_rhel:
- almalinux
- fedora
@@ -10,33 +10,27 @@ os_family_debian:
- ubuntu
- ubuntu-lts
# OS family mapping aligns with the main project's ansible_os_family pattern.
# OS -> family mapping - aligns with the main project's ansible_os_family pattern.
# Enables platform_config dict lookups per role instead of inline when: is_rhel chains.
os_family_map:
almalinux: RedHat
alpine: Alpine
archlinux: Archlinux
debian: Debian
fedora: RedHat
opensuse: Suse
rhel: RedHat
rocky: RedHat
ubuntu: Debian
ubuntu-lts: Debian
void: Void
os_supported:
- almalinux
- alpine
- archlinux
- debian
- fedora
- opensuse
- rhel
- rocky
- ubuntu
- ubuntu-lts
- void
# User input. Normalized into hypervisor_cfg + hypervisor_type.
hypervisor:
@@ -125,7 +119,7 @@ system_defaults:
motd: false
sudo: true
rhel_repo:
source: "iso" # iso|satellite|none how RHEL systems get packages post-install
source: "iso" # iso|satellite|none - how RHEL systems get packages post-install
url: "" # Satellite/custom repo URL when source=satellite
chroot:
tool: "arch-chroot" # arch-chroot|chroot|systemd-nspawn
@@ -133,8 +127,11 @@ system_defaults:
generator: "" # auto-detected; override: dracut|mkinitcpio|initramfs-tools
desktop:
enabled: false
environment: "" # gnome|kde|xfce|sway|hyprland|cinnamon|mate|lxqt|budgie
display_manager: "" # auto from environment when empty; override: gdm|sddm|lightdm|greetd
environment: "" # gnome|kde|sway|hyprland
display_manager: "" # auto from environment when empty; override: gdm|sddm|greetd
autologin: false # false | username from system.users
session: "" # session name/command for the autologin user
groups: [] # opt-in package groups (keys of desktop_package_groups)
secure_boot:
enabled: false
method: "" # arch only: sbctl (default) or uki; ignored for other distros
@@ -142,7 +139,7 @@ system_defaults:
enabled: "auto" # auto = on for physical, off for virtual
microcode: "auto"
gpu:
enabled: false
enabled: "auto" # auto = follows desktop.enabled
nvidia_driver: "auto" # auto | open | proprietary | nouveau
peripherals:
enabled: "auto" # auto = follows desktop.enabled
@@ -152,7 +149,7 @@ system_defaults:
hardware:
profile: {} # empty = autodetect; set to override (golden image)
# Per-hypervisor required fields drives data-driven validation.
# Per-hypervisor required fields - drives data-driven validation.
# All virtual types additionally require network bridge or interfaces.
hypervisor_required_fields:
proxmox:
@@ -176,7 +173,7 @@ hypervisor_disk_device_map:
proxmox: "/dev/sd"
vmware: "/dev/sd"
# Mountpoints managed by the partitioning role forbidden for extra disks.
# Mountpoints managed by the partitioning role - forbidden for extra disks.
reserved_mounts:
- /boot
- /boot/efi