cnpg
完成设计是为了在像这样运行时工作:
. <( kubectl cnpg completion bash )
但是,在 k3s 节点上运行时,运行 kubectl 的正确方法是:
k3s kubectl ...
或者,使
/etc/rancher/k3s/k3s.yaml
可读(或复制给用户 ~/.kube/config
),并使用路径导出 KUBECONFIG。
当我尝试任一选项,然后选择以下选项之一时,它会运行,但在点击 tabtab 时不会执行任何操作。
遵循 Grisha Levit 的评论(谢谢!)
我注意到路径上有一个
kubectl-cnpg
命令,但运行以下命令最终会出现错误:
$ . <( kubectl-cnpg completion bash ) Error: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
加载 cnpg-completion 后:
. <( kubectl cnpg completion bash )
# or
. <( kubectl-cnpg completoin bash )
仅
kubectl-cnpg
tabtab 有效(仅适用于命令和参数,不适用于集群名称 - 尽管我不知道它是否曾经这样工作过)。
它不适用于
kubectl cnpg
tabtab
知道这是否是完成的程度吗?
集群名称的自动完成功能尚未在插件上实现,如果您想拥有该功能,请在此处的 GitHub Issue 上打开功能请求https://github.com/cloudnative-pg/cloudnative-pg /问题
好的,自动完成功能已经存在并且一直存在,您唯一需要的就是添加以下名为
kubectl_complete-cnpg
的脚本:
#!/usr/bin/env sh
# Call the __complete command passing it all arguments
kubectl cnpg __complete "$@"
在您的 PATH 中并使其可执行,这是在此处添加的 https://github.com/kubernetes/kubernetes/pull/105867
这就是正确答案的第一部分,第二部分将通过此 PR 来回答https://github.com/cloudnative-pg/cloudnative-pg/pull/3875
希望对您有帮助