Refactored the repository structure by renaming variants/ to hw and glue/ to fleet, fixing an infinite recursion bug by separating fleet options evaluation, and adding a lib.mkFleet function to enable external flakes to reuse Athenix's fleet generation #29

Merged
hdh20267 merged 10 commits from inventory-as-module into main 2026-01-07 23:20:24 +00:00
Owner
No description provided.
hdh20267 added 10 commits 2026-01-07 23:20:09 +00:00
- Rename variants/ to hw/ for clearer hardware module naming
- Rename glue/ to fleet/ for more intuitive fleet management
- Move boot/fs configuration from glue/boot.nix to separate fleet/boot.nix and fleet/fs.nix
- Improve separation of concerns between boot, filesystem, and common config
- Create fleet/fleet-option.nix to define athenix.fleet and athenix.hwTypes options
- Use lib.evalModules to evaluate inventory separately from host configs
- Enable external overrides of fleet and hardware types via lib.mkForce
- Fix infinite recursion issue by avoiding config references in imports
- Move athenix.system.gc options from fleet/common.nix to sw/gc.nix
- Move athenix.host.buildMethods option to sw/gc.nix
- Move home-manager, agenix, disko imports to sw/default.nix
- Better separation: fleet/ handles generation, sw/ handles software config
- Create lib/mkFleet.nix to expose fleet generator as library function
- Allow external flakes to use Athenix's fleet logic with custom inventory
- Export lib output in flake.nix with proper input passing
- Enable usage: nixosConfigurations = athenix.lib.mkFleet { fleet = ...; hwTypes = ...; }
- Use fleet.modules instead of trying to access mkFleet output directly
- Fix netboot artifact generation to correctly access module list
- Ensure artifacts can access both nixosConfigurations and modules from fleet
- Prevent conflicts when disabling systemd-networkd in stateless kiosk config
- Ensures the disable takes precedence over other module settings
- Remove trailing whitespace and ensure consistent formatting
- Update NAMESPACE.md: filesystem.device and swapSize defaults now null
- Update README.md: add 'Using Athenix as a Library' section with lib.mkFleet
- Update copilot-instructions.md: reflect new directory structure and defaults
- Update EXTERNAL_MODULES.md: correct paths from variants/ and glue/ to hw/ and fleet/
- Update PROXMOX_LXC.md: update hardware type path reference
hdh20267 merged commit ea4c2df776 into main 2026-01-07 23:20:24 +00:00
hdh20267 deleted branch inventory-as-module 2026-01-07 23:20:24 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: UGA-Innovation-Factory/athenix#29