Skip to content

Commit df34ee8

Browse files
kinokopioclaude
andcommitted
refactor: make connect command optional with direct IP support
- Update connect to use lazy-loading GetKubeletClient - Add optional IP argument: 'connect <ip>' sets target automatically - Update usage docs to clarify connect is optional - Other commands (pods, sa scan) auto-connect when needed Co-Authored-By: Claude <noreply@anthropic.com>
1 parent f6c2ed7 commit df34ee8

File tree

1 file changed

+23
-21
lines changed

1 file changed

+23
-21
lines changed

internal/console/commands/connect.go

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,34 +24,41 @@ func (c *ConnectCmd) Aliases() []string {
2424
}
2525

2626
func (c *ConnectCmd) Description() string {
27-
return "连接到 Kubelet"
27+
return "连接到 Kubelet(可选,命令会自动连接)"
2828
}
2929

3030
func (c *ConnectCmd) Usage() string {
31-
return `connect
31+
return `connect [ip]
3232
33-
使用当前配置连接到 Kubelet
33+
显式连接到 Kubelet 并验证
3434
35-
在连接前,请确保已设置:
36-
- target (Kubelet IP)
37-
- token 或 token-file
35+
注意:此命令是可选的,其他命令(如 pods, sa scan)会自动连接。
36+
使用此命令可以提前验证连接是否正常。
3837
39-
示例:
40-
# 使用当前配置连接
41-
connect
38+
参数:
39+
ip 可选,Kubelet IP 地址(会自动设置 target)
4240
43-
# 先设置目标再连接
44-
set target 10.0.0.1
45-
connect`
41+
示例:
42+
connect 使用当前配置连接
43+
connect 10.0.0.1 连接到指定 IP
44+
set target 10.0.0.1 && connect`
4645
}
4746

4847
func (c *ConnectCmd) Execute(sess *session.Session, args []string) error {
4948
p := sess.Printer
5049
ctx := context.Background()
5150

51+
// 如果提供了 IP 参数,自动设置 target
52+
if len(args) > 0 {
53+
sess.Config.KubeletIP = args[0]
54+
p.Printf("%s Target set to %s\n",
55+
p.Colored(config.ColorBlue, "[*]"),
56+
args[0])
57+
}
58+
5259
// 检查配置
5360
if sess.Config.KubeletIP == "" {
54-
return fmt.Errorf("未设置 Kubelet IP,请使用 'set target <ip>' 设置")
61+
return fmt.Errorf("未设置 Kubelet IP,请使用 'set target <ip>' 设置或 'connect <ip>'")
5562
}
5663

5764
if sess.Config.Token == "" {
@@ -63,18 +70,13 @@ func (c *ConnectCmd) Execute(sess *session.Session, args []string) error {
6370
sess.Config.KubeletIP,
6471
sess.Config.KubeletPort)
6572

66-
// 连接
67-
if err := sess.Connect(); err != nil {
68-
return fmt.Errorf("连接失败: %w", err)
69-
}
70-
71-
// 验证连接
73+
// 使用懒加载的 GetKubeletClient(会自动连接)
7274
kubelet, err := sess.GetKubeletClient()
7375
if err != nil {
74-
return err
76+
return fmt.Errorf("连接失败: %w", err)
7577
}
7678

77-
// 尝试获取节点信息
79+
// 验证连接
7880
result, err := kubelet.ValidatePort(ctx)
7981
if err != nil {
8082
p.Warning("连接成功,但无法验证 Kubelet 端口")

0 commit comments

Comments
 (0)