mirror of
https://github.com/kubeshark/kubeshark.git
synced 2025-06-22 06:18:51 +00:00
move mizu agent config from config (#563)
This commit is contained in:
parent
15895d5947
commit
1e1b5f0c0f
@ -2,6 +2,7 @@ package cmd
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/up9inc/mizu/cli/apiserver"
|
"github.com/up9inc/mizu/cli/apiserver"
|
||||||
@ -9,6 +10,7 @@ import (
|
|||||||
"github.com/up9inc/mizu/cli/mizu/fsUtils"
|
"github.com/up9inc/mizu/cli/mizu/fsUtils"
|
||||||
"github.com/up9inc/mizu/cli/resources"
|
"github.com/up9inc/mizu/cli/resources"
|
||||||
"github.com/up9inc/mizu/cli/telemetry"
|
"github.com/up9inc/mizu/cli/telemetry"
|
||||||
|
"github.com/up9inc/mizu/shared"
|
||||||
"path"
|
"path"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -71,3 +73,12 @@ func dumpLogsIfNeeded(ctx context.Context, kubernetesProvider *kubernetes.Provid
|
|||||||
logger.Log.Errorf("Failed dump logs %v", err)
|
logger.Log.Errorf("Failed dump logs %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getSerializedMizuAgentConfig(mizuAgentConfig *shared.MizuAgentConfig) (string, error) {
|
||||||
|
serializedConfig, err := json.Marshal(mizuAgentConfig)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
return string(serializedConfig), nil
|
||||||
|
}
|
||||||
|
@ -94,9 +94,15 @@ func RunMizuTap() {
|
|||||||
|
|
||||||
state.targetNamespaces = getNamespaces(kubernetesProvider)
|
state.targetNamespaces = getNamespaces(kubernetesProvider)
|
||||||
|
|
||||||
serializedMizuConfig, err := config.GetSerializedMizuAgentConfig(state.targetNamespaces, mizuApiFilteringOptions)
|
mizuAgentConfig, err := getMizuAgentConfig(state.targetNamespaces, mizuApiFilteringOptions)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log.Errorf(uiUtils.Error, fmt.Sprintf("Error composing mizu config: %v", errormessage.FormatError(err)))
|
logger.Log.Errorf(uiUtils.Error, fmt.Sprintf("Error getting mizu config: %v", errormessage.FormatError(err)))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
serializedMizuConfig, err := getSerializedMizuAgentConfig(mizuAgentConfig)
|
||||||
|
if err != nil {
|
||||||
|
logger.Log.Errorf(uiUtils.Error, fmt.Sprintf("Error serializing mizu config: %v", errormessage.FormatError(err)))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -165,6 +171,31 @@ func handleDaemonModePostCreation(cancel context.CancelFunc, kubernetesProvider
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getMizuAgentConfig(targetNamespaces []string, mizuApiFilteringOptions *api.TrafficFilteringOptions) (*shared.MizuAgentConfig, error) {
|
||||||
|
serializableRegex, err := api.CompileRegexToSerializableRegexp(config.Config.Tap.PodRegexStr)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
mizuAgentConfig := shared.MizuAgentConfig{
|
||||||
|
TapTargetRegex: *serializableRegex,
|
||||||
|
MaxDBSizeBytes: config.Config.Tap.MaxEntriesDBSizeBytes(),
|
||||||
|
TargetNamespaces: targetNamespaces,
|
||||||
|
AgentImage: config.Config.AgentImage,
|
||||||
|
PullPolicy: config.Config.ImagePullPolicyStr,
|
||||||
|
LogLevel: config.Config.LogLevel(),
|
||||||
|
IgnoredUserAgents: config.Config.Tap.IgnoredUserAgents,
|
||||||
|
TapperResources: config.Config.Tap.TapperResources,
|
||||||
|
MizuResourcesNamespace: config.Config.MizuResourcesNamespace,
|
||||||
|
MizuApiFilteringOptions: *mizuApiFilteringOptions,
|
||||||
|
AgentDatabasePath: shared.DataDirPath,
|
||||||
|
Istio: config.Config.Tap.Istio,
|
||||||
|
SyncTappers: config.Config.Tap.DaemonMode,
|
||||||
|
}
|
||||||
|
|
||||||
|
return &mizuAgentConfig, nil
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
this function is a bit problematic as it might be detached from the actual pods the mizu api server will tap.
|
this function is a bit problematic as it might be detached from the actual pods the mizu api server will tap.
|
||||||
The alternative would be to wait for api server to be ready and then query it for the pods it listens to, this has
|
The alternative would be to wait for api server to be ready and then query it for the pods it listens to, this has
|
||||||
|
@ -9,9 +9,6 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/up9inc/mizu/tap/api"
|
|
||||||
"k8s.io/apimachinery/pkg/util/json"
|
|
||||||
|
|
||||||
"github.com/up9inc/mizu/shared"
|
"github.com/up9inc/mizu/shared"
|
||||||
"github.com/up9inc/mizu/shared/logger"
|
"github.com/up9inc/mizu/shared/logger"
|
||||||
|
|
||||||
@ -371,38 +368,3 @@ func setZeroForReadonlyFields(currentElem reflect.Value) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetSerializedMizuAgentConfig(targetNamespaces []string, mizuApiFilteringOptions *api.TrafficFilteringOptions) (string, error) {
|
|
||||||
mizuConfig, err := getMizuAgentConfig(targetNamespaces, mizuApiFilteringOptions)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
serializedConfig, err := json.Marshal(mizuConfig)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
return string(serializedConfig), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func getMizuAgentConfig(targetNamespaces []string, mizuApiFilteringOptions *api.TrafficFilteringOptions) (*shared.MizuAgentConfig, error) {
|
|
||||||
serializableRegex, err := api.CompileRegexToSerializableRegexp(Config.Tap.PodRegexStr)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
config := shared.MizuAgentConfig{
|
|
||||||
TapTargetRegex: *serializableRegex,
|
|
||||||
MaxDBSizeBytes: Config.Tap.MaxEntriesDBSizeBytes(),
|
|
||||||
TargetNamespaces: targetNamespaces,
|
|
||||||
AgentImage: Config.AgentImage,
|
|
||||||
PullPolicy: Config.ImagePullPolicyStr,
|
|
||||||
LogLevel: Config.LogLevel(),
|
|
||||||
IgnoredUserAgents: Config.Tap.IgnoredUserAgents,
|
|
||||||
TapperResources: Config.Tap.TapperResources,
|
|
||||||
MizuResourcesNamespace: Config.MizuResourcesNamespace,
|
|
||||||
MizuApiFilteringOptions: *mizuApiFilteringOptions,
|
|
||||||
AgentDatabasePath: shared.DataDirPath,
|
|
||||||
Istio: Config.Tap.Istio,
|
|
||||||
SyncTappers: Config.Tap.DaemonMode,
|
|
||||||
}
|
|
||||||
return &config, nil
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user