iac/nixosConfigurations.nix

71 lines
1.6 KiB
Nix

{ 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 [];
}