feat: kxn choose kubectl version + ns completion

This commit is contained in:
AngeD 2023-07-21 11:57:23 +02:00
parent d30a7cacce
commit 8cac5c8d2d
2 changed files with 21 additions and 5 deletions

View File

@ -14,13 +14,17 @@
function kxn() { function kxn() {
1="$(echo - "$1" | tr -c '[:alnum:]-_' '[ *]')" 1="$(echo - "$1" | tr -c '[:alnum:]-_' '[ *]')"
local ctx="$(echo - "$1" | awk '{print $1}')" local ctx="$(echo - "$1" | awk '{print $1}')"; ctx="${ctx:l}"
local ns="${2-$(echo - "$1" | awk '{print $2}')}" local ns="${2-$(echo - "$1" | awk '{print $2}')}"; ns="${ns:l}"
kubectx ${ctx:l} [ "$ctx" = hrmn ] \
[ -n "$ns" ] && kubens "${ns:l}" && ln -sf /usr/local/bin/k1.18 /var/tmp/kubectl \
|| ln -sf /usr/bin/kubectl /var/tmp/kubectl
kubectx "$ctx"
[ -n "$ns" ] && kubens "$ns"
} }
compdef _kubectx kxn alias kubectl='/var/tmp/kubectl'
alias kns='kubens' alias kns='kubens'
alias k='kubectl' alias k='kubectl'

View File

@ -0,0 +1,12 @@
#compdef kxn
case "$#words" in
2)
_arguments "1: :(- $(kubectl config get-contexts -oname))"
;;
3)
_arguments "2: :($(kubectl --context "${words[2]}" get namespaces -o=jsonpath='{range .items[*].metadata.name}{@}{"\n"}{end}'))"
;;
*)
;;
esac