kubectlのコマンド補完を有効にする

kubectlを使っていると、current-contextの確認やnamespaceの切り替えなどでコマンドを打つのが面倒になってくる。こんなときはプラグインをインストールするのが一般的だが、その前に素の状態でできることはないか探してみたところ、kubectl自体に補完機能があることに気づいた。

kubernetes.io

補完機能はbashzshに対応している。zshであれば、以下の1行を.zshrcに足せば良い。

source <(kubectl completion zsh)

kubectl completion zsh は、zshで補完を行うためのスクリプトを自動生成している。 補完機能を有効にすると、例えば configcurrent-context などkubectlのサブコマンドや引数をTabで補完してくれるようになるため、タイピングが楽になる。ただし、namespaceやPodの名前等までは補完してくれない。