feat(kubectx): adding a new plugin for 'kubectx' (#6114)
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
Co-authored-by: Robby Russell <robby@planetargon.com>
Diff
1diff --git a/lib/prompt_info_functions.zsh b/lib/prompt_info_functions.zsh
2index 48f033da6427f424a0077a2eed948b7da95d99ed..e29fb27a5bd45cebbeca44b5b8b4697b741e49c4 100644
3--- a/lib/prompt_info_functions.zsh
4+++ b/lib/prompt_info_functions.zsh
5@@ -19,6 +19,7 @@ function chruby_prompt_info \
6 virtualenv_prompt_info \
7 jenv_prompt_info \
8 tf_prompt_info \
9+ kubectx_prompt_info \
10 {
11 return 1
12 }
13diff --git a/plugins/kubectx/README.md b/plugins/kubectx/README.md
14new file mode 100644
15index 0000000000000000000000000000000000000000..9a1df26174c313974cd090324eab3f326d245341
16--- /dev/null
17+++ b/plugins/kubectx/README.md
18@@ -0,0 +1,26 @@
19+# kubectx - show active kubectl context
20+
21+This plugins adds ```kubectx_prompt_info()``` function. It shows name of the
22+active kubectl context (```kubectl config current-context```).
23+
24+You can use it to customize prompt and know if You are on prod cluster ;)
25+
26+_Example_. Add to **.zshrc**:
27+
28+```
29+RPS1='$(kubectx_prompt_info)'
30+```
31+
32+### custom ctx names
33+
34+One can rename default context name for better readability.
35+
36+_Example_. Add to **.zshrc**:
37+```
38+kubectx_mapping[minikube] = "mini"
39+kubectx_mapping[context_name_from_kubeconfig]="$emoji[wolf_face]"
40+kubectx_mapping[production_cluster]="%{$fg[yellow]%}prod!%{$reset_color%}"
41+```
42+
43+
44+
45diff --git a/plugins/kubectx/kubectx.plugin.zsh b/plugins/kubectx/kubectx.plugin.zsh
46new file mode 100644
47index 0000000000000000000000000000000000000000..56b7217f1bc26d3fd1bbfdd153425ffd35d93039
48--- /dev/null
49+++ b/plugins/kubectx/kubectx.plugin.zsh
50@@ -0,0 +1,14 @@
51+typeset -A kubectx_mapping
52+
53+function kubectx_prompt_info() {
54+ if [ $commands[kubectl] ]; then
55+ local current_ctx=`kubectl config current-context`
56+
57+ #if associative array declared
58+ if [[ -n $kubectx_mapping ]]; then
59+ echo "${kubectx_mapping[$current_ctx]}"
60+ else
61+ echo $current_ctx
62+ fi
63+ fi
64+}
65diff --git a/plugins/kubectx/prod.png b/plugins/kubectx/prod.png
66new file mode 100644
67index 0000000000000000000000000000000000000000..0c194a66d357e3089e26470e54bcd9cd1614aca0
68Binary files /dev/null and b/plugins/kubectx/prod.png differ
69diff --git a/plugins/kubectx/stage.png b/plugins/kubectx/stage.png
70new file mode 100644
71index 0000000000000000000000000000000000000000..ac15b392997ee141c324548c6924fe92a82f72f9
72Binary files /dev/null and b/plugins/kubectx/stage.png differ