mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-01-11 22:30:25 +01:00
43 lines
1.4 KiB
Markdown
43 lines
1.4 KiB
Markdown
# Library
|
|
|
|
This directory contains helper functions used by `flake.nix` to reduce code duplication and make it
|
|
easier to add new machines.
|
|
|
|
## Current Functions
|
|
|
|
### Core System Generators
|
|
|
|
1. **`attrs.nix`** - Attribute set manipulation utilities
|
|
2. **`macosSystem.nix`** - macOS configuration generator for
|
|
[nix-darwin](https://github.com/LnL7/nix-darwin)
|
|
3. **`nixosSystem.nix`** - NixOS configuration generator
|
|
4. **`colmenaSystem.nix`** - Remote deployment configuration for
|
|
[colmena](https://github.com/zhaofengli/colmena)
|
|
|
|
### Specialized Module Generators
|
|
|
|
5. **`genK3sAgentModule.nix`** - K3s agent node configuration generator
|
|
6. **`genK3sServerModule.nix`** - K3s server node configuration generator
|
|
7. **`genKubeVirtGuestModule.nix`** - KubeVirt guest VM configuration generator
|
|
8. **`genKubeVirtHostModule.nix`** - KubeVirt host configuration generator
|
|
|
|
### Entry Point
|
|
|
|
9. **`default.nix`** - Main entry point that imports all functions and exports them as a single
|
|
attribute set
|
|
|
|
## Usage
|
|
|
|
These functions are designed to:
|
|
|
|
- Generate consistent configurations across different architectures
|
|
- Provide type-safe configuration for complex systems
|
|
- Enable easy scaling of the infrastructure
|
|
- Support both local development and production deployments
|
|
|
|
## Architecture Support
|
|
|
|
- **x86_64-linux**: Primary desktop systems
|
|
- **aarch64-linux**: ARM64 Linux systems (Apple Silicon, SBCs)
|
|
- **aarch64-darwin**: Apple Silicon macOS systems
|