{ 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"; #}; }; } ./common.nix ]; 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; }; } ]; "master-01" = mkControlPlaneNode []; "master-02" = mkControlPlaneNode []; "master-03" = mkControlPlaneNode []; "worker-01" = mkWorkerNode []; "worker-02" = mkWorkerNode []; "worker-03" = mkWorkerNode []; "worker-04" = mkWorkerNode []; "worker-05" = mkWorkerNode []; }