Browse Source

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>
Stanisław Szydło 2 years ago
parent
commit
5152d381bb

+ 1 - 0
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
 }

+ 26 - 0
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)

+ 14 - 0
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
+}

BIN
plugins/kubectx/prod.png


BIN
plugins/kubectx/stage.png