From 9cc612acb8e176dbcb0b9db111f7084ff38dcb95 Mon Sep 17 00:00:00 2001 From: Lior Noy Date: Thu, 20 Jun 2024 17:15:01 +0300 Subject: [PATCH] Fix the pod name for comDetails Modifies the function for creating comDetails, so the pod name will be more accurate. Signed-off-by: Lior Noy --- endpointslices/endpointslices.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/endpointslices/endpointslices.go b/endpointslices/endpointslices.go index 274d35d..e3af3fc 100644 --- a/endpointslices/endpointslices.go +++ b/endpointslices/endpointslices.go @@ -3,6 +3,7 @@ package endpointslices import ( "context" "fmt" + "strings" log "github.com/sirupsen/logrus" corev1 "k8s.io/api/core/v1" @@ -200,6 +201,24 @@ func getContainerName(portNum int, pods []corev1.Pod) (string, error) { return res, nil } +func getPodName(pod *corev1.Pod) string { + var res string + name := pod.OwnerReferences[0].Name + + switch pod.OwnerReferences[0].Kind { + case "Node": + res, _ = strings.CutSuffix(pod.Name, pod.OwnerReferences[0].Name) + + case "ReplicaSet": + a := strings.Split(name, "-") + res = strings.Join(a[:len(a)-1], "-") + default: + res = name + } + + return res +} + func (epSliceinfo *EndpointSlicesInfo) toComDetails(nodes []corev1.Node) ([]types.ComDetails, error) { if len(epSliceinfo.EndpointSlice.OwnerReferences) == 0 { return nil, fmt.Errorf("empty OwnerReferences in EndpointSlice %s/%s. skipping", epSliceinfo.EndpointSlice.Namespace, epSliceinfo.EndpointSlice.Name) @@ -209,7 +228,7 @@ func (epSliceinfo *EndpointSlicesInfo) toComDetails(nodes []corev1.Node) ([]type // Get the Namespace and Pod's name from the service. namespace := epSliceinfo.Service.Namespace - name := epSliceinfo.EndpointSlice.OwnerReferences[0].Name + name := getPodName(&epSliceinfo.Pods[0]) // Get the node roles of this endpointslice. (master or worker or both). roles := getEndpointSliceNodeRoles(epSliceinfo, nodes)