如何在本地k3s节点激活cnpg kubectl插件的bash补全功能?
CNPG补全功能在K3s环境的异常问题
CNPG补全功能的官方指定运行方式为:
. <( kubectl cnpg completion bash )
但在K3s节点上,正确使用kubectl有两种方式:
- 直接通过
k3s kubectl ...的形式调用 - 为
/etc/rancher/k3s/k3s.yaml配置可读权限(或复制到用户目录~/.kube/config),并导出KUBECONFIG环境变量指定该配置文件路径
按上述任意一种方式配置后,执行以下任一命令都能正常运行,但按下 Tab+Tab 时完全没有补全反应:
2023年11月15日更新
感谢Grisha Levit的评论反馈
v1.21.1中已解决的旧问题
我发现系统路径中存在 kubectl-cnpg 命令,但执行以下命令时会报错:
$ . <( kubectl-cnpg completion bash ) Error: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
v1.21.1中仍存在的问题
通过以下方式加载CNPG补全配置后:
. <( kubectl cnpg completion bash ) # 或者 . <( kubectl-cnpg completion bash )
仅有 kubectl-cnpg 命令能触发 Tab+Tab 补全(仅支持命令和参数补全,不支持集群名称——不过我不确定该功能原本是否支持集群名称补全),但 kubectl cnpg 命令完全无法触发任何补全。请问这就是当前CNPG补全功能的全部覆盖范围吗?
内容的提问来源于stack exchange,提问作者Lockszmith
相关产品推荐
相关产品推荐

