mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-04-25 09:28:27 +02:00
feat(host/k8s,lib): nodeLabels & nodeTaints for k8s
This commit is contained in:
@@ -22,6 +22,9 @@
|
|||||||
# use my own domain & kube-vip's virtual IP for the API server
|
# use my own domain & kube-vip's virtual IP for the API server
|
||||||
# so that the API server can always be accessed even if some nodes are down
|
# so that the API server can always be accessed even if some nodes are down
|
||||||
masterHost = "kubevirt-cluster-1.writefor.fun";
|
masterHost = "kubevirt-cluster-1.writefor.fun";
|
||||||
|
nodeLabels = [
|
||||||
|
"node-purpose=kubevirt"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
imports =
|
imports =
|
||||||
|
|||||||
@@ -20,6 +20,9 @@
|
|||||||
# use my own domain & kube-vip's virtual IP for the API server
|
# use my own domain & kube-vip's virtual IP for the API server
|
||||||
# so that the API server can always be accessed even if some nodes are down
|
# so that the API server can always be accessed even if some nodes are down
|
||||||
masterHost = "kubevirt-cluster-1.writefor.fun";
|
masterHost = "kubevirt-cluster-1.writefor.fun";
|
||||||
|
nodeLabels = [
|
||||||
|
"node-purpose=kubevirt"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
imports =
|
imports =
|
||||||
|
|||||||
@@ -20,6 +20,9 @@
|
|||||||
# use my own domain & kube-vip's virtual IP for the API server
|
# use my own domain & kube-vip's virtual IP for the API server
|
||||||
# so that the API server can always be accessed even if some nodes are down
|
# so that the API server can always be accessed even if some nodes are down
|
||||||
masterHost = "kubevirt-cluster-1.writefor.fun";
|
masterHost = "kubevirt-cluster-1.writefor.fun";
|
||||||
|
nodeLabels = [
|
||||||
|
"node-purpose=kubevirt"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
imports =
|
imports =
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
masterHost,
|
masterHost,
|
||||||
tokenFile,
|
tokenFile,
|
||||||
|
nodeLabels ? [],
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
package = pkgs.k3s_1_29;
|
package = pkgs.k3s_1_29;
|
||||||
@@ -15,10 +16,11 @@ in {
|
|||||||
serverAddr = "https://${masterHost}:6443";
|
serverAddr = "https://${masterHost}:6443";
|
||||||
# https://docs.k3s.io/cli/agent
|
# https://docs.k3s.io/cli/agent
|
||||||
extraFlags = let
|
extraFlags = let
|
||||||
flagList = [
|
flagList =
|
||||||
"--node-label=node-type=worker"
|
[
|
||||||
"--data-dir /var/lib/rancher/k3s"
|
"--data-dir /var/lib/rancher/k3s"
|
||||||
];
|
]
|
||||||
|
++ (map (label: "--node-label=${label}") nodeLabels);
|
||||||
in
|
in
|
||||||
pkgs.lib.concatStringsSep " " flagList;
|
pkgs.lib.concatStringsSep " " flagList;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -10,7 +10,8 @@
|
|||||||
# this can be a domain name or an IP address(such as kube-vip's virtual IP)
|
# this can be a domain name or an IP address(such as kube-vip's virtual IP)
|
||||||
masterHost,
|
masterHost,
|
||||||
clusterInit ? false,
|
clusterInit ? false,
|
||||||
addTaints ? false,
|
nodeLabels ? [],
|
||||||
|
nodeTaints ? [],
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
package = pkgs.k3s_1_29;
|
package = pkgs.k3s_1_29;
|
||||||
@@ -56,8 +57,8 @@ in {
|
|||||||
"--disable-network-policy"
|
"--disable-network-policy"
|
||||||
"--tls-san=${masterHost}"
|
"--tls-san=${masterHost}"
|
||||||
]
|
]
|
||||||
# prevent workloads from running on the master
|
++ (map (label: "--node-label=${label}") nodeLabels)
|
||||||
++ (pkgs.lib.optionals addTaints ["--node-taint=CriticalAddonsOnly=true:NoExecute"]);
|
++ (map (taint: "--node-taint=${taint}") nodeTaints);
|
||||||
in
|
in
|
||||||
pkgs.lib.concatStringsSep " " flagList;
|
pkgs.lib.concatStringsSep " " flagList;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user