diff --git a/home/hosts/andromache/default.nix b/home/hosts/andromache/default.nix index a2eb34e1..697fed5f 100644 --- a/home/hosts/andromache/default.nix +++ b/home/hosts/andromache/default.nix @@ -57,8 +57,14 @@ cloud.hetzner.enable = true; comms.signal.enable = true; git.github.enable = true; - shell.bash.aliases.lang-js = true; - shell.bash.addBinToPath = true; + shell = { + enable = true; + bash.aliases.lang-js = true; + bash.addBinToPath = true; + }; + anki.enable = true; + k8s.k9s.enable = true; + taskwarrior.enable = true; audio.enable = true; ssh.enable = true; music.enable = true; diff --git a/home/hosts/astyanax/default.nix b/home/hosts/astyanax/default.nix index ab91bba9..2b8d596f 100644 --- a/home/hosts/astyanax/default.nix +++ b/home/hosts/astyanax/default.nix @@ -53,8 +53,14 @@ cloud.hetzner.enable = true; comms.signal.enable = true; git.github.enable = true; - shell.bash.aliases.lang-js = true; - shell.bash.addBinToPath = true; + shell = { + enable = true; + bash.aliases.lang-js = true; + bash.addBinToPath = true; + }; + anki.enable = true; + k8s.k9s.enable = true; + taskwarrior.enable = true; my.yubikey.enable = true; audio.enable = true; ssh.enable = true; diff --git a/home/hosts/work/default.nix b/home/hosts/work/default.nix index b1506f90..8e331c24 100644 --- a/home/hosts/work/default.nix +++ b/home/hosts/work/default.nix @@ -89,6 +89,7 @@ postgresql.enable = true; redis.enable = true; }; + k8s.enable = true; git.github.enable = true; git.gitlab.enable = true; secrets.vault.enable = true; diff --git a/home/modules/k8s/default.nix b/home/modules/k8s/default.nix index d93b67c7..1c4ea22e 100644 --- a/home/modules/k8s/default.nix +++ b/home/modules/k8s/default.nix @@ -1,29 +1,44 @@ -{ pkgs, ... }: - { - home.packages = with pkgs; [ - argocd - fluxcd - k3d - kubectl - kubernetes - kustomize - minikube - opentofu - upbound - ]; - - programs.kubecolor = { - enable = true; - enableAlias = true; - }; - - home.shellAliases = { - k = "kubectl"; - }; + config, + lib, + pkgs, + ... +}: +let + cfg = config.k8s; +in +{ imports = [ ./helm.nix ./k9s.nix ]; + + options.k8s.enable = lib.mkEnableOption "k8s"; + + config = lib.mkIf cfg.enable { + k8s.helm.enable = lib.mkDefault true; + k8s.k9s.enable = lib.mkDefault true; + + home.packages = with pkgs; [ + argocd + fluxcd + k3d + kubectl + kubernetes + kustomize + minikube + opentofu + upbound + ]; + + programs.kubecolor = { + enable = true; + enableAlias = true; + }; + + home.shellAliases = { + k = "kubectl"; + }; + }; } diff --git a/home/modules/k8s/helm.nix b/home/modules/k8s/helm.nix index b75ae527..c83428dd 100644 --- a/home/modules/k8s/helm.nix +++ b/home/modules/k8s/helm.nix @@ -1,15 +1,27 @@ -{ pkgs, ... }: - { - home.packages = with pkgs; [ - (wrapHelm kubernetes-helm { - plugins = with kubernetes-helmPlugins; [ - helm-diff - helm-git - helm-schema - helm-secrets - helm-unittest - ]; - }) - ]; + config, + lib, + pkgs, + ... +}: + +let + cfg = config.k8s.helm; +in +{ + options.k8s.helm.enable = lib.mkEnableOption "helm"; + + config = lib.mkIf cfg.enable { + home.packages = with pkgs; [ + (wrapHelm kubernetes-helm { + plugins = with kubernetes-helmPlugins; [ + helm-diff + helm-git + helm-schema + helm-secrets + helm-unittest + ]; + }) + ]; + }; } diff --git a/home/modules/k8s/k9s.nix b/home/modules/k8s/k9s.nix index 914d9c28..40772ec8 100644 --- a/home/modules/k8s/k9s.nix +++ b/home/modules/k8s/k9s.nix @@ -1,10 +1,23 @@ { - programs.k9s = { - enable = true; - settings.k9s = { - ui = { - logoless = true; - reactive = true; + config, + lib, + ... +}: + +let + cfg = config.k8s.k9s; +in +{ + options.k8s.k9s.enable = lib.mkEnableOption ""; + + config = lib.mkIf cfg.enable { + programs.k9s = { + enable = true; + settings.k9s = { + ui = { + logoless = true; + reactive = true; + }; }; }; };