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

10 Commits

Author SHA1 Message Date
UGA Innovation Factory
d89caa8a6b chore: run nix fmt 2026-01-07 18:15:37 -05:00
UGA Innovation Factory
4cb8d8ef13 chore: remove refactored-out files 2026-01-07 18:15:19 -05:00
UGA Innovation Factory
97646f3229 docs: update documentation for refactored structure
- 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
2026-01-07 18:12:39 -05:00
UGA Innovation Factory
d3788be951 chore: update inventory.nix formatting
- Remove trailing whitespace and ensure consistent formatting
2026-01-07 18:12:28 -05:00
UGA Innovation Factory
cda1975631 fix: use lib.mkForce for systemd.network.enable in stateless-kiosk
- Prevent conflicts when disabling systemd-networkd in stateless kiosk config
- Ensures the disable takes precedence over other module settings
2026-01-07 18:12:19 -05:00
UGA Innovation Factory
7145f5b3d8 fix: update artifacts.nix to use fleet.modules
- 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
2026-01-07 18:12:07 -05:00
UGA Innovation Factory
1ce7334a73 feat: add lib.mkFleet for external flake consumption
- 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 = ...; }
2026-01-07 18:11:59 -05:00
UGA Innovation Factory
775080949d refactor: move GC and buildMethods options to sw module
- 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
2026-01-07 18:11:46 -05:00
UGA Innovation Factory
d15b4d8067 feat: add fleet configuration options module
- 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
2026-01-07 18:11:29 -05:00
UGA Innovation Factory
5875725ca2 refactor: reorganize directory structure (variants -> hw, glue -> fleet)
- 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
2026-01-07 18:11:19 -05:00