Skip to content

Commit

Permalink
refactor: Unify task runner env vars
Browse files Browse the repository at this point in the history
- Rename `N8N_TASK_BROKER_URI` to `N8N_RUNNERS_TASK_BROKER_URI`
- Rename `N8N_RUNNERS_SERVER_ENABLED` to `N8N_RUNNERS_HEALTH_CHECK_SERVER_ENABLED`
  • Loading branch information
tomi committed Dec 4, 2024
1 parent 2010f72 commit c988876
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 20 deletions.
4 changes: 2 additions & 2 deletions docs/setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ This launcher is intended for deployment as a sidecar container alongside one or
"PATH",
"GENERIC_TIMEZONE",
"N8N_RUNNERS_GRANT_TOKEN",
"N8N_RUNNERS_N8N_URI",
"N8N_RUNNERS_TASK_BROKER_URI",
"N8N_RUNNERS_MAX_PAYLOAD",
"N8N_RUNNERS_MAX_CONCURRENCY",
"NODE_FUNCTION_ALLOW_BUILTIN",
Expand Down Expand Up @@ -48,7 +48,7 @@ Task runner config fields:

- Optionally, specify the launcher's auto-shutdown timeout by setting `N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT` to a number of seconds, or set it to `0` to disable. Default is `15`. The runner will exit after this timeout if it is idle for the specified duration, and will be re-launched on demand when the next task comes in.

- Optionally, specify the task broker's URI (i.e. n8n instance's URI) by setting `N8N_TASK_BROKER_URI`. Default is `http://127.0.0.1:5679`.
- Optionally, specify the task broker's URI (i.e. n8n instance's URI) by setting `N8N_RUNNERS_TASK_BROKER_URI`. Default is `http://127.0.0.1:5679`.

- Optionally, specify the port for the launcher's health check server by setting `N8N_LAUNCHER_HEALTH_CHECK_PORT`. Default is `5680`. When overriding this port, be mindful of port conflicts - by default, the n8n instance uses `5678` for its regular server and `5679` for its task broker server, and the runner uses `5681` for its healthcheck server.

