Files
platform/clusters/k2/default.nix
2021-10-06 11:01:00 +02:00

65 lines
1.4 KiB
Nix

with import <nixpkgs> {};
let
etcdNodes = {
k2-0 = "10.1.8.60";
k2-1 = "10.1.8.61";
k2-2 = "10.1.8.62";
};
etcdCluster = {
enable = true;
existing = true;
nodes = etcdNodes;
};
master = {
features.host = {
name = "k2-0";
address = "10.1.8.60";
};
features.k8s = {
master.enable = true;
master.socat443 = true;
nodes = nodes;
inherit etcdCluster;
};
imports = [ ./cluster.nix ./hw/k2-0.nix ];
};
nodes = [
{ name = "k2-1"; address = "10.1.8.61"; }
{ name = "k2-2"; address = "10.1.8.62"; }
{ name = "k2-3"; address = "10.1.8.63"; }
{ name = "k2-4"; address = "10.1.8.64"; }
{ name = "k2-5"; address = "10.1.8.65"; }
{ name = "k2-6"; address = "10.1.8.66"; }
];
mkNode = x: {
"${x.name}" =
lib.mkMerge [
{
features.host = x;
}
(if builtins.hasAttr x.name etcdNodes then
{
features.k8s = { inherit etcdCluster; };
}
else {})
# (if x.name == "k2-6" then
# {
# services.kubernetes.kubelet.taints.sonarqube = {
# key = "reserved";
# value = "sonarqube";
# effect = "NoSchedule";
# };
# }
# else {})
]
// { imports = [ ./cluster.nix (./hw + "/${x.name}.nix") ]; };
};
in
builtins.foldl' (a: x: a // mkNode x) {
"${master.features.host.name}" = master;
} nodes