2026-02-21 15:11:08 -05:00

62 lines
1.4 KiB
Nix

{
config,
lib,
pkgs,
...
}:
{
imports = [ ];
options.me = {
kubernetes.enable = lib.mkOption {
type = lib.types.bool;
default = false;
example = true;
description = "Whether we want to install kubernetes.";
};
};
config = lib.mkIf config.me.kubernetes.enable {
assertions = [
{
# Kubernetes should only upgrade 1 minor version at a time, so this assert is here to prevent unwittingly jumping versions.
assertion = lib.hasPrefix "1.35." pkgs.kubernetes.version;
message = "Unexpected Kubernetes package version: ${pkgs.kubernetes.version}";
}
];
environment.systemPackages = with pkgs; [
kubernetes
];
systemd.targets.kubernetes = {
description = "Kubernetes";
wantedBy = [ "multi-user.target" ];
};
users.users.kubernetes = {
uid = 10024;
description = "Kubernetes";
group = "kubernetes";
home = "/var/lib/kubernetes";
createHome = true;
homeMode = "755";
isSystemUser = true;
};
users.groups.kubernetes.gid = 10024;
environment.persistence."/persist" = lib.mkIf (config.me.mountPersistence) {
hideMounts = true;
directories = [
{
directory = "/var/lib/kubernetes";
user = "kubernetes";
group = "kubernetes";
mode = "0755";
}
];
};
};
}