Expand Down
4 changes: 2 additions & 2 deletions internal/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ type Config struct {
AutoShutdownTimeout string `env:"N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT, default=15"`

// TaskBrokerURI is the URI of the task broker server.
TaskBrokerURI string `env:"N8N_TASK_BROKER_URI, default=http://127.0.0.1:5679"`
TaskBrokerURI string `env:"N8N_RUNNERS_TASK_BROKER_URI, default=http://127.0.0.1:5679"`

// HealthCheckServerPort is the port for the launcher's health check server.
HealthCheckServerPort string `env:"N8N_LAUNCHER_HEALTH_CHECK_PORT, default=5680"`
Expand Down Expand Up @@ -89,7 +89,7 @@ func LoadConfig(runnerType string, lookuper envconfig.Lookuper) (*Config, error)

// launcher

if err := validateURL(cfg.TaskBrokerURI, "N8N_TASK_BROKER_URI"); err != nil {
if err := validateURL(cfg.TaskBrokerURI, "N8N_RUNNERS_TASK_BROKER_URI"); err != nil {
cfgErrs = append(cfgErrs, err)
}

Expand Down
24 changes: 12 additions & 12 deletions internal/config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ func TestLoadConfig(t *testing.T) {
name: "valid configuration",
configContent: validConfigContent,
envVars: map[string]string{
"N8N_RUNNERS_AUTH_TOKEN": "test-token",
"N8N_TASK_BROKER_URI": "http://localhost:5679",
"SENTRY_DSN": "https://[email protected]/123",
"N8N_RUNNERS_AUTH_TOKEN": "test-token",
"N8N_RUNNERS_TASK_BROKER_URI": "http://localhost:5679",
"SENTRY_DSN": "https://[email protected]/123",
},
runnerType: "javascript",
expectedError: false,
Expand All @@ -46,9 +46,9 @@ func TestLoadConfig(t *testing.T) {
name: "valid configuration",
configContent: validConfigContent,
envVars: map[string]string{
"N8N_RUNNERS_AUTH_TOKEN": "test-token",
"N8N_TASK_BROKER_URI": "http://127.0.0.1:5679",
"SENTRY_DSN": "https://[email protected]/123",
"N8N_RUNNERS_AUTH_TOKEN": "test-token",
"N8N_RUNNERS_TASK_BROKER_URI": "http://127.0.0.1:5679",
"SENTRY_DSN": "https://[email protected]/123",
},
runnerType: "javascript",
expectedError: false,
Expand Down Expand Up @@ -92,8 +92,8 @@ func TestConfigFileErrors(t *testing.T) {
configContent: "invalid json",
expectedError: "failed to parse config file",
envVars: map[string]string{
"N8N_RUNNERS_AUTH_TOKEN": "test-token",
"N8N_TASK_BROKER_URI": "http://localhost:5679",
"N8N_RUNNERS_AUTH_TOKEN": "test-token",
"N8N_RUNNERS_TASK_BROKER_URI": "http://localhost:5679",
},
},
{
Expand All @@ -103,8 +103,8 @@ func TestConfigFileErrors(t *testing.T) {
}`,
expectedError: "found no task runner configs",
envVars: map[string]string{
"N8N_RUNNERS_AUTH_TOKEN": "test-token",
"N8N_TASK_BROKER_URI": "http://localhost:5679",
"N8N_RUNNERS_AUTH_TOKEN": "test-token",
"N8N_RUNNERS_TASK_BROKER_URI": "http://localhost:5679",
},
},
{
Expand All @@ -120,8 +120,8 @@ func TestConfigFileErrors(t *testing.T) {
}`,
expectedError: "does not contain requested runner type: javascript",
envVars: map[string]string{
"N8N_RUNNERS_AUTH_TOKEN": "test-token",
"N8N_TASK_BROKER_URI": "http://localhost:5679",
"N8N_RUNNERS_AUTH_TOKEN": "test-token",
"N8N_RUNNERS_TASK_BROKER_URI": "http://localhost:5679",
},
},
}
Expand Down
2 changes: 1 addition & 1 deletion internal/env/env.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ func PrepareRunnerEnv(cfg *config.Config) []string {
allowedEnvs := append(defaultEnvs, cfg.Runner.AllowedEnv...)

runnerEnv := allowedOnly(allowedEnvs)
runnerEnv = append(runnerEnv, "N8N_RUNNERS_SERVER_ENABLED=true")
runnerEnv = append(runnerEnv, "N8N_RUNNERS_HEALTH_CHECK_SERVER_ENABLED=true")
runnerEnv = append(runnerEnv, fmt.Sprintf("%s=%s", EnvVarAutoShutdownTimeout, cfg.AutoShutdownTimeout))

return runnerEnv
Expand Down
6 changes: 3 additions & 3 deletions internal/env/env_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ func TestPrepareRunnerEnv(t *testing.T) {
"CUSTOM_VAR2=value2",
"LANG=en_US.UTF-8",
"N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT=15",
"N8N_RUNNERS_SERVER_ENABLED=true",
"N8N_RUNNERS_HEALTH_CHECK_SERVER_ENABLED=true",
"PATH=/usr/bin",
"TERM=xterm",
"TZ=UTC",
Expand All @@ -198,7 +198,7 @@ func TestPrepareRunnerEnv(t *testing.T) {
expected: []string{
"LANG=en_US.UTF-8",
"N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT=15",
"N8N_RUNNERS_SERVER_ENABLED=true",
"N8N_RUNNERS_HEALTH_CHECK_SERVER_ENABLED=true",
"PATH=/usr/bin",
},
},
Expand All @@ -216,7 +216,7 @@ func TestPrepareRunnerEnv(t *testing.T) {
},
expected: []string{
"N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT=30",
"N8N_RUNNERS_SERVER_ENABLED=true",
"N8N_RUNNERS_HEALTH_CHECK_SERVER_ENABLED=true",
"PATH=/usr/bin",
},
},
Expand Down

0 comments on commit c988876

Please sign in to comment.