From 5152d381bb828a4ed41fdbb430eb05970a8bb25c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw=20Szyd=C5=82o?= Date: Sun, 13 Jun 2021 17:23:13 +0200 Subject: [PATCH] feat(kubectx): adding a new plugin for 'kubectx' (#6114) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marc Cornellà Co-authored-by: Robby Russell --- lib/prompt_info_functions.zsh | 1 + plugins/kubectx/README.md | 26 ++++++++++++++++++++++++++ plugins/kubectx/kubectx.plugin.zsh | 14 ++++++++++++++ plugins/kubectx/prod.png | Bin 0 -> 3834 bytes plugins/kubectx/stage.png | Bin 0 -> 3829 bytes 5 files changed, 41 insertions(+) create mode 100644 plugins/kubectx/README.md create mode 100644 plugins/kubectx/kubectx.plugin.zsh create mode 100644 plugins/kubectx/prod.png create mode 100644 plugins/kubectx/stage.png diff --git a/lib/prompt_info_functions.zsh b/lib/prompt_info_functions.zsh index 48f033da6..e29fb27a5 100644 --- a/lib/prompt_info_functions.zsh +++ b/lib/prompt_info_functions.zsh @@ -19,6 +19,7 @@ function chruby_prompt_info \ virtualenv_prompt_info \ jenv_prompt_info \ tf_prompt_info \ + kubectx_prompt_info \ { return 1 } diff --git a/plugins/kubectx/README.md b/plugins/kubectx/README.md new file mode 100644 index 000000000..9a1df2617 --- /dev/null +++ b/plugins/kubectx/README.md @@ -0,0 +1,26 @@ +# kubectx - show active kubectl context + +This plugins adds ```kubectx_prompt_info()``` function. It shows name of the +active kubectl context (```kubectl config current-context```). + +You can use it to customize prompt and know if You are on prod cluster ;) + +_Example_. Add to **.zshrc**: + +``` +RPS1='$(kubectx_prompt_info)' +``` + +### custom ctx names + +One can rename default context name for better readability. + +_Example_. Add to **.zshrc**: +``` +kubectx_mapping[minikube] = "mini" +kubectx_mapping[context_name_from_kubeconfig]="$emoji[wolf_face]" +kubectx_mapping[production_cluster]="%{$fg[yellow]%}prod!%{$reset_color%}" +``` + +![staging](stage.png) +![production](prod.png) diff --git a/plugins/kubectx/kubectx.plugin.zsh b/plugins/kubectx/kubectx.plugin.zsh new file mode 100644 index 000000000..56b7217f1 --- /dev/null +++ b/plugins/kubectx/kubectx.plugin.zsh @@ -0,0 +1,14 @@ +typeset -A kubectx_mapping + +function kubectx_prompt_info() { + if [ $commands[kubectl] ]; then + local current_ctx=`kubectl config current-context` + + #if associative array declared + if [[ -n $kubectx_mapping ]]; then + echo "${kubectx_mapping[$current_ctx]}" + else + echo $current_ctx + fi + fi +} diff --git a/plugins/kubectx/prod.png b/plugins/kubectx/prod.png new file mode 100644 index 0000000000000000000000000000000000000000..0c194a66d357e3089e26470e54bcd9cd1614aca0 GIT binary patch literal 3834 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 literal 0 HcmV?d00001 diff --git a/plugins/kubectx/stage.png b/plugins/kubectx/stage.png new file mode 100644 index 0000000000000000000000000000000000000000..ac15b392997ee141c324548c6924fe92a82f72f9 GIT binary patch literal 3829 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 OVDNPHb6Mw<&;$UT_K@oU literal 0 HcmV?d00001