mirror of
https://github.com/kubeshark/kubeshark.git
synced 2025-05-08 08:39:20 +00:00
* Update config.go, tapConfig.go, and models.go * WIP * Update go.sum * Update tapRunner.go * Update tap.go * WIP * WIP * Update Dockerfile, main.go, and 2 more files... * WIP * Update utils.go, tapClusterResourceManagement.go, and utils.go * Merge branch 'develop' * Update metadata_controller.go, utils.go, and 2 more files... * Update main.go, utils.go, and tapRunner.go * Update tapRunner.go * Update config.go, config.go, and models.go * Update main.go, main.go, and stats_provider_test.go * Update provider.go * bug fixes * Update main.go, metadata_controller.go, and 13 more files... * Update metadata_controller.go, status_controller.go, and 4 more files... * Update main.go, config.go, and 3 more files... * Update tapRunner.go * Update config.go, stats_provider_test.go, and consts.go
68 lines
1.7 KiB
Go
68 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})
|
|
}
|
|
return podInfos
|
|
}
|