私は毎日自分がやっていることを見つけます...
$ kubectl --context=foo get pods
< copy text manually >
$ kubectl --context=foo logs dep1-12345678-10101
一致するリソースを循環させたい
$ kubectl --context=foo logs dep1<TAB>
しかし、これは私のストック設定では何もしないようです。何か案は?
osx 10.12.3 kubectl v1.4.5 zsh zsh 5.2(x86_64-Apple-darwin16.0)
bash
とzsh
は両方とも、_<TAB>
_を押したときに印刷コマンドを完了するスクリプトをサポートします。この機能はProgrammable copmletionと呼ばれます。詳細については、 zsh completion を参照してください。
幸いなことに、独自のスクリプトを記述する必要はありません-kubectlはzsh> 5.2でそれを提供します。次のコマンドを実行してみてください:source <(kubectl completion zsh)
。
別のオプションはこのツールを使用することです: https://github.com/mkokho/kubemrr (discalimer:私は著者です)。存在する理由は、標準の完了スクリプトが遅すぎるためです。kubernetesクラスターの応答がすべてのポッド名に反映されるまでに数秒かかる場合があります。ただし、kubemrr
は名前をローカルに保持するため、ほとんどすぐに応答が返されます。
この関数を$ HOME/.zshrcに追加します。
Kubectlの完全な関数を遅延ロードします
kubectl () { command kubectl $* if [[ -z $KUBECTL_COMPLETE ]] then source <(command kubectl completion zsh) KUBECTL_COMPLETE=1 fi }