From aedf4eb3ee1615538ce6f4d383daf9dd1d91cd06 Mon Sep 17 00:00:00 2001 From: "o.omahony" Date: Fri, 11 Nov 2022 16:16:20 +0000 Subject: [PATCH 1/3] removed the need for a connection on agent startup --- main.go | 27 +++++++++++++++---- src/core/config/defaults.go | 1 - .../agent/v2/src/core/config/defaults.go | 1 - .../monitoring/processor/nap.go | 2 +- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index 96b51134a..69c8c1541 100644 --- a/main.go +++ b/main.go @@ -70,9 +70,12 @@ func main() { sdkGRPC.InitMeta(loadedConfig.ClientID, loadedConfig.CloudAccountID) controller, commander, reporter := createGrpcClients(ctx, loadedConfig) - if err := controller.Connect(); err != nil { - log.Warnf("Unable to connect to control plane: %v", err) - return + + if controller != nil { + if err := controller.Connect(); err != nil { + log.Warnf("Unable to connect to control plane: %v", err) + return + } } binary := core.NewNginxBinary(env, loadedConfig) @@ -132,6 +135,10 @@ func handleSignals( } func createGrpcClients(ctx context.Context, loadedConfig *config.Config) (client.Controller, client.Commander, client.MetricReporter) { + if loadedConfig.Server.GrpcPort == 0 { + return nil, nil, nil + } + grpcDialOptions := setDialOptions(loadedConfig) secureMetricsDialOpts, err := sdkGRPC.SecureDialOptions( loadedConfig.TLS.Enable, @@ -175,11 +182,21 @@ func createGrpcClients(ctx context.Context, loadedConfig *config.Config) (client func loadPlugins(commander client.Commander, binary *core.NginxBinaryType, env *core.EnvironmentType, reporter client.MetricReporter, loadedConfig *config.Config) []core.Plugin { var corePlugins []core.Plugin + if commander != nil { + corePlugins = append(corePlugins, + plugins.NewCommander(commander, loadedConfig), + ) + } + + if reporter != nil { + corePlugins = append(corePlugins, + plugins.NewMetricsSender(reporter), + ) + } + corePlugins = append(corePlugins, plugins.NewConfigReader(loadedConfig), plugins.NewNginx(commander, binary, env, loadedConfig), - plugins.NewCommander(commander, loadedConfig), - plugins.NewMetricsSender(reporter), plugins.NewOneTimeRegistration(loadedConfig, binary, env, sdkGRPC.NewMessageMeta(uuid.NewString()), version), plugins.NewMetrics(loadedConfig, env, binary), plugins.NewMetricsThrottle(loadedConfig, env), diff --git a/src/core/config/defaults.go b/src/core/config/defaults.go index 2cdfc9140..3ce02356e 100644 --- a/src/core/config/defaults.go +++ b/src/core/config/defaults.go @@ -205,7 +205,6 @@ var ( &IntFlag{ Name: ServerGrpcport, Usage: "The desired GRPC port to use for nginx-agent traffic.", - DefaultValue: Defaults.Server.GrpcPort, }, &StringFlag{ Name: ServerToken, diff --git a/test/performance/vendor/github.com/nginx/agent/v2/src/core/config/defaults.go b/test/performance/vendor/github.com/nginx/agent/v2/src/core/config/defaults.go index 2cdfc9140..3ce02356e 100644 --- a/test/performance/vendor/github.com/nginx/agent/v2/src/core/config/defaults.go +++ b/test/performance/vendor/github.com/nginx/agent/v2/src/core/config/defaults.go @@ -205,7 +205,6 @@ var ( &IntFlag{ Name: ServerGrpcport, Usage: "The desired GRPC port to use for nginx-agent traffic.", - DefaultValue: Defaults.Server.GrpcPort, }, &StringFlag{ Name: ServerToken, diff --git a/test/performance/vendor/github.com/nginx/agent/v2/src/extensions/nginx-app-protect/monitoring/processor/nap.go b/test/performance/vendor/github.com/nginx/agent/v2/src/extensions/nginx-app-protect/monitoring/processor/nap.go index 6d824f1ba..ea34ce712 100644 --- a/test/performance/vendor/github.com/nginx/agent/v2/src/extensions/nginx-app-protect/monitoring/processor/nap.go +++ b/test/performance/vendor/github.com/nginx/agent/v2/src/extensions/nginx-app-protect/monitoring/processor/nap.go @@ -460,7 +460,7 @@ func setValue(napConfig *NAPConfig, key, value string, logger *logrus.Entry) err case requestStatus: napConfig.RequestStatus = value case severity: - napConfig.Severity = value + napConfig.Severity = strings.ToLower(value) case sigSetNames: napConfig.SigSetNames = replaceEncodedList(value, listSeperator) case threatCampaignNames: From 33c8162a73e82b50d4bbea0b64f9e5fcb2e9a123 Mon Sep 17 00:00:00 2001 From: "o.omahony" Date: Fri, 11 Nov 2022 16:26:59 +0000 Subject: [PATCH 2/3] prevent connection if nothing set --- main.go | 6 +++++- src/core/config/defaults.go | 3 --- .../github.com/nginx/agent/v2/src/core/config/defaults.go | 3 --- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index 69c8c1541..fab3afa3a 100644 --- a/main.go +++ b/main.go @@ -134,8 +134,12 @@ func handleSignals( }() } +func connectionUnavilable(loadedConfig *config.Config) bool { + return loadedConfig.Server.Host == "" || loadedConfig.Server.GrpcPort == 0 +} + func createGrpcClients(ctx context.Context, loadedConfig *config.Config) (client.Controller, client.Commander, client.MetricReporter) { - if loadedConfig.Server.GrpcPort == 0 { + if connectionUnavilable(loadedConfig) { return nil, nil, nil } diff --git a/src/core/config/defaults.go b/src/core/config/defaults.go index 3ce02356e..57fea002d 100644 --- a/src/core/config/defaults.go +++ b/src/core/config/defaults.go @@ -37,8 +37,6 @@ var ( Path: "/var/log/nginx-agent", }, Server: Server{ - Host: "127.0.0.1", - GrpcPort: 443, Command: "", Metrics: "", // token needs to be validated on the server side - can be overridden by the config value or the cli / environment variable @@ -200,7 +198,6 @@ var ( &StringFlag{ Name: ServerHost, Usage: "The IP address of the server host. IPv4 addresses and hostnames are supported.", - DefaultValue: Defaults.Server.Host, }, &IntFlag{ Name: ServerGrpcport, diff --git a/test/performance/vendor/github.com/nginx/agent/v2/src/core/config/defaults.go b/test/performance/vendor/github.com/nginx/agent/v2/src/core/config/defaults.go index 3ce02356e..57fea002d 100644 --- a/test/performance/vendor/github.com/nginx/agent/v2/src/core/config/defaults.go +++ b/test/performance/vendor/github.com/nginx/agent/v2/src/core/config/defaults.go @@ -37,8 +37,6 @@ var ( Path: "/var/log/nginx-agent", }, Server: Server{ - Host: "127.0.0.1", - GrpcPort: 443, Command: "", Metrics: "", // token needs to be validated on the server side - can be overridden by the config value or the cli / environment variable @@ -200,7 +198,6 @@ var ( &StringFlag{ Name: ServerHost, Usage: "The IP address of the server host. IPv4 addresses and hostnames are supported.", - DefaultValue: Defaults.Server.Host, }, &IntFlag{ Name: ServerGrpcport, From 9c8e607c7be84897a8a515764f4d47f9b4221c7a Mon Sep 17 00:00:00 2001 From: "o.omahony" Date: Wed, 16 Nov 2022 10:15:14 +0000 Subject: [PATCH 3/3] added in log --- main.go | 1 + 1 file changed, 1 insertion(+) diff --git a/main.go b/main.go index fab3afa3a..19960144e 100644 --- a/main.go +++ b/main.go @@ -140,6 +140,7 @@ func connectionUnavilable(loadedConfig *config.Config) bool { func createGrpcClients(ctx context.Context, loadedConfig *config.Config) (client.Controller, client.Commander, client.MetricReporter) { if connectionUnavilable(loadedConfig) { + log.Infof("GRPC clients not created") return nil, nil, nil }