{ nixpkgs, agenix, ... }: let system = "x86_64-linux"; baseModules = [ agenix.nixosModules.default { environment.systemPackages = [ agenix.packages.${system}.default ]; } { age.secrets = { #etcd-root-crt = { # file = ./secrets/etcd-root-crt.age; # mode = "444"; # owner = "root"; # group = "root"; #}; #k8s-root-crt = { # file = ./secrets/k8s-root-crt.age; # mode = "444"; # owner = "root"; # group = "root"; #}; }; } ]; mkSystem = extraModules: nixpkgs.lib.nixosSystem { inherit system; modules = baseModules ++ extraModules; }; mkControlPlaneNode = extraModules: mkSystem [ #./services/etcd.nix #./services/k8s.nix #./services/k8s-apiserver.nix #./services/k8s-controller-manager.nix #./services/k8s-kubelet.nix #./services/k8s-proxy.nix #./services/k8s-scheduler.nix ] ++ extraModules; mkWorkerNode = extraModules: mkSystem [ #./services/k8s.nix #./services/k8s-kubelet.nix #./services/k8s-proxy.nix ] ++ extraModules; in { "k8s" = mkSystem [ # ./configuration.nix { virtualisation = { useEFIBoot = true; libvirtd = { enable = true; nss.enableGuest = true; startDelay = 1; onShutdown = "shutdown"; }; }; } ]; "master-01" = mkControlPlaneNode [ ]; "master-02" = mkControlPlaneNode [ ]; "master-03" = mkControlPlaneNode [ ]; "worker-01" = mkWorkerNode [ ]; "worker-02" = mkWorkerNode [ ]; "worker-03" = mkWorkerNode [ ]; "worker-04" = mkWorkerNode [ ]; "worker-05" = mkWorkerNode [ ]; }