Files
platform/clusters/k0/default.nix
2021-09-22 21:05:44 +02:00

55 lines
1.2 KiB
Nix

# Pin the deployment package-set to a specific version of nixpkgs
# with import ../nixos-21.05.nix {};
with import <nixpkgs> {};
let
etcdNodes = {
k0-0 = "10.1.8.50";
k0-1 = "10.1.8.51";
k0-2 = "10.1.8.52";
};
master = {
features.k8s = {
host.name = "k0-0";
host.address = "10.1.8.50";
master.enable = true;
nodes = nodes;
etcdCluster = {
enable = true;
existing = true;
nodes = etcdNodes;
};
};
services.kubernetes.kubelet.unschedulable = 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}" =
lib.mkMerge [
{
features.k8s.host = x;
}
(if builtins.hasAttr x.name etcdNodes then
{
features.k8s.etcdCluster = {
enable = true;
existing = true;
nodes = etcdNodes;
};
}
else {})
]
// { imports = [ ./cluster.nix (./hw + "/${x.name}.nix") ]; };
};
in
builtins.foldl' (a: x: a // mkNode x) {
"${master.features.k8s.host.name}" = master;
} nodes