diff --git a/.config/zsh/.kubectl_aliases b/.config/zsh/.kubectl_aliases index a071c88..d96eabb 100644 --- a/.config/zsh/.kubectl_aliases +++ b/.config/zsh/.kubectl_aliases @@ -14,13 +14,17 @@ function kxn() { 1="$(echo - "$1" | tr -c '[:alnum:]-_' '[ *]')" - local ctx="$(echo - "$1" | awk '{print $1}')" - local ns="${2-$(echo - "$1" | awk '{print $2}')}" + local ctx="$(echo - "$1" | awk '{print $1}')"; ctx="${ctx:l}" + local ns="${2-$(echo - "$1" | awk '{print $2}')}"; ns="${ns:l}" - kubectx ${ctx:l} - [ -n "$ns" ] && kubens "${ns:l}" + [ "$ctx" = hrmn ] \ + && 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 k='kubectl' diff --git a/.config/zsh/completions/_kxn b/.config/zsh/completions/_kxn new file mode 100644 index 0000000..188bc65 --- /dev/null +++ b/.config/zsh/completions/_kxn @@ -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