Skip to content

Commit 09b97de

Browse files
authored
fix generate node agent pod name (#309)
Signed-off-by: Zzde <zhangxh1997@gmail.com>
1 parent be35bde commit 09b97de

File tree

3 files changed

+31
-7
lines changed

3 files changed

+31
-7
lines changed

pkg/handlers/node_terminal_handler.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,7 @@ func (h *NodeTerminalHandler) HandleNodeTerminalWebSocket(c *gin.Context) {
9292
}
9393

9494
func (h *NodeTerminalHandler) createNodeAgent(ctx context.Context, cs *cluster.ClientSet, nodeName string) (string, error) {
95-
truncateNodeName := nodeName
96-
if len(nodeName)+len(common.NodeTerminalPodName)+5 > 63 {
97-
maxLength := 63 - len(common.NodeTerminalPodName) - 5
98-
truncateNodeName = nodeName[:maxLength]
99-
}
100-
podName := fmt.Sprintf("%s-%s-%s", common.NodeTerminalPodName, truncateNodeName, utils.RandomString(5))
101-
95+
podName := utils.GenerateNodeAgentName(nodeName)
10296
// Define the kite node agent pod spec
10397
pod := &corev1.Pod{
10498
ObjectMeta: metav1.ObjectMeta{

pkg/utils/pods.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package utils
22

33
import (
4+
"fmt"
5+
6+
"github.com/zxh326/kite/pkg/common"
47
corev1 "k8s.io/api/core/v1"
58
)
69

@@ -43,3 +46,12 @@ func IsPodErrorOrSuccess(pod *corev1.Pod) bool {
4346
}
4447
return false
4548
}
49+
50+
func GenerateNodeAgentName(nodeName string) string {
51+
truncateNodeName := nodeName
52+
if len(nodeName)+len(common.NodeTerminalPodName)+7 > 63 {
53+
maxLength := 63 - len(common.NodeTerminalPodName) - 7
54+
truncateNodeName = nodeName[:maxLength]
55+
}
56+
return fmt.Sprintf("%s-%s-%s", common.NodeTerminalPodName, truncateNodeName, RandomString(5))
57+
}

pkg/utils/utils_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,21 @@ func TestGetImageRegistryAndRepo(t *testing.T) {
2828
}
2929
}
3030
}
31+
32+
func TestGenerateNodeAgentName(t *testing.T) {
33+
testcase := []struct {
34+
nodeName string
35+
}{
36+
{"node1"},
37+
{"shortname"},
38+
{"a-very-long-node-name-that-exceeds-the-maximum-length-allowed-for-kubernetes-names"},
39+
{"node-with-63-characters-abcdefghijklmnopqrstuvwxyz-123456789101"},
40+
}
41+
42+
for _, tc := range testcase {
43+
podName := GenerateNodeAgentName(tc.nodeName)
44+
if len(podName) > 63 {
45+
t.Errorf("GenerateNodeAgentName(%q) = %q, length %d exceeds 63", tc.nodeName, podName, len(podName))
46+
}
47+
}
48+
}

0 commit comments

Comments
 (0)