mirror of
https://github.com/kubeshark/kubeshark.git
synced 2025-06-02 04:56:44 +00:00
56 lines
1.5 KiB
Go
56 lines
1.5 KiB
Go
package kubernetes
|
|
|
|
import (
|
|
"github.com/kubeshark/base/pkg/models"
|
|
core "k8s.io/api/core/v1"
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
)
|
|
|
|
func GetNodeHostToTargetedPodsMap(targetedPods []core.Pod) models.NodeToPodsMap {
|
|
nodeToTargetedPodsMap := make(models.NodeToPodsMap)
|
|
for _, pod := range targetedPods {
|
|
minimizedPod := getMinimizedPod(pod)
|
|
|
|
existingList := nodeToTargetedPodsMap[pod.Spec.NodeName]
|
|
if existingList == nil {
|
|
nodeToTargetedPodsMap[pod.Spec.NodeName] = []core.Pod{minimizedPod}
|
|
} else {
|
|
nodeToTargetedPodsMap[pod.Spec.NodeName] = append(nodeToTargetedPodsMap[pod.Spec.NodeName], minimizedPod)
|
|
}
|
|
}
|
|
return nodeToTargetedPodsMap
|
|
}
|
|
|
|
func getMinimizedPod(fullPod core.Pod) core.Pod {
|
|
return core.Pod{
|
|
ObjectMeta: metav1.ObjectMeta{
|
|
Name: fullPod.Name,
|
|
Namespace: fullPod.Namespace,
|
|
},
|
|
Status: core.PodStatus{
|
|
PodIP: fullPod.Status.PodIP,
|
|
ContainerStatuses: getMinimizedContainerStatuses(fullPod),
|
|
},
|
|
}
|
|
}
|
|
|
|
func getMinimizedContainerStatuses(fullPod core.Pod) []core.ContainerStatus {
|
|
result := make([]core.ContainerStatus, len(fullPod.Status.ContainerStatuses))
|
|
|
|
for i, container := range fullPod.Status.ContainerStatuses {
|
|
result[i] = core.ContainerStatus{
|
|
ContainerID: container.ContainerID,
|
|
}
|
|
}
|
|
|
|
return result
|
|
}
|
|
|
|
func GetPodInfosForPods(pods []core.Pod) []*models.PodInfo {
|
|
podInfos := make([]*models.PodInfo, 0)
|
|
for _, pod := range pods {
|
|
podInfos = append(podInfos, &models.PodInfo{Name: pod.Name, Namespace: pod.Namespace, NodeName: pod.Spec.NodeName})
|
|
}
|
|
return podInfos
|
|
}
|