Expand description
§consortium-nix
NixOS deployment orchestration for consortium.
This crate provides the deployment pipeline for NixOS and nix-darwin systems, replacing colmena. It consumes fleet configuration (produced by the Nix library) and orchestrates the evaluate → build → copy → activate pipeline using consortium’s DAG executor for maximum parallelism with per-host pipelining.
§Architecture
The deployment pipeline has four stages, executed as a DAG:
For each host:
eval(host) → build(host) → copy(host) → activate(host)Stages run in parallel across hosts (up to concurrency limits), and each host can advance independently — host A can be copying while host B is still building.
Builder health checking (health) validates remote builders before use.
Re-exports§
pub use config::DeployAction;pub use config::DeploymentNode;pub use config::DeploymentPlan;pub use config::FleetConfig;pub use config::ProfileType;pub use error::NixError;pub use error::Result;
Modules§
- activate
- Profile activation — switch NixOS/nix-darwin systems to new configurations.
- build
- Nix build orchestration — build closures locally or with distributed builders.
- config
- Configuration types for NixOS deployment.
- copy
- Closure copying — transfer built closures to deployment targets.
- error
- Error types for NixOS deployment operations.
- eval
- Nix evaluation — resolve toplevel store paths and detect changes.
- health
- Builder health checking — probe builders for SSH connectivity and Nix store access.
- tasks
- DagTask implementations for each NixOS deployment phase.
Structs§
- Deploy
Report - Summary of a deployment run.
Functions§
- deploy
- Run the full deployment pipeline using the DAG executor.