diff --git a/configuration.nix b/configuration.nix index d764535..fbc31d7 100755 --- a/configuration.nix +++ b/configuration.nix @@ -33,7 +33,7 @@ ./modules/nfs.nix - # ./vms/kube-vm + ./vms/kube-vm # ./vms/kube-vm2 ./vms/kube-daddy # ./networking/wireguard-kube.nix diff --git a/flake.lock b/flake.lock index 599b06f..9b0f100 100755 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1754886238, - "narHash": "sha256-LTQomWOwG70lZR+78ZYSZ9sYELWNq3HJ7/tdHzfif/s=", + "lastModified": 1777655179, + "narHash": "sha256-Rx7RvgxgFeoaJUddpuVbJ2jaaAp7qH6wV9PwBmLvfz4=", "owner": "nix-community", "repo": "home-manager", - "rev": "0d492b89d1993579e63b9dbdaed17fd7824834da", + "rev": "feda41500ec53fcd4e3131de7b0441bce08fd3e9", "type": "github" }, "original": { @@ -28,11 +28,11 @@ "spectrum": "spectrum" }, "locked": { - "lastModified": 1768682386, - "narHash": "sha256-mKrMf7eG9TM2AM3pTuhIiCGmZ/JwDegCQH3ThVqcTuc=", + "lastModified": 1776340739, + "narHash": "sha256-s4FDictJlPtY6Shd6scG5hgrDMiHth09+svtvTA5NLA=", "owner": "astro", "repo": "microvm.nix", - "rev": "f469c1dfede623bbbf1ac605f6359316fd4002ef", + "rev": "2f2f62fdfdca2750e3399f66bd03986ab967e5ca", "type": "github" }, "original": { @@ -48,11 +48,11 @@ ] }, "locked": { - "lastModified": 1754800038, - "narHash": "sha256-UbLO8/0pVBXLJuyRizYOJigtzQAj8Z2bTnbKSec/wN0=", + "lastModified": 1777181277, + "narHash": "sha256-yVJbd07ortDRAttDFmDV5p220aOLTHgVAx//0nW/xW8=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "b65f8d80656f9fcbd1fecc4b7f0730f468333142", + "rev": "b8eb7acee0f7604fe1bf6a5b3dcf5254369180fa", "type": "github" }, "original": { @@ -63,11 +63,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1754725699, - "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", + "lastModified": 1777268161, + "narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", + "rev": "1c3fe55ad329cbcb28471bb30f05c9827f724c76", "type": "github" }, "original": { @@ -88,11 +88,11 @@ "spectrum": { "flake": false, "locked": { - "lastModified": 1759482047, - "narHash": "sha256-H1wiXRQHxxPyMMlP39ce3ROKCwI5/tUn36P8x6dFiiQ=", + "lastModified": 1772189877, + "narHash": "sha256-i1p90Rgssb//aNiTDFq46ZG/fk3LmyRLChtp/9lddyA=", "ref": "refs/heads/main", - "rev": "c5d5786d3dc938af0b279c542d1e43bce381b4b9", - "revCount": 996, + "rev": "fe39e122d898f66e89ffa17d4f4209989ccb5358", + "revCount": 1255, "type": "git", "url": "https://spectrum-os.org/git/spectrum" }, diff --git a/modules/nfs.nix b/modules/nfs.nix index 772fba0..b2c5518 100644 --- a/modules/nfs.nix +++ b/modules/nfs.nix @@ -5,6 +5,7 @@ fileSystems."/export" = { device = "/kube-store"; options = [ "bind" ]; + fsType = "none"; }; services.nfs.server.enable = true; diff --git a/modules/nodejs.nix b/modules/nodejs.nix index 0a10edb..a4c5e27 100644 --- a/modules/nodejs.nix +++ b/modules/nodejs.nix @@ -2,7 +2,8 @@ { environment.systemPackages = with pkgs; [ nodejs_22 - nodePackages.live-server - nodePackages.serve + serve + live-server + ]; } diff --git a/vms/kube-vm/kube-vm.nix b/vms/kube-vm/kube-vm.nix index cfbf867..f1b6ca9 100644 --- a/vms/kube-vm/kube-vm.nix +++ b/vms/kube-vm/kube-vm.nix @@ -21,7 +21,7 @@ documentation.man.generateCaches = false; services.openssh = { enable = true; }; - imports = [ ./../../modules/getNvim.nix ./kubernetes.nix ]; + imports = [ ./../../modules/getNvim.nix ./kubernetes/kubernetes.nix ]; environment.systemPackages = with pkgs; [ neovim git diff --git a/vms/kube-vm/kubernetes.nix b/vms/kube-vm/kubernetes.nix deleted file mode 100644 index dd5f7cc..0000000 --- a/vms/kube-vm/kubernetes.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ config, pkgs, ... }: -let - kubeMasterIP = "176.23.63.215"; - kubeMasterHostname = "clussy.deprived.dev"; - kubeMasterAPIServerPort = 6443; -in -{ - # resolve master hostname - networking.extraHosts = "${kubeMasterIP} ${kubeMasterHostname}"; - networking.firewall.enable = false; - - # packages for administration tasks - environment.systemPackages = with pkgs; [ - kompose - kubectl - kubernetes - kubernetes-helm - ]; - - services.kubernetes = - let - api = "https://${kubeMasterHostname}:${toString kubeMasterAPIServerPort}"; - in - { - roles = [ "node" ]; - masterAddress = kubeMasterHostname; - easyCerts = true; - - # point kubelet and other services to kube-apiserver - kubelet.kubeconfig.server = api; - apiserverAddress = api; - - # use coredns - addons.dns.enable = true; - flannel.enable = true; - - # needed if you use swap - kubelet.extraOpts = "--fail-swap-on=false"; - }; -} diff --git a/vms/kube-vm/kubernetes/kubelet.nix b/vms/kube-vm/kubernetes/kubelet.nix new file mode 100644 index 0000000..853886f --- /dev/null +++ b/vms/kube-vm/kubernetes/kubelet.nix @@ -0,0 +1,28 @@ +{ pkgs, ... }: + +{ + systemd.services.kubelet = { + description = "kubelet: The Kubernetes Node Agent"; + documentation = [ "https://kubernetes.io/docs/home/" ]; + + # Unit requirements + wants = [ "network-online.target" ]; + after = [ "network-online.target" ]; + + serviceConfig = { + # Use the kubelet binary from the Nix store + ExecStart = "${pkgs.kubernetes}/bin/kubelet"; + + Restart = "always"; + RestartSec = 10; + }; + + # Systemd 230+ uses StartLimitIntervalSec in the [Unit] section + unitConfig = { + StartLimitIntervalSec = 0; + }; + + # Equivalent to [Install] WantedBy + wantedBy = [ "multi-user.target" ]; + }; +} diff --git a/vms/kube-vm/kubernetes/kubernetes.nix b/vms/kube-vm/kubernetes/kubernetes.nix new file mode 100644 index 0000000..2a61a73 --- /dev/null +++ b/vms/kube-vm/kubernetes/kubernetes.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: { + imports = [ ./kublet.nix ]; + environment.systemPackages = with pkgs; [ kubernetes ]; +}