From 15895d5947d0ba74c575cfab66932ed34d8543eb Mon Sep 17 00:00:00 2001 From: RoyUP9 <87927115+RoyUP9@users.noreply.github.com> Date: Mon, 27 Dec 2021 17:19:00 +0200 Subject: [PATCH] Changed sync tappers to start only when sync tappers config is true (#562) --- agent/main.go | 32 ++++++++++++---------- agent/pkg/config/config.go | 2 +- agent/pkg/controllers/status_controller.go | 2 +- cli/config/config.go | 2 +- shared/models.go | 2 +- 5 files changed, 22 insertions(+), 18 deletions(-) diff --git a/agent/main.go b/agent/main.go index 06812d4e0..9ea0369ac 100644 --- a/agent/main.go +++ b/agent/main.go @@ -131,6 +131,10 @@ func main() { } } + if config.Config.SyncTappers { + startSyncingTappers() + } + hostApi(outputItemsChannel) } else if *harsReaderMode { outputItemsChannel := make(chan *tapApi.OutputChannelItem, 1000) @@ -260,20 +264,6 @@ func hostApi(socketHarOutputChannel chan<- *tapApi.OutputChannelItem) { routes.StatusRoutes(app) routes.NotFoundRoute(app) - if config.Config.DaemonMode { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - kubernetesProvider, err := kubernetes.NewProviderInCluster() - if err != nil { - logger.Log.Fatalf("error creating k8s provider: %+v", err) - } - - if _, err := startMizuTapperSyncer(ctx, kubernetesProvider); err != nil { - logger.Log.Fatalf("error initializing tapper syncer: %+v", err) - } - } - utils.StartServer(app) } @@ -461,6 +451,20 @@ func handleIncomingMessageAsTapper(socketConnection *websocket.Conn) { } } +func startSyncingTappers() { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + kubernetesProvider, err := kubernetes.NewProviderInCluster() + if err != nil { + logger.Log.Fatalf("error creating k8s provider: %+v", err) + } + + if _, err := startMizuTapperSyncer(ctx, kubernetesProvider); err != nil { + logger.Log.Fatalf("error initializing tapper syncer: %+v", err) + } +} + func startMizuTapperSyncer(ctx context.Context, provider *kubernetes.Provider) (*kubernetes.MizuTapperSyncer, error) { tapperSyncer, err := kubernetes.CreateAndStartMizuTapperSyncer(ctx, provider, kubernetes.TapperSyncerConfig{ TargetNamespaces: config.Config.TargetNamespaces, diff --git a/agent/pkg/config/config.go b/agent/pkg/config/config.go index ac002e0c0..a25ead8aa 100644 --- a/agent/pkg/config/config.go +++ b/agent/pkg/config/config.go @@ -56,6 +56,6 @@ func getDefaultConfig() (*shared.MizuAgentConfig, error) { TapTargetRegex: *regex, MaxDBSizeBytes: defaultMaxDatabaseSizeBytes, AgentDatabasePath: DefaultDatabasePath, - DaemonMode: false, + SyncTappers: false, }, nil } diff --git a/agent/pkg/controllers/status_controller.go b/agent/pkg/controllers/status_controller.go index 0987ddc16..512cb4ddb 100644 --- a/agent/pkg/controllers/status_controller.go +++ b/agent/pkg/controllers/status_controller.go @@ -17,7 +17,7 @@ import ( ) func HealthCheck(c *gin.Context) { - if config.Config.DaemonMode { + if config.Config.SyncTappers { if providers.ExpectedTapperAmount != providers.TappersCount { c.JSON(http.StatusInternalServerError, fmt.Sprintf("expecting more tappers than are actually connected (%d expected, %d connected)", providers.ExpectedTapperAmount, providers.TappersCount)) return diff --git a/cli/config/config.go b/cli/config/config.go index dc9501fab..982f4d2b0 100644 --- a/cli/config/config.go +++ b/cli/config/config.go @@ -392,7 +392,6 @@ func getMizuAgentConfig(targetNamespaces []string, mizuApiFilteringOptions *api. config := shared.MizuAgentConfig{ TapTargetRegex: *serializableRegex, MaxDBSizeBytes: Config.Tap.MaxEntriesDBSizeBytes(), - DaemonMode: Config.Tap.DaemonMode, TargetNamespaces: targetNamespaces, AgentImage: Config.AgentImage, PullPolicy: Config.ImagePullPolicyStr, @@ -403,6 +402,7 @@ func getMizuAgentConfig(targetNamespaces []string, mizuApiFilteringOptions *api. MizuApiFilteringOptions: *mizuApiFilteringOptions, AgentDatabasePath: shared.DataDirPath, Istio: Config.Tap.Istio, + SyncTappers: Config.Tap.DaemonMode, } return &config, nil } diff --git a/shared/models.go b/shared/models.go index f18b833e8..43fbf6af2 100644 --- a/shared/models.go +++ b/shared/models.go @@ -36,7 +36,6 @@ type Resources struct { type MizuAgentConfig struct { TapTargetRegex api.SerializableRegexp `json:"tapTargetRegex"` MaxDBSizeBytes int64 `json:"maxDBSizeBytes"` - DaemonMode bool `json:"daemonMode"` TargetNamespaces []string `json:"targetNamespaces"` AgentImage string `json:"agentImage"` PullPolicy string `json:"pullPolicy"` @@ -47,6 +46,7 @@ type MizuAgentConfig struct { MizuApiFilteringOptions api.TrafficFilteringOptions `json:"mizuApiFilteringOptions"` AgentDatabasePath string `json:"agentDatabasePath"` Istio bool `json:"istio"` + SyncTappers bool `json:"syncTappers"` } type WebSocketMessageMetadata struct {