diff --git a/cli/cmd/common.go b/cli/cmd/common.go index 9f1df8a11..b99b1011d 100644 --- a/cli/cmd/common.go +++ b/cli/cmd/common.go @@ -2,6 +2,7 @@ package cmd import ( "context" + "encoding/json" "errors" "fmt" "github.com/up9inc/mizu/cli/apiserver" @@ -9,6 +10,7 @@ import ( "github.com/up9inc/mizu/cli/mizu/fsUtils" "github.com/up9inc/mizu/cli/resources" "github.com/up9inc/mizu/cli/telemetry" + "github.com/up9inc/mizu/shared" "path" "time" @@ -71,3 +73,12 @@ func dumpLogsIfNeeded(ctx context.Context, kubernetesProvider *kubernetes.Provid 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 +} diff --git a/cli/cmd/tapRunner.go b/cli/cmd/tapRunner.go index 804122985..28c0bd67e 100644 --- a/cli/cmd/tapRunner.go +++ b/cli/cmd/tapRunner.go @@ -94,9 +94,15 @@ func RunMizuTap() { state.targetNamespaces = getNamespaces(kubernetesProvider) - serializedMizuConfig, err := config.GetSerializedMizuAgentConfig(state.targetNamespaces, mizuApiFilteringOptions) + mizuAgentConfig, err := getMizuAgentConfig(state.targetNamespaces, mizuApiFilteringOptions) 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 } @@ -165,6 +171,31 @@ func handleDaemonModePostCreation(cancel context.CancelFunc, kubernetesProvider 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. The alternative would be to wait for api server to be ready and then query it for the pods it listens to, this has diff --git a/cli/config/config.go b/cli/config/config.go index 982f4d2b0..f00cc6f09 100644 --- a/cli/config/config.go +++ b/cli/config/config.go @@ -9,9 +9,6 @@ import ( "strconv" "strings" - "github.com/up9inc/mizu/tap/api" - "k8s.io/apimachinery/pkg/util/json" - "github.com/up9inc/mizu/shared" "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 -}