我每天发现自己在做......
$ 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)
答案 0 :(得分:28)
bash
和zsh
都支持在您按<TAB>
时完成打印命令的脚本。该功能称为可编程copmletion ,您可以在此处找到有关该功能的更多详细信息:zsh completion。
幸运的是,您不需要编写自己的脚本 - kubectl为zsh&gt;提供了它。 5.2。尝试运行此命令:source <(kubectl completion zsh)
。
另一种选择是使用此工具:https://github.com/mkokho/kubemrr
(discalimer:我是作者)。它存在的原因是因为标准完成脚本太慢 - kubernetes集群回复可能需要几秒钟才会显示所有pod名称。但kubemrr
将名称保存在本地,因此响应几乎立即返回。
答案 1 :(得分:6)
我将此功能添加到$ HOME / .zshrc。
它会延迟加载kubectl的完整功能
kubectl () {
command kubectl $*
if [[ -z $KUBECTL_COMPLETE ]]
then
source <(command kubectl completion zsh)
KUBECTL_COMPLETE=1
fi
}
答案 2 :(得分:0)
对于oh-my-zsh
,启用kubectl自动补全的最简单方法是在kubectl
中添加~/.zshrc
插件:
# somewhere in your .zshrc
plugins=(git kubectl)