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
|
let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
lib = nixpkgs.lib;
|
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
|
let
|
||||||
roleModule = if role == "control-plane" then ./modules/k8s-control-plane.nix else ./modules/k8s-worker.nix;
|
roleModule = if role == "control-plane" then ./modules/k8s-control-plane.nix else ./modules/k8s-worker.nix;
|
||||||
hardwarePath = ./hosts/hardware + "/${name}.nix";
|
hardwarePath = ./hosts/hardware + "/${name}.nix";
|
||||||
@@ -25,14 +31,47 @@
|
|||||||
imports = lib.optional (builtins.pathExists hardwarePath) hardwarePath;
|
imports = lib.optional (builtins.pathExists hardwarePath) hardwarePath;
|
||||||
networking.hostName = name;
|
networking.hostName = name;
|
||||||
system.stateVersion = "25.05";
|
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 {
|
mkNode {
|
||||||
inherit name;
|
inherit name;
|
||||||
role = if lib.hasPrefix "cp-" name then "control-plane" else "worker";
|
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;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -185,6 +185,7 @@ in
|
|||||||
systemd.services.kubelet = {
|
systemd.services.kubelet = {
|
||||||
description = "Kubernetes Kubelet";
|
description = "Kubernetes Kubelet";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
wants = [ "network-online.target" ];
|
||||||
after = [ "containerd.service" "network-online.target" ];
|
after = [ "containerd.service" "network-online.target" ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pinnedK8s}/bin/kubelet";
|
ExecStart = "${pinnedK8s}/bin/kubelet";
|
||||||
|
|||||||
Reference in New Issue
Block a user