mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-11-13 12:13:36 +01:00
* fix(k3s): bind control-plane metrics to node addresses * docs(microvm): document remote deployment workflow * fix(microvm): deploy runner before guest switch * docs(microvm): standardize on just deployment commands * docs(k3s): explain control-plane metrics address * docs(hosts): move generic build commands to host guide * docs: simplify command operation guidance
52 lines
1.5 KiB
Nix
52 lines
1.5 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
myvars,
|
|
mylib,
|
|
...
|
|
}:
|
|
let
|
|
hostName = "k3s-test-1-master-2"; # Define your hostname.
|
|
|
|
coreModule = mylib.genMicrovmGuestModule {
|
|
inherit pkgs hostName;
|
|
inherit (myvars) networking;
|
|
vcpu = 2;
|
|
mem = 4096;
|
|
varSize = 20480;
|
|
};
|
|
k3sModule = mylib.genK3sServerModule {
|
|
inherit pkgs;
|
|
kubeconfigFile = "/home/${myvars.username}/.kube/config";
|
|
tokenFile = config.age.secrets."k3s-test-1-token".path;
|
|
# 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
|
|
masterHost = "test-cluster-1.writefor.fun";
|
|
metricsBindAddress = myvars.networking.hostsAddr.${hostName}.ipv4;
|
|
# the control plane only runs the control plane; workloads run on the
|
|
# k3s-test-1-worker-* nodes (labelled node-role.kubernetes.io/worker=true)
|
|
nodeTaints = [ "node-role.kubernetes.io/control-plane:NoSchedule" ];
|
|
};
|
|
in
|
|
{
|
|
imports =
|
|
(mylib.scanPaths ./.)
|
|
++ (map mylib.relativeToRoot [
|
|
"secrets/nixos.nix"
|
|
"modules/nixos/server/server.nix"
|
|
])
|
|
++ [
|
|
coreModule
|
|
k3sModule
|
|
];
|
|
|
|
# k3s-test-1-token lives in this secret group
|
|
modules.secrets.server.kubernetes.enable = true;
|
|
|
|
# The guest reuses the host's already-instantiated nixpkgs (shared store),
|
|
# so nixpkgs.config may not be set. The shared base modules set
|
|
# nixpkgs.config.allowUnfree, so force it empty here.
|
|
nixpkgs.config = lib.mkForce { };
|
|
}
|