From 611904761e408dafbb662daca9bd5e5c74f7a390 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Wed, 1 Jan 2025 14:14:55 -0500 Subject: [PATCH] Add kubernetes client. --- nix/configuration/configuration.nix | 1 + .../roles/kubernetes/default.nix | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 nix/configuration/roles/kubernetes/default.nix diff --git a/nix/configuration/configuration.nix b/nix/configuration/configuration.nix index 427f239..6f2fe2f 100644 --- a/nix/configuration/configuration.nix +++ b/nix/configuration/configuration.nix @@ -40,6 +40,7 @@ ./roles/ssh ./roles/python ./roles/docker + ./roles/kubernetes ]; nix.settings.experimental-features = [ diff --git a/nix/configuration/roles/kubernetes/default.nix b/nix/configuration/roles/kubernetes/default.nix new file mode 100644 index 0000000..74ad70e --- /dev/null +++ b/nix/configuration/roles/kubernetes/default.nix @@ -0,0 +1,43 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + alias_kx = pkgs.writeShellScriptBin "kx" '' + exec ${pkgs.kubeswitch}/bin/switcher "''${@}" + ''; + alias_ks = pkgs.writeShellScriptBin "ks" '' + exec ${pkgs.kubeswitch}/bin/switcher namespace "''${@}" + ''; + alias_k = pkgs.writeShellScriptBin "k" '' + exec ${pkgs.kubectl}/bin/kubectl "''${@}" + ''; + alias_ka = pkgs.writeShellScriptBin "ka" '' + exec ${pkgs.kubectl}/bin/kubectl "''${@}" --all-namespaces + ''; + alias_kdel = pkgs.writeShellScriptBin "kdel" '' + exec ${pkgs.kubectl}/bin/kubectl delete --all "''${@}" + ''; + alias_kd = pkgs.writeShellScriptBin "kd" '' + export KUBECTL_EXTERNAL_DIFF="${pkgs.colordiff}/bin/colordiff -N -u" + exec ${pkgs.kubectl}/bin/kubectl diff "''${@}" + ''; +in +{ + imports = [ ]; + + environment.systemPackages = with pkgs; [ + kubectl + kubeswitch + stern + alias_kx + alias_ks + alias_k + alias_ka + alias_kdel + alias_kd + ]; +}