feat: kubevirt on k3s

This commit is contained in:
Ryan Yin
2024-02-24 23:26:30 +08:00
parent 7d56db3e47
commit 9914644189
53 changed files with 8246 additions and 1382 deletions
+21
View File
@@ -0,0 +1,21 @@
{
pkgs,
mylib,
vars_networking,
disko,
...
}: let
hostName = "kubevirt-shushou"; # Define your hostname.
k8sLib = import ../lib.nix;
coreModule = k8sLib.gencoreModule {
inherit pkgs hostName vars_networking;
};
in {
imports =
(mylib.scanPaths ./.)
++ [
coreModule
disko.nixosModules.default
../kubevirt-disko-fs.nix
];
}
+41
View File
@@ -0,0 +1,41 @@
{
config,
pkgs,
username,
...
}: let
package = pkgs.k3s_1_29;
in {
environment.systemPackages = with pkgs; [
package
k9s
kubectl
istioctl
kubernetes-helm
skopeo
dive # explore docker layers
];
services.k3s = {
inherit package;
enable = true;
# Initialize HA cluster using an embedded etcd datastore.
# If you are configuring an HA cluster with an embedded etcd,
# the 1st server must have `clusterInit = true`
# and other servers must connect to it using serverAddr.
clusterInit = true;
role = "server";
tokenFile = "/run/media/nixos_k3s/kubevirt-k3s-token";
# 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
+ " --data-dir /var/lib/rancher/k3s"
+ " --disable-helm-controller"
+ " --etcd-expose-metrics true"
+ ''--etcd-snapshot-schedule-cron "0 */12 * * *"'';
};
}