ALPHA: wire is a tool to deploy nixos systems
wire.althaea.zone/
1{ flake }:
2let
3 nixpkgs = import flake.inputs.nixpkgs {
4 system = "x86_64-linux";
5 };
6
7 vmNode =
8 index:
9 nixpkgs.lib.nameValuePair "node_${builtins.toString index}" {
10 imports = [
11 ./vm.nix
12 flake.checks."x86_64-linux"."bench".nodes."node_${builtins.toString index}".system.build.networkConfig
13 ];
14
15 _module.args = {
16 index = builtins.toString index;
17 };
18
19 deployment.keys = builtins.listToAttrs (
20 builtins.map (
21 index:
22 nixpkgs.lib.nameValuePair "key-${builtins.toString index}" {
23 keyFile = ./key.txt;
24 # 80% of keys pre activation, 20% post activation.
25 uploadAt = if index <= (200 * 0.8) then "pre-activation" else "post-activation";
26 }
27 ) (nixpkgs.lib.range 0 200)
28 );
29
30 nixpkgs.hostPlatform = "x86_64-linux";
31 };
32in
33{
34 meta.nixpkgs = nixpkgs;
35}
36// builtins.listToAttrs (builtins.map vmNode (nixpkgs.lib.range 0 (import ./num-nodes.nix)))