在本地 k3s 节点上运行时如何激活 cnpg 的 kubectl 插件的 bash-completion? [已关闭]

问题描述 投票:0回答:1

cnpg
完成设计是为了在像这样运行时工作:

. <( kubectl cnpg completion bash )

但是,在 k3s 节点上运行时,运行 kubectl 的正确方法是:

k3s kubectl ...

或者,使

/etc/rancher/k3s/k3s.yaml
可读(或复制给用户
~/.kube/config
),并使用路径导出 KUBECONFIG。

当我尝试任一选项,然后选择以下选项之一时,它会运行,但在点击 tabtab 时不会执行任何操作。

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-completion 后:

. <( kubectl cnpg completion bash )
# or
. <( kubectl-cnpg completoin bash )

kubectl-cnpg
tabtab 有效(仅适用于命令和参数,不适用于集群名称 - 尽管我不知道它是否曾经这样工作过)。

它不适用于

kubectl cnpg
tabtab

知道这是否是完成的程度吗?

kubectl k3s bash-completion cloudnative-pg
1个回答
2
投票

集群名称的自动完成功能尚未在插件上实现,如果您想拥有该功能,请在此处的 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

希望对您有帮助

© www.soinside.com 2019 - 2024. All rights reserved.