kubectls は kubectl の version manager です。
色々な cli tool に *env というものがあると思いますが、それの kubectl 版です。
利用する人がほとんどいないと思ったのと最低限動けば良いくらいの気持ちで作ったので、kubectlenv というよく使われそうな名前にするのは避けました。

Installation

以下のコマンドでインストールできます。
bash、ln、readlink、curl、git あたりが動く環境であれば基本的には動作すると思います。

$ git clone https://github.com/tkuchiki/kubectls ~/.kubectls

.bashrc などで ~/.kubectls/bin を優先するように PATH を設定します。
zsh を使っている場合は .zshrc などに置き換えて実行してください。

# for bash
$ echo "PATH=~/.kubectls/bin:\$PATH" >> ~/.bashrc
$ echo "export $PATH" >> ~/.bashrc

Usage

5つのサブコマンドで構成されているので、一つずつ紹介していきます。

$ kubectls --help
Usage: kubectls

kubectls is kubectl version manager

Commands:
  install   Install kubectl
  path      Show current kubectl's abs path
  update    Update kubectls
  use       Set version
  versions  Show installed versions

Options:
  --version Show version

install

kubectl を install するサブコマンドです。

$ kubectls install --help
Usage: kubectl install (VERSION|stable) [--set]

Install kubectl

Options:
  --set     Set version

kubectl install stable で、実行時の stable version の kubectl を install できます。

$ kubectls install stable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 44.1M  100 44.1M    0     0  16.3M      0  0:00:02  0:00:02 --:--:-- 16.3M

v1.20.4 is installed

kubectls install VERSION で、指定した version の kubectl を install できます。

$ kubectls install v1.20.0
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 44.0M  100 44.0M    0     0  17.5M      0  0:00:02  0:00:02 --:--:-- 17.5M

v1.20.0 is installed

kubectls install は install するだけで使えるようにはなりません。
指定したバージョンに切り替えるには、後述する kubectls use を実行するか、kubectls install--use というオプションをつけて実行すれば OK です。

$ kubectls install v1.20.1 --use
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 44.0M  100 44.0M    0     0  20.7M      0  0:00:02  0:00:02 --:--:-- 20.7M

v1.20.1 is installed
v1.20.1 selected

$ kubectl version --client --short
Client Version: v1.20.1

use

kubectls install で、install しておいた version の kubectl に切り替えるサブコマンドです。

$ kubectls use --help
Usage: kubectl use [VERSION]

Set version

kubectls use VERSION で、version を切り替えられます。

$ kubectls use v1.20.4
v1.20.4 selected

kubectls use のように version を指定しないで実行することで、install した version 一覧から選択して切り替えることも可能です。

$ kubectls use
1) v1.20.0
2) v1.20.1
3) v1.20.2
4) v1.20.4
Which version? 3
v1.20.2 selected

path

現在使用している kubectl の絶対パスを出力するサブコマンドです。

$ kubectls path --help
Usage: kubectl path

Show current kubectl's abs path
$ kubectls path
/Users/tkuchiki/.kubectls/versions/v1.20.2/kubectl

versions

install 済みの version 一覧を出力するサブコマンドです。

$ kubectls versions --help
Usage: kubectl versions

Show installed versions
$ kubectls versions
v1.20.0
v1.20.1
v1.20.2
v1.20.4

update

kubectls を update するサブコマンドです。

$ kubectls update --help
Usage: kubectl update

Update kubectls

まとめ

kubectls の使い方を紹介しました。
複数 version を切り替えて使いたいケースは稀だと思いますが、version 間の差異を確認するときに役立つかもしれませんので使ってみてください。