feat(k8s): declare 'talos' modules

This commit is contained in:
hektor committed 2026-10-31 15:37:11 +01:00
1 parent 48360e49c4
commit ea5309eff1
7 files changed
+89 -7

No files matched your search

+6 -1
View File
@@ -40,7 +40,12 @@
gitea.enable = true; gitea.enable = true;
github.enable = true; github.enable = true;
}; };
k8s.k9s.enable = true; k8s = {
enable = true;
k9s.enable = true;
talos.enable = true;
};
keyboard.vortexCore.enable = true;
keepassxc.enable = true; keepassxc.enable = true;
music.enable = true; music.enable = true;
newsboat.enable = true; newsboat.enable = true;
+7
View File
@@ -24,12 +24,19 @@ in
type = lib.types.bool; type = lib.types.bool;
}; };
}; };
talos = {
enable = lib.mkOption {
default = false;
type = lib.types.bool;
};
};
}; };
imports = [ imports = [
./crossplane.nix ./crossplane.nix
./helm.nix ./helm.nix
./k9s.nix ./k9s.nix
./talos.nix
]; ];
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
+12
View File
@@ -0,0 +1,12 @@
{
config,
lib,
pkgs,
...
}:
{
config = lib.mkIf config.k8s.talos.enable {
home.packages = [ pkgs.talosctl ];
};
}
+1
View File
@@ -55,6 +55,7 @@ in
}; };
desktop.ly.enable = true; desktop.ly.enable = true;
docker.enable = true; docker.enable = true;
k8s.enable = true;
hcloud.enable = true; hcloud.enable = true;
networking = { networking = {
enable = true; enable = true;
-5
View File
@@ -1,11 +1,6 @@
{ config, lib, ... }: { config, lib, ... }:
{ {
options.k8s.crossplane.enable = lib.mkOption {
default = false;
type = lib.types.bool;
};
config = lib.mkIf config.k8s.crossplane.enable { config = lib.mkIf config.k8s.crossplane.enable {
nixpkgs.allowedUnfree = [ "upbound" ]; nixpkgs.allowedUnfree = [ "upbound" ];
}; };
+34 -1
View File
@@ -1,3 +1,36 @@
{ config, lib, ... }:
{ {
imports = [ ./crossplane.nix ]; imports = [
./crossplane.nix
./talos.nix
];
options.k8s = {
enable = lib.mkOption {
default = false;
type = lib.types.bool;
};
crossplane.enable = lib.mkOption {
default = false;
type = lib.types.bool;
};
talos = {
enable = lib.mkOption {
default = false;
type = lib.types.bool;
};
platform = lib.mkOption {
default = "qemu";
type = lib.types.enum [
"docker"
"qemu"
];
};
};
};
config = lib.mkIf config.k8s.enable {
k8s.talos.enable = lib.mkDefault true;
};
} }
+29
View File
@@ -0,0 +1,29 @@
{
config,
lib,
pkgs,
...
}:
let
inherit (config.host) username;
in
{
config = lib.mkIf config.k8s.talos.enable (
lib.mkMerge [
(lib.mkIf (config.k8s.talos.platform == "docker") {
docker.enable = true;
assertions = [
{
assertion = !config.docker.rootless;
message = "talos in docker needs 'docker.rootless = false;'";
}
];
})
(lib.mkIf (config.k8s.talos.platform == "qemu") {
users.users.${username}.extraGroups = [ "kvm" ];
environment.systemPackages = [ pkgs.qemu ];
})
]
);
}