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
This commit is contained in:
35
README.md
35
README.md
@@ -54,7 +54,7 @@ users.nix # User account definitions
|
||||
|
||||
flake.lock # Locked dependency versions
|
||||
|
||||
variants/ # Hardware type modules (exportable as nixosModules)
|
||||
hw/ # Hardware type modules (exportable as nixosModules)
|
||||
├── default.nix # Auto-exports all variant types
|
||||
├── nix-desktop.nix # Desktop workstations
|
||||
├── nix-laptop.nix # Laptop systems
|
||||
@@ -64,8 +64,8 @@ variants/ # Hardware type modules (exportable as nixosModules)
|
||||
├── nix-zima.nix # ZimaBoard systems
|
||||
└── nix-ephemeral.nix # Diskless/netboot systems
|
||||
|
||||
glue/ # Fleet generation and common configuration
|
||||
├── fleet.nix # Processes inventory.nix to generate all hosts
|
||||
fleet/ # Fleet generation and common configuration
|
||||
├── default.nix # Processes inventory.nix to generate all hosts
|
||||
├── common.nix # Common NixOS configuration (all hosts)
|
||||
├── boot.nix # Boot and filesystem configuration
|
||||
└── user-config.nix # User account and home-manager integration
|
||||
@@ -233,6 +233,35 @@ nix flake show
|
||||
|
||||
**See [docs/BUILDING.md](docs/BUILDING.md) for complete guide.**
|
||||
|
||||
### Using Athenix as a Library
|
||||
|
||||
Import Athenix in your own flake to use its fleet generation logic with custom inventory:
|
||||
|
||||
```nix
|
||||
{
|
||||
inputs.athenix.url = "git+https://git.factory.uga.edu/UGA-Innovation-Factory/athenix.git";
|
||||
|
||||
outputs = { self, athenix, ... }: {
|
||||
# Generate configurations with custom fleet and hardware types
|
||||
nixosConfigurations = athenix.lib.mkFleet {
|
||||
fleet = import ./my-inventory.nix;
|
||||
hwTypes = import ./my-hardware-types.nix;
|
||||
};
|
||||
|
||||
# Or use individual modules
|
||||
nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
|
||||
modules = [
|
||||
athenix.nixosModules.hw.nix-desktop # Use Athenix hardware configs
|
||||
athenix.nixosModules.sw # Use Athenix software configs
|
||||
./configuration.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
**Exported modules:** `nix-desktop`, `nix-laptop`, `nix-surface`, `nix-lxc`, `nix-wsl`, `nix-ephemeral`, `nix-zima`, `sw`, `common`
|
||||
|
||||
## System Types
|
||||
|
||||
Set via `athenix.sw.type`:
|
||||
|
||||
Reference in New Issue
Block a user