mirror of
https://github.com/kubeshark/kubeshark.git
synced 2025-06-21 13:58:49 +00:00
* Remove pcap src from configMap * change folder name keep it simple and short --------- Co-authored-by: bogdan.balan1 <bogdanvalentin.balan@1nce.com> Co-authored-by: Alon Girmonsky <1990761+alongir@users.noreply.github.com>
This commit is contained in:
parent
0d5bbd53aa
commit
c92f509863
@ -22,9 +22,10 @@ import (
|
|||||||
"k8s.io/client-go/tools/remotecommand"
|
"k8s.io/client-go/tools/remotecommand"
|
||||||
)
|
)
|
||||||
|
|
||||||
const label = "app.kubeshark.co/app=worker"
|
const (
|
||||||
const SELF_RESOURCES_PREFIX = "kubeshark-"
|
label = "app.kubeshark.co/app=worker"
|
||||||
const SUFFIX_CONFIG_MAP = "config-map"
|
srcDir = "pcapdump"
|
||||||
|
)
|
||||||
|
|
||||||
// NamespaceFiles represents the namespace and the files found in that namespace.
|
// NamespaceFiles represents the namespace and the files found in that namespace.
|
||||||
type NamespaceFiles struct {
|
type NamespaceFiles struct {
|
||||||
@ -55,27 +56,13 @@ func listWorkerPods(ctx context.Context, clientset *clientk8s.Clientset, namespa
|
|||||||
}
|
}
|
||||||
|
|
||||||
// listFilesInPodDir lists all files in the specified directory inside the pod across multiple namespaces
|
// listFilesInPodDir lists all files in the specified directory inside the pod across multiple namespaces
|
||||||
func listFilesInPodDir(ctx context.Context, clientset *clientk8s.Clientset, config *rest.Config, podName string, namespaces []string, configMapName, configMapKey string, cutoffTime *time.Time) ([]NamespaceFiles, error) {
|
func listFilesInPodDir(ctx context.Context, clientset *clientk8s.Clientset, config *rest.Config, podName string, namespaces []string, cutoffTime *time.Time) ([]NamespaceFiles, error) {
|
||||||
var namespaceFilesList []NamespaceFiles
|
var namespaceFilesList []NamespaceFiles
|
||||||
|
|
||||||
for _, namespace := range namespaces {
|
for _, namespace := range namespaces {
|
||||||
// Attempt to get the ConfigMap in the current namespace
|
|
||||||
configMap, err := clientset.CoreV1().ConfigMaps(namespace).Get(ctx, configMapName, metav1.GetOptions{})
|
|
||||||
if err != nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if the source directory exists in the ConfigMap
|
|
||||||
srcDir, ok := configMap.Data[configMapKey]
|
|
||||||
if !ok || srcDir == "" {
|
|
||||||
log.Error().Msgf("source directory not found in ConfigMap %s in namespace %s", configMapName, namespace)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
// Attempt to get the pod in the current namespace
|
// Attempt to get the pod in the current namespace
|
||||||
pod, err := clientset.CoreV1().Pods(namespace).Get(ctx, podName, metav1.GetOptions{})
|
pod, err := clientset.CoreV1().Pods(namespace).Get(ctx, podName, metav1.GetOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error().Err(err).Msgf("failed to get pod %s in namespace %s", podName, namespace)
|
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -252,7 +239,7 @@ func mergePCAPs(outputFile string, inputFiles []string) error {
|
|||||||
// Read packet data
|
// Read packet data
|
||||||
data, ci, err := reader.ReadPacketData()
|
data, ci, err := reader.ReadPacketData()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, io.EOF) {
|
if errors.Is(err, io.EOF) || errors.Is(err, io.ErrUnexpectedEOF) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
log.Error().Err(err).Msgf("Error reading packet from file %s", inputFile)
|
log.Error().Err(err).Msgf("Error reading packet from file %s", inputFile)
|
||||||
@ -295,7 +282,7 @@ func copyPcapFiles(clientset *kubernetes.Clientset, config *rest.Config, destDir
|
|||||||
// Iterate over each pod to get the PCAP directory from config and copy files
|
// Iterate over each pod to get the PCAP directory from config and copy files
|
||||||
for _, pod := range workerPods {
|
for _, pod := range workerPods {
|
||||||
// Get the list of NamespaceFiles (files per namespace) and their source directories
|
// Get the list of NamespaceFiles (files per namespace) and their source directories
|
||||||
namespaceFiles, err := listFilesInPodDir(context.Background(), clientset, config, pod.Name, targetNamespaces, SELF_RESOURCES_PREFIX+SUFFIX_CONFIG_MAP, "PCAP_SRC_DIR", cutoffTime)
|
namespaceFiles, err := listFilesInPodDir(context.Background(), clientset, config, pod.Name, targetNamespaces, cutoffTime)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error().Err(err).Msgf("Error listing files in pod %s", pod.Name)
|
log.Error().Err(err).Msgf("Error listing files in pod %s", pod.Name)
|
||||||
continue
|
continue
|
||||||
|
@ -220,7 +220,6 @@ type PcapDumpConfig struct {
|
|||||||
PcapTimeInterval string `yaml:"timeInterval" json:"timeInterval" default:"1m"`
|
PcapTimeInterval string `yaml:"timeInterval" json:"timeInterval" default:"1m"`
|
||||||
PcapMaxTime string `yaml:"maxTime" json:"maxTime" default:"1h"`
|
PcapMaxTime string `yaml:"maxTime" json:"maxTime" default:"1h"`
|
||||||
PcapMaxSize string `yaml:"maxSize" json:"maxSize" default:"500MB"`
|
PcapMaxSize string `yaml:"maxSize" json:"maxSize" default:"500MB"`
|
||||||
PcapSrcDir string `yaml:"pcapSrcDir" json:"pcapSrcDir" default:"pcapdump"`
|
|
||||||
PcapTime string `yaml:"time" json:"time" default:"time"`
|
PcapTime string `yaml:"time" json:"time" default:"time"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BIN
helm-chart/node-minikube-worker-1-20241211-193826.pcap
Normal file
BIN
helm-chart/node-minikube-worker-1-20241211-193826.pcap
Normal file
Binary file not shown.
@ -56,5 +56,4 @@ data:
|
|||||||
PCAP_DUMP_ENABLE: '{{ .Values.pcapdump.enabled }}'
|
PCAP_DUMP_ENABLE: '{{ .Values.pcapdump.enabled }}'
|
||||||
PCAP_TIME_INTERVAL: '{{ .Values.pcapdump.timeInterval }}'
|
PCAP_TIME_INTERVAL: '{{ .Values.pcapdump.timeInterval }}'
|
||||||
PCAP_MAX_TIME: '{{ .Values.pcapdump.maxTime }}'
|
PCAP_MAX_TIME: '{{ .Values.pcapdump.maxTime }}'
|
||||||
PCAP_MAX_SIZE: '{{ .Values.pcapdump.maxSize }}'
|
PCAP_MAX_SIZE: '{{ .Values.pcapdump.maxSize }}'
|
||||||
PCAP_SRC_DIR: '{{ .Values.pcapdump.pcapSrcDir }}'
|
|
@ -173,7 +173,6 @@ pcapdump:
|
|||||||
timeInterval: 1m
|
timeInterval: 1m
|
||||||
maxTime: 1h
|
maxTime: 1h
|
||||||
maxSize: 500MB
|
maxSize: 500MB
|
||||||
pcapSrcDir: pcapdump
|
|
||||||
time: time
|
time: time
|
||||||
kube:
|
kube:
|
||||||
configPath: ""
|
configPath: ""
|
||||||
|
Loading…
Reference in New Issue
Block a user