mirror of
				https://github.com/kubeshark/kubeshark.git
				synced 2025-11-04 07:50:39 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package kubernetes
 | 
						|
 | 
						|
import (
 | 
						|
	"github.com/up9inc/mizu/shared"
 | 
						|
	core "k8s.io/api/core/v1"
 | 
						|
	"regexp"
 | 
						|
)
 | 
						|
 | 
						|
func GetNodeHostToTappedPodIpsMap(tappedPods []core.Pod) map[string][]string {
 | 
						|
	nodeToTappedPodIPMap := make(map[string][]string, 0)
 | 
						|
	for _, pod := range tappedPods {
 | 
						|
		existingList := nodeToTappedPodIPMap[pod.Spec.NodeName]
 | 
						|
		if existingList == nil {
 | 
						|
			nodeToTappedPodIPMap[pod.Spec.NodeName] = []string{pod.Status.PodIP}
 | 
						|
		} else {
 | 
						|
			nodeToTappedPodIPMap[pod.Spec.NodeName] = append(nodeToTappedPodIPMap[pod.Spec.NodeName], pod.Status.PodIP)
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return nodeToTappedPodIPMap
 | 
						|
}
 | 
						|
 | 
						|
func excludeMizuPods(pods []core.Pod) []core.Pod {
 | 
						|
	mizuPrefixRegex := regexp.MustCompile("^" + MizuResourcesPrefix)
 | 
						|
 | 
						|
	nonMizuPods := make([]core.Pod, 0)
 | 
						|
	for _, pod := range pods {
 | 
						|
		if !mizuPrefixRegex.MatchString(pod.Name) {
 | 
						|
			nonMizuPods = append(nonMizuPods, pod)
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	return nonMizuPods
 | 
						|
}
 | 
						|
 | 
						|
func getPodArrayDiff(oldPods []core.Pod, newPods []core.Pod) (added []core.Pod, removed []core.Pod) {
 | 
						|
	added = getMissingPods(newPods, oldPods)
 | 
						|
	removed = getMissingPods(oldPods, newPods)
 | 
						|
 | 
						|
	return added, removed
 | 
						|
}
 | 
						|
 | 
						|
//returns pods present in pods1 array and missing in pods2 array
 | 
						|
func getMissingPods(pods1 []core.Pod, pods2 []core.Pod) []core.Pod {
 | 
						|
	missingPods := make([]core.Pod, 0)
 | 
						|
	for _, pod1 := range pods1 {
 | 
						|
		var found = false
 | 
						|
		for _, pod2 := range pods2 {
 | 
						|
			if pod1.UID == pod2.UID {
 | 
						|
				found = true
 | 
						|
				break
 | 
						|
			}
 | 
						|
		}
 | 
						|
		if !found {
 | 
						|
			missingPods = append(missingPods, pod1)
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return missingPods
 | 
						|
}
 | 
						|
 | 
						|
func GetPodInfosForPods(pods []core.Pod) []shared.PodInfo {
 | 
						|
	podInfos := make([]shared.PodInfo, 0)
 | 
						|
	for _, pod := range pods {
 | 
						|
		podInfos = append(podInfos, shared.PodInfo{Name: pod.Name, Namespace: pod.Namespace, NodeName: pod.Spec.NodeName})
 | 
						|
	}
 | 
						|
	return podInfos
 | 
						|
}
 |