mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-07-15 09:02:40 +02:00
refactor(vars,hosts): networking & k3s clusters
This commit is contained in:
@@ -1,19 +1,28 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
myvars,
|
||||
mylib,
|
||||
...
|
||||
}: let
|
||||
hostName = "k3s-prod-1-master-3"; # define your hostname.
|
||||
k8sLib = import ../lib.nix;
|
||||
coreModule = k8sLib.gencoreModule {
|
||||
k3sServerName = "k3s-prod-1-master-1";
|
||||
|
||||
coreModule = mylib.genKubeVirtCoreModule {
|
||||
inherit pkgs hostName;
|
||||
inherit (myvars) networking;
|
||||
};
|
||||
k3sModule = mylib.genK3sServerModule {
|
||||
inherit pkgs;
|
||||
kubeconfigFile = "/home/${myvars.username}/.kube/config";
|
||||
tokenFile = config.age.secrets."k3s-prod-1-token".path;
|
||||
serverIp = myvars.networking.hostsAddr.${k3sServerName}.ipv4;
|
||||
};
|
||||
in {
|
||||
imports =
|
||||
(mylib.scanPaths ./.)
|
||||
++ [
|
||||
coreModule
|
||||
k3sModule
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
myvars,
|
||||
...
|
||||
}: let
|
||||
serverName = "k3s-prod-1-master-1";
|
||||
serverIp = myvars.networking.hostAddress.${serverName}.address;
|
||||
package = pkgs.k3s_1_29;
|
||||
in {
|
||||
environment.systemPackages = [package];
|
||||
services.k3s = {
|
||||
inherit package;
|
||||
enable = true;
|
||||
role = "server";
|
||||
serverAddr = "https://${serverIp}:6443";
|
||||
tokenFile = config.age.secrets."k3s-prod-1-token".path;
|
||||
# https://docs.k3s.io/cli/server
|
||||
extraFlags =
|
||||
" --write-kubeconfig /etc/k3s/kubeconfig.yml"
|
||||
+ " --write-kubeconfig-mode 644"
|
||||
+ " --service-node-port-range 80-32767"
|
||||
+ " --kube-apiserver-arg='--allow-privileged=true'" # required by kubevirt
|
||||
+ " --node-taint=CriticalAddonsOnly=true:NoExecute" # prevent workloads from running on the master
|
||||
+ " --data-dir /var/lib/rancher/k3s"
|
||||
+ " --disable-helm-controller" # we use fluxcd instead
|
||||
+ " --disable=traefik" # deploy our own ingress controller instead
|
||||
+ " --etcd-expose-metrics true"
|
||||
+ " --etcd-snapshot-schedule-cron '0 */12 * * *'";
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user