From a7447fbafed4da52cf023f6a93d66df3a8579c8d Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Sun, 6 Jul 2025 22:18:20 +0200 Subject: [PATCH] feat(k8s): add kubernetes module with all needed stuff --- hosts/work/home-config.nix | 6 ++++++ modules/home-manager/cli/k8s/default.nix | 26 ++++++++++++++++++++++++ modules/home-manager/default.nix | 1 + 3 files changed, 33 insertions(+) create mode 100644 modules/home-manager/cli/k8s/default.nix diff --git a/hosts/work/home-config.nix b/hosts/work/home-config.nix index 94033f8..aafdbb0 100644 --- a/hosts/work/home-config.nix +++ b/hosts/work/home-config.nix @@ -17,6 +17,12 @@ signingKey = "6E1A834E282FBD98B48069444447A19BBEDB8DBA"; signByDefault = true; }; + k8s = { + enable = true; + kubectlPlugins = with pkgs; [ + kubectl-cnpg + ]; + }; neovim.enable = true; starship.enable = true; tmux = { diff --git a/modules/home-manager/cli/k8s/default.nix b/modules/home-manager/cli/k8s/default.nix new file mode 100644 index 0000000..7afaf2c --- /dev/null +++ b/modules/home-manager/cli/k8s/default.nix @@ -0,0 +1,26 @@ +{ lib, config, pkgs, ... }: +with lib; +let + cfg = config.modules.cli.k8s; +in +{ + options.modules.cli.k8s = { + enable = mkEnableOption "Install k8s utils"; + + kubectlPlugins = mkOption { + type = types.listOf types.package; + default = []; + description = "activate signing by default"; + }; + }; + + config = mkIf cfg.enable { + home.packages = with pkgs; [ + kubectl + kubecm + ] ++ cfg.kubectlPlugins; + programs.k9s = { + enable = true; + }; + }; +} diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix index 8ca3f0b..b17aa6f 100644 --- a/modules/home-manager/default.nix +++ b/modules/home-manager/default.nix @@ -9,6 +9,7 @@ ./cli/direnv ./cli/ghq/default.nix ./cli/git + ./cli/k8s ./cli/neovim ./cli/starship ./cli/tmux