{ nixpkgs, disko, sops, gather, ... }@inputs: let deploymentPkgs = import nixpkgs { localSystem.system = "x86_64-linux"; }; nrNodes = 1; in with deploymentPkgs.lib; let mkMachine = type: opts: { lib, ... }: let machine = import ./machines/${type} opts; in { imports = [ ./shared ./modules machine disko.nixosModules.disko sops.nixosModules.sops gather.nixosModules.gather ]; }; machines = { manager = mkMachine "manager" { }; } // (listToAttrs (genList (i: nameValuePair "node-${fixedWidthNumber 2 i}" (mkMachine "node" { id = i; }) ) nrNodes)); in { meta = { nixpkgs = deploymentPkgs; specialArgs = { inherit inputs; }; }; } // machines