chore: add lightweight flake checks for kubeadm configs
All checks were successful
Terraform Plan / Terraform Plan (push) Successful in 17s
All checks were successful
Terraform Plan / Terraform Plan (push) Successful in 17s
This commit is contained in:
@@ -9,8 +9,14 @@
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
lib = nixpkgs.lib;
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
nodeNames = [ "cp-1" "cp-2" "cp-3" "wk-1" "wk-2" "wk-3" ];
|
||||
|
||||
mkNode = { name, role }:
|
||||
mkNode = {
|
||||
name,
|
||||
role,
|
||||
extraModules ? [ ],
|
||||
}:
|
||||
let
|
||||
roleModule = if role == "control-plane" then ./modules/k8s-control-plane.nix else ./modules/k8s-worker.nix;
|
||||
hardwarePath = ./hosts/hardware + "/${name}.nix";
|
||||
@@ -25,14 +31,47 @@
|
||||
imports = lib.optional (builtins.pathExists hardwarePath) hardwarePath;
|
||||
networking.hostName = name;
|
||||
system.stateVersion = "25.05";
|
||||
boot.loader.grub.devices = lib.mkDefault [ "/dev/sda" ];
|
||||
fileSystems."/" = lib.mkDefault {
|
||||
device = "/dev/disk/by-label/nixos";
|
||||
fsType = "ext4";
|
||||
};
|
||||
})
|
||||
];
|
||||
] ++ extraModules;
|
||||
};
|
||||
in {
|
||||
nixosConfigurations = lib.genAttrs [ "cp-1" "cp-2" "cp-3" "wk-1" "wk-2" "wk-3" ] (name:
|
||||
|
||||
mkNodeByName = name:
|
||||
mkNode {
|
||||
inherit name;
|
||||
role = if lib.hasPrefix "cp-" name then "control-plane" else "worker";
|
||||
});
|
||||
};
|
||||
|
||||
mkEvalCheck = name:
|
||||
let
|
||||
cfg = mkNode {
|
||||
inherit name;
|
||||
role = if lib.hasPrefix "cp-" name then "control-plane" else "worker";
|
||||
extraModules = [
|
||||
({ lib, ... }: {
|
||||
boot.loader.grub.devices = lib.mkDefault [ "/dev/sda" ];
|
||||
fileSystems."/" = lib.mkDefault {
|
||||
device = "/dev/disk/by-label/nixos";
|
||||
fsType = "ext4";
|
||||
};
|
||||
})
|
||||
];
|
||||
};
|
||||
in
|
||||
pkgs.runCommand "eval-${name}" { } ''
|
||||
cat > "$out" <<'EOF'
|
||||
host=${cfg.config.networking.hostName}
|
||||
role=${if lib.hasPrefix "cp-" name then "control-plane" else "worker"}
|
||||
stateVersion=${cfg.config.system.stateVersion}
|
||||
EOF
|
||||
'';
|
||||
in {
|
||||
nixosConfigurations = lib.genAttrs nodeNames mkNodeByName;
|
||||
|
||||
checks.${system} = lib.genAttrs nodeNames mkEvalCheck;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user