diff --git a/clusters/k0/k0.nix b/clusters/k0/k0.nix new file mode 100644 index 0000000..d592370 --- /dev/null +++ b/clusters/k0/k0.nix @@ -0,0 +1,44 @@ +let + # Pin the deployment package-set to a specific version of nixpkgs + # pkgs = import (builtins.fetchTarball { + # url = "https://github.com/NixOS/nixpkgs/archive/e9148dc1c30e02aae80cc52f68ceb37b772066f3.tar.gz"; + # sha256 = "1ckzhh24mgz6jd1xhfgx0i9mijk6xjqxwsshnvq789xsavrmsc36"; + # }) {}; + pkgs = import {}; + + master = { + deployment.tags = [ "master" ]; + node.name = "k0-0"; + node.address = "10.1.8.50"; + features.k8s.master.enable = true; + features.k8s.nodes = nodes; + 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}" = { config, pkgs, ... }: { + deployment.tags = [ "node" ]; + node.name = x.name; + node.address = x.address; + imports = [ ./cluster.nix (./hw + "/${x.name}.nix") ]; + }; + }; + +in +{ + network = { + inherit pkgs; + description = "k0"; + ordering = { + tags = [ "master" "node" ]; + }; + }; +} // builtins.foldl' (a: x: a // mkNode x) { + "${master.node.name}" = master; + } nodes +