with import {}; let master = { node.name = "k0-0"; node.address = "10.1.8.50"; features.k8s.master.enable = true; imports = [ ./cluster.nix ./hw/k0-0.nix ]; }; nodes = [ { name = "k0-1"; address = "10.1.8.51"; } { name = "k0-2"; address = "10.1.8.52"; } ]; mkNode = x: { "${x.name}" = { node.name = x.name; node.address = x.address; imports = [ ./cluster.nix (./hw + "/${x.name}.nix") ]; }; }; in builtins.foldl' (a: x: a // mkNode x) { k0-0 = master; } nodes