73 lines
1.6 KiB
Nix
73 lines
1.6 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.k8s = {
|
|
host.name = "k2-0";
|
|
host.address = "10.1.8.60";
|
|
master.enable = true;
|
|
nodes = nodes;
|
|
inherit etcdCluster;
|
|
};
|
|
fileSystems = {
|
|
"/vol/local-storage/vol1" = {
|
|
device = "/vol/vol1";
|
|
options = [ "bind" ];
|
|
};
|
|
};
|
|
services.kubernetes.kubelet.taints.unschedulable = {
|
|
key = "node.kubernetes.io/unschedulable";
|
|
value = "true";
|
|
effect = "NoSchedule";
|
|
};
|
|
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.k8s.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.k8s.host.name}" = master;
|
|
} nodes
|