diff --git a/Cargo.lock b/Cargo.lock index 8530a66e52..250392e348 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3325,7 +3325,7 @@ dependencies = [ ] [[package]] -name = "pegboard-runner-ws" +name = "pegboard-runner" version = "25.7.1" dependencies = [ "anyhow", @@ -4329,7 +4329,7 @@ dependencies = [ "lz4_flex", "namespace", "pegboard", - "pegboard-runner-ws", + "pegboard-runner", "pegboard-serverless", "portpicker", "rand 0.8.5", @@ -4419,7 +4419,7 @@ dependencies = [ "once_cell", "pegboard", "pegboard-gateway", - "pegboard-runner-ws", + "pegboard-runner", "pegboard-tunnel", "regex", "rivet-api-public", diff --git a/Cargo.toml b/Cargo.toml index 64962960d2..e82e03a547 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [workspace] resolver = "2" -members = ["packages/common/api-builder","packages/common/api-types","packages/common/api-util","packages/common/cache/build","packages/common/cache/result","packages/common/clickhouse-inserter","packages/common/clickhouse-user-query","packages/common/config","packages/common/env","packages/common/error/core","packages/common/error/macros","packages/common/gasoline/core","packages/common/gasoline/macros","packages/common/logs","packages/common/metrics","packages/common/pools","packages/common/runtime","packages/common/service-manager","packages/common/telemetry","packages/common/test-deps","packages/common/test-deps-docker","packages/common/types","packages/common/universaldb","packages/common/universalpubsub","packages/common/util/core","packages/common/util/id","packages/common/versioned-data-util","packages/core/actor-kv","packages/core/api-peer","packages/core/api-public","packages/core/bootstrap","packages/core/dump-openapi","packages/core/guard/core","packages/core/guard/server","packages/core/pegboard-gateway","packages/core/pegboard-runner-ws","packages/core/pegboard-serverless","packages/core/pegboard-tunnel","packages/core/workflow-worker","packages/infra/engine","packages/services/epoxy","packages/services/internal","packages/services/namespace","packages/services/pegboard","sdks/rust/api-full","sdks/rust/bare_gen","sdks/rust/data","sdks/rust/epoxy-protocol","sdks/rust/runner-protocol","sdks/rust/tunnel-protocol","sdks/rust/ups-protocol"] +members = ["packages/common/api-builder","packages/common/api-types","packages/common/api-util","packages/common/cache/build","packages/common/cache/result","packages/common/clickhouse-inserter","packages/common/clickhouse-user-query","packages/common/config","packages/common/env","packages/common/error/core","packages/common/error/macros","packages/common/gasoline/core","packages/common/gasoline/macros","packages/common/logs","packages/common/metrics","packages/common/pools","packages/common/runtime","packages/common/service-manager","packages/common/telemetry","packages/common/test-deps","packages/common/test-deps-docker","packages/common/types","packages/common/universaldb","packages/common/universalpubsub","packages/common/util/core","packages/common/util/id","packages/common/versioned-data-util","packages/core/actor-kv","packages/core/api-peer","packages/core/api-public","packages/core/bootstrap","packages/core/dump-openapi","packages/core/guard/core","packages/core/guard/server","packages/core/pegboard-gateway","packages/core/pegboard-runner","packages/core/pegboard-serverless","packages/core/pegboard-tunnel","packages/core/workflow-worker","packages/infra/engine","packages/services/epoxy","packages/services/internal","packages/services/namespace","packages/services/pegboard","sdks/rust/api-full","sdks/rust/bare_gen","sdks/rust/data","sdks/rust/epoxy-protocol","sdks/rust/runner-protocol","sdks/rust/tunnel-protocol","sdks/rust/ups-protocol"] [workspace.package] version = "25.7.1" @@ -359,8 +359,8 @@ path = "packages/core/guard/server" [workspace.dependencies.pegboard-gateway] path = "packages/core/pegboard-gateway" -[workspace.dependencies.pegboard-runner-ws] -path = "packages/core/pegboard-runner-ws" +[workspace.dependencies.pegboard-runner] +path = "packages/core/pegboard-runner" [workspace.dependencies.pegboard-serverless] path = "packages/core/pegboard-serverless" diff --git a/dev-docs/GUARD.md b/dev-docs/GUARD.md index c9d7b06afa..bfacd9c2ef 100644 --- a/dev-docs/GUARD.md +++ b/dev-docs/GUARD.md @@ -58,7 +58,7 @@ When the `x-rivet-target` header is present, routes to specific service types: - `x-rivet-addr:
` - Direct address override for actor location - **Behavior**: Routes to the specific actor instance, with cross-datacenter routing if the actor resides in a different DC -**Runner WebSocket** (`x-rivet-target: runner-ws`): +**Runner** (`x-rivet-target: runner`): - **Purpose**: Routes WebSocket connections to the Pegboard runner service - **Target**: Routes to the configured Pegboard service (`pegboard.lan_host:pegboard.port`) - **Use case**: WebSocket connections between runners and the orchestration system diff --git a/docker/dev-host/rivet-engine/config.jsonc b/docker/dev-host/rivet-engine/config.jsonc index c55ee2c15e..b9982494a5 100644 --- a/docker/dev-host/rivet-engine/config.jsonc +++ b/docker/dev-host/rivet-engine/config.jsonc @@ -4,7 +4,7 @@ }, "api_peer": { "host": "0.0.0.0", - "port": 6422 + "port": 6421 }, "pegboard": { "lan_host": "127.0.0.1", @@ -19,7 +19,7 @@ "name": "local", "datacenter_label": 1, "is_leader": true, - "api_peer_url": "http://127.0.0.1:6422", + "api_peer_url": "http://127.0.0.1:6421", "guard_url": "http://127.0.0.1:6420" } ] diff --git a/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/0/config.jsonc b/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/0/config.jsonc index 5be4e8e8da..61fdeb062b 100644 --- a/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/0/config.jsonc +++ b/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/0/config.jsonc @@ -4,7 +4,7 @@ }, "api_peer": { "host": "0.0.0.0", - "port": 6422 + "port": 6421 }, "pegboard": { "lan_host": "rivet-engine-dc-a-0", @@ -19,21 +19,21 @@ "name": "dc-a", "datacenter_label": 1, "is_leader": true, - "api_peer_url": "http://rivet-engine-dc-a-0:6422", + "api_peer_url": "http://rivet-engine-dc-a-0:6421", "guard_url": "http://rivet-engine-dc-a-0:6420" }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-b-0:6422", + "api_peer_url": "http://rivet-engine-dc-b-0:6421", "guard_url": "http://rivet-engine-dc-b-0:6420" }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-c-0:6422", + "api_peer_url": "http://rivet-engine-dc-c-0:6421", "guard_url": "http://rivet-engine-dc-c-0:6420" } ] diff --git a/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/1/config.jsonc b/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/1/config.jsonc index 5be4e8e8da..61fdeb062b 100644 --- a/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/1/config.jsonc +++ b/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/1/config.jsonc @@ -4,7 +4,7 @@ }, "api_peer": { "host": "0.0.0.0", - "port": 6422 + "port": 6421 }, "pegboard": { "lan_host": "rivet-engine-dc-a-0", @@ -19,21 +19,21 @@ "name": "dc-a", "datacenter_label": 1, "is_leader": true, - "api_peer_url": "http://rivet-engine-dc-a-0:6422", + "api_peer_url": "http://rivet-engine-dc-a-0:6421", "guard_url": "http://rivet-engine-dc-a-0:6420" }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-b-0:6422", + "api_peer_url": "http://rivet-engine-dc-b-0:6421", "guard_url": "http://rivet-engine-dc-b-0:6420" }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-c-0:6422", + "api_peer_url": "http://rivet-engine-dc-c-0:6421", "guard_url": "http://rivet-engine-dc-c-0:6420" } ] diff --git a/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/2/config.jsonc b/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/2/config.jsonc index 5be4e8e8da..61fdeb062b 100644 --- a/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/2/config.jsonc +++ b/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/2/config.jsonc @@ -4,7 +4,7 @@ }, "api_peer": { "host": "0.0.0.0", - "port": 6422 + "port": 6421 }, "pegboard": { "lan_host": "rivet-engine-dc-a-0", @@ -19,21 +19,21 @@ "name": "dc-a", "datacenter_label": 1, "is_leader": true, - "api_peer_url": "http://rivet-engine-dc-a-0:6422", + "api_peer_url": "http://rivet-engine-dc-a-0:6421", "guard_url": "http://rivet-engine-dc-a-0:6420" }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-b-0:6422", + "api_peer_url": "http://rivet-engine-dc-b-0:6421", "guard_url": "http://rivet-engine-dc-b-0:6420" }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-c-0:6422", + "api_peer_url": "http://rivet-engine-dc-c-0:6421", "guard_url": "http://rivet-engine-dc-c-0:6420" } ] diff --git a/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/0/config.jsonc b/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/0/config.jsonc index b6725f1155..f37b57b224 100644 --- a/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/0/config.jsonc +++ b/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/0/config.jsonc @@ -4,7 +4,7 @@ }, "api_peer": { "host": "0.0.0.0", - "port": 6422 + "port": 6421 }, "pegboard": { "lan_host": "rivet-engine-dc-b-0", @@ -19,21 +19,21 @@ "name": "dc-a", "datacenter_label": 1, "is_leader": true, - "api_peer_url": "http://rivet-engine-dc-a-0:6422", + "api_peer_url": "http://rivet-engine-dc-a-0:6421", "guard_url": "http://rivet-engine-dc-a-0:6420" }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-b-0:6422", + "api_peer_url": "http://rivet-engine-dc-b-0:6421", "guard_url": "http://rivet-engine-dc-b-0:6420" }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-c-0:6422", + "api_peer_url": "http://rivet-engine-dc-c-0:6421", "guard_url": "http://rivet-engine-dc-c-0:6420" } ] diff --git a/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/1/config.jsonc b/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/1/config.jsonc index b6725f1155..f37b57b224 100644 --- a/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/1/config.jsonc +++ b/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/1/config.jsonc @@ -4,7 +4,7 @@ }, "api_peer": { "host": "0.0.0.0", - "port": 6422 + "port": 6421 }, "pegboard": { "lan_host": "rivet-engine-dc-b-0", @@ -19,21 +19,21 @@ "name": "dc-a", "datacenter_label": 1, "is_leader": true, - "api_peer_url": "http://rivet-engine-dc-a-0:6422", + "api_peer_url": "http://rivet-engine-dc-a-0:6421", "guard_url": "http://rivet-engine-dc-a-0:6420" }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-b-0:6422", + "api_peer_url": "http://rivet-engine-dc-b-0:6421", "guard_url": "http://rivet-engine-dc-b-0:6420" }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-c-0:6422", + "api_peer_url": "http://rivet-engine-dc-c-0:6421", "guard_url": "http://rivet-engine-dc-c-0:6420" } ] diff --git a/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/2/config.jsonc b/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/2/config.jsonc index b6725f1155..f37b57b224 100644 --- a/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/2/config.jsonc +++ b/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/2/config.jsonc @@ -4,7 +4,7 @@ }, "api_peer": { "host": "0.0.0.0", - "port": 6422 + "port": 6421 }, "pegboard": { "lan_host": "rivet-engine-dc-b-0", @@ -19,21 +19,21 @@ "name": "dc-a", "datacenter_label": 1, "is_leader": true, - "api_peer_url": "http://rivet-engine-dc-a-0:6422", + "api_peer_url": "http://rivet-engine-dc-a-0:6421", "guard_url": "http://rivet-engine-dc-a-0:6420" }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-b-0:6422", + "api_peer_url": "http://rivet-engine-dc-b-0:6421", "guard_url": "http://rivet-engine-dc-b-0:6420" }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-c-0:6422", + "api_peer_url": "http://rivet-engine-dc-c-0:6421", "guard_url": "http://rivet-engine-dc-c-0:6420" } ] diff --git a/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/0/config.jsonc b/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/0/config.jsonc index badd6d3f47..7659806037 100644 --- a/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/0/config.jsonc +++ b/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/0/config.jsonc @@ -4,7 +4,7 @@ }, "api_peer": { "host": "0.0.0.0", - "port": 6422 + "port": 6421 }, "pegboard": { "lan_host": "rivet-engine-dc-c-0", @@ -19,21 +19,21 @@ "name": "dc-a", "datacenter_label": 1, "is_leader": true, - "api_peer_url": "http://rivet-engine-dc-a-0:6422", + "api_peer_url": "http://rivet-engine-dc-a-0:6421", "guard_url": "http://rivet-engine-dc-a-0:6420" }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-b-0:6422", + "api_peer_url": "http://rivet-engine-dc-b-0:6421", "guard_url": "http://rivet-engine-dc-b-0:6420" }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-c-0:6422", + "api_peer_url": "http://rivet-engine-dc-c-0:6421", "guard_url": "http://rivet-engine-dc-c-0:6420" } ] diff --git a/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/1/config.jsonc b/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/1/config.jsonc index badd6d3f47..7659806037 100644 --- a/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/1/config.jsonc +++ b/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/1/config.jsonc @@ -4,7 +4,7 @@ }, "api_peer": { "host": "0.0.0.0", - "port": 6422 + "port": 6421 }, "pegboard": { "lan_host": "rivet-engine-dc-c-0", @@ -19,21 +19,21 @@ "name": "dc-a", "datacenter_label": 1, "is_leader": true, - "api_peer_url": "http://rivet-engine-dc-a-0:6422", + "api_peer_url": "http://rivet-engine-dc-a-0:6421", "guard_url": "http://rivet-engine-dc-a-0:6420" }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-b-0:6422", + "api_peer_url": "http://rivet-engine-dc-b-0:6421", "guard_url": "http://rivet-engine-dc-b-0:6420" }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-c-0:6422", + "api_peer_url": "http://rivet-engine-dc-c-0:6421", "guard_url": "http://rivet-engine-dc-c-0:6420" } ] diff --git a/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/2/config.jsonc b/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/2/config.jsonc index badd6d3f47..7659806037 100644 --- a/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/2/config.jsonc +++ b/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/2/config.jsonc @@ -4,7 +4,7 @@ }, "api_peer": { "host": "0.0.0.0", - "port": 6422 + "port": 6421 }, "pegboard": { "lan_host": "rivet-engine-dc-c-0", @@ -19,21 +19,21 @@ "name": "dc-a", "datacenter_label": 1, "is_leader": true, - "api_peer_url": "http://rivet-engine-dc-a-0:6422", + "api_peer_url": "http://rivet-engine-dc-a-0:6421", "guard_url": "http://rivet-engine-dc-a-0:6420" }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-b-0:6422", + "api_peer_url": "http://rivet-engine-dc-b-0:6421", "guard_url": "http://rivet-engine-dc-b-0:6420" }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-c-0:6422", + "api_peer_url": "http://rivet-engine-dc-c-0:6421", "guard_url": "http://rivet-engine-dc-c-0:6420" } ] diff --git a/docker/dev-multidc/datacenters/dc-a/rivet-engine/config.jsonc b/docker/dev-multidc/datacenters/dc-a/rivet-engine/config.jsonc index a18d101b1e..17d4ecc24e 100644 --- a/docker/dev-multidc/datacenters/dc-a/rivet-engine/config.jsonc +++ b/docker/dev-multidc/datacenters/dc-a/rivet-engine/config.jsonc @@ -4,7 +4,7 @@ }, "api_peer": { "host": "0.0.0.0", - "port": 6422 + "port": 6421 }, "pegboard": { "lan_host": "rivet-engine-dc-a", @@ -19,21 +19,21 @@ "name": "dc-a", "datacenter_label": 1, "is_leader": true, - "api_peer_url": "http://rivet-engine-dc-a:6422", + "api_peer_url": "http://rivet-engine-dc-a:6421", "guard_url": "http://rivet-engine-dc-a:6420" }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-b:6422", + "api_peer_url": "http://rivet-engine-dc-b:6421", "guard_url": "http://rivet-engine-dc-b:6420" }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-c:6422", + "api_peer_url": "http://rivet-engine-dc-c:6421", "guard_url": "http://rivet-engine-dc-c:6420" } ] diff --git a/docker/dev-multidc/datacenters/dc-b/rivet-engine/config.jsonc b/docker/dev-multidc/datacenters/dc-b/rivet-engine/config.jsonc index aec142af80..6e73b2f666 100644 --- a/docker/dev-multidc/datacenters/dc-b/rivet-engine/config.jsonc +++ b/docker/dev-multidc/datacenters/dc-b/rivet-engine/config.jsonc @@ -4,7 +4,7 @@ }, "api_peer": { "host": "0.0.0.0", - "port": 6422 + "port": 6421 }, "pegboard": { "lan_host": "rivet-engine-dc-b", @@ -19,21 +19,21 @@ "name": "dc-a", "datacenter_label": 1, "is_leader": true, - "api_peer_url": "http://rivet-engine-dc-a:6422", + "api_peer_url": "http://rivet-engine-dc-a:6421", "guard_url": "http://rivet-engine-dc-a:6420" }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-b:6422", + "api_peer_url": "http://rivet-engine-dc-b:6421", "guard_url": "http://rivet-engine-dc-b:6420" }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-c:6422", + "api_peer_url": "http://rivet-engine-dc-c:6421", "guard_url": "http://rivet-engine-dc-c:6420" } ] diff --git a/docker/dev-multidc/datacenters/dc-c/rivet-engine/config.jsonc b/docker/dev-multidc/datacenters/dc-c/rivet-engine/config.jsonc index c057b19253..1b9c7d2846 100644 --- a/docker/dev-multidc/datacenters/dc-c/rivet-engine/config.jsonc +++ b/docker/dev-multidc/datacenters/dc-c/rivet-engine/config.jsonc @@ -4,7 +4,7 @@ }, "api_peer": { "host": "0.0.0.0", - "port": 6422 + "port": 6421 }, "pegboard": { "lan_host": "rivet-engine-dc-c", @@ -19,21 +19,21 @@ "name": "dc-a", "datacenter_label": 1, "is_leader": true, - "api_peer_url": "http://rivet-engine-dc-a:6422", + "api_peer_url": "http://rivet-engine-dc-a:6421", "guard_url": "http://rivet-engine-dc-a:6420" }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-b:6422", + "api_peer_url": "http://rivet-engine-dc-b:6421", "guard_url": "http://rivet-engine-dc-b:6420" }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, - "api_peer_url": "http://rivet-engine-dc-c:6422", + "api_peer_url": "http://rivet-engine-dc-c:6421", "guard_url": "http://rivet-engine-dc-c:6420" } ] diff --git a/docker/dev-multinode/rivet-engine/0/config.jsonc b/docker/dev-multinode/rivet-engine/0/config.jsonc index 33fbbb1271..e54bb07d6a 100644 --- a/docker/dev-multinode/rivet-engine/0/config.jsonc +++ b/docker/dev-multinode/rivet-engine/0/config.jsonc @@ -4,7 +4,7 @@ }, "api_peer": { "host": "0.0.0.0", - "port": 6422 + "port": 6421 }, "pegboard": { "lan_host": "rivet-engine-0", @@ -19,7 +19,7 @@ "name": "local", "datacenter_label": 1, "is_leader": true, - "api_peer_url": "http://rivet-engine-0:6422", + "api_peer_url": "http://rivet-engine-0:6421", "guard_url": "http://rivet-engine-0:6420" } ] diff --git a/docker/dev-multinode/rivet-engine/1/config.jsonc b/docker/dev-multinode/rivet-engine/1/config.jsonc index 33fbbb1271..e54bb07d6a 100644 --- a/docker/dev-multinode/rivet-engine/1/config.jsonc +++ b/docker/dev-multinode/rivet-engine/1/config.jsonc @@ -4,7 +4,7 @@ }, "api_peer": { "host": "0.0.0.0", - "port": 6422 + "port": 6421 }, "pegboard": { "lan_host": "rivet-engine-0", @@ -19,7 +19,7 @@ "name": "local", "datacenter_label": 1, "is_leader": true, - "api_peer_url": "http://rivet-engine-0:6422", + "api_peer_url": "http://rivet-engine-0:6421", "guard_url": "http://rivet-engine-0:6420" } ] diff --git a/docker/dev-multinode/rivet-engine/2/config.jsonc b/docker/dev-multinode/rivet-engine/2/config.jsonc index 33fbbb1271..e54bb07d6a 100644 --- a/docker/dev-multinode/rivet-engine/2/config.jsonc +++ b/docker/dev-multinode/rivet-engine/2/config.jsonc @@ -4,7 +4,7 @@ }, "api_peer": { "host": "0.0.0.0", - "port": 6422 + "port": 6421 }, "pegboard": { "lan_host": "rivet-engine-0", @@ -19,7 +19,7 @@ "name": "local", "datacenter_label": 1, "is_leader": true, - "api_peer_url": "http://rivet-engine-0:6422", + "api_peer_url": "http://rivet-engine-0:6421", "guard_url": "http://rivet-engine-0:6420" } ] diff --git a/docker/dev/rivet-engine/config.jsonc b/docker/dev/rivet-engine/config.jsonc index 3e3b5c8064..bb51468b3f 100644 --- a/docker/dev/rivet-engine/config.jsonc +++ b/docker/dev/rivet-engine/config.jsonc @@ -4,7 +4,7 @@ }, "api_peer": { "host": "0.0.0.0", - "port": 6422 + "port": 6421 }, "pegboard": { "lan_host": "rivet-engine", @@ -19,7 +19,7 @@ "name": "local", "datacenter_label": 1, "is_leader": true, - "api_peer_url": "http://rivet-engine:6422", + "api_peer_url": "http://rivet-engine:6421", "guard_url": "http://rivet-engine:6420" } ] diff --git a/docker/template/src/services/edge/rivet-engine.ts b/docker/template/src/services/edge/rivet-engine.ts index 08011ee09a..60e40cfb99 100644 --- a/docker/template/src/services/edge/rivet-engine.ts +++ b/docker/template/src/services/edge/rivet-engine.ts @@ -1,7 +1,7 @@ import { TemplateContext } from "../../context"; import { Datacenter } from "../../config"; -const API_PEER_PORT = 6422; +const API_PEER_PORT = 6421; const GUARD_PORT = 6420; export function generateDatacenterRivetEngine( diff --git a/packages/common/config/src/config/mod.rs b/packages/common/config/src/config/mod.rs index 9e2f82ba93..71dc02792c 100644 --- a/packages/common/config/src/config/mod.rs +++ b/packages/common/config/src/config/mod.rs @@ -10,8 +10,6 @@ pub mod clickhouse; pub mod db; pub mod guard; pub mod logs; -pub mod pegboard_gateway; -pub mod pegboard_tunnel; pub mod pubsub; pub mod telemetry; pub mod topology; @@ -24,8 +22,6 @@ pub use clickhouse::*; pub use db::Database; pub use guard::*; pub use logs::*; -pub use pegboard_gateway::*; -pub use pegboard_tunnel::*; pub use pubsub::PubSub; pub use telemetry::*; pub use topology::*; @@ -71,12 +67,6 @@ pub struct Root { #[serde(default)] pub api_peer: Option, - #[serde(default)] - pub pegboard_gateway: Option, - - #[serde(default)] - pub pegboard_tunnel: Option, - #[serde(default)] pub logs: Option, @@ -108,8 +98,6 @@ impl Default for Root { guard: None, api_public: None, api_peer: None, - pegboard_gateway: None, - pegboard_tunnel: None, logs: None, topology: None, database: None, @@ -138,16 +126,6 @@ impl Root { self.api_peer.as_ref().unwrap_or(&DEFAULT) } - pub fn pegboard_gateway(&self) -> &PegboardGateway { - static DEFAULT: LazyLock = LazyLock::new(PegboardGateway::default); - self.pegboard_gateway.as_ref().unwrap_or(&DEFAULT) - } - - pub fn pegboard_tunnel(&self) -> &PegboardTunnel { - static DEFAULT: LazyLock = LazyLock::new(PegboardTunnel::default); - self.pegboard_tunnel.as_ref().unwrap_or(&DEFAULT) - } - pub fn logs(&self) -> &Logs { static DEFAULT: LazyLock = LazyLock::new(Logs::default); self.logs.as_ref().unwrap_or(&DEFAULT) diff --git a/packages/common/config/src/config/pegboard_gateway.rs b/packages/common/config/src/config/pegboard_gateway.rs deleted file mode 100644 index e6f85b6530..0000000000 --- a/packages/common/config/src/config/pegboard_gateway.rs +++ /dev/null @@ -1,34 +0,0 @@ -use std::net::IpAddr; - -use schemars::JsonSchema; -use serde::{Deserialize, Serialize}; - -/// The gateway service that proxies WebSocket connections to pegboard. -#[derive(Debug, Serialize, Deserialize, Clone, Default, JsonSchema)] -#[serde(deny_unknown_fields)] -pub struct PegboardGateway { - /// The host on which the gateway service listens. - pub host: Option, - /// The host on which the gateway service is accessible to Guard. - pub lan_host: Option, - /// The port on which the gateway service listens. - pub port: Option, -} - -impl PegboardGateway { - pub fn lan_host(&self) -> &str { - self.lan_host - .as_deref() - .unwrap_or(crate::defaults::hosts::PEGBOARD_GATEWAY_LAN) - } - - pub fn host(&self) -> IpAddr { - self.host - .unwrap_or(crate::defaults::hosts::PEGBOARD_GATEWAY) - } - - pub fn port(&self) -> u16 { - self.port - .unwrap_or(crate::defaults::ports::PEGBOARD_GATEWAY) - } -} diff --git a/packages/common/config/src/config/pegboard_tunnel.rs b/packages/common/config/src/config/pegboard_tunnel.rs deleted file mode 100644 index 8be7d8f146..0000000000 --- a/packages/common/config/src/config/pegboard_tunnel.rs +++ /dev/null @@ -1,32 +0,0 @@ -use std::net::IpAddr; - -use schemars::JsonSchema; -use serde::{Deserialize, Serialize}; - -/// The tunnel service that forwards tunnel-protocol messages between pubsub and WebSocket connections. -#[derive(Debug, Serialize, Deserialize, Clone, Default, JsonSchema)] -#[serde(deny_unknown_fields)] -pub struct PegboardTunnel { - /// The host on which the tunnel service listens. - pub host: Option, - /// The host on which the tunnel service is accessible to runners. - pub lan_host: Option, - /// The port on which the tunnel service listens. - pub port: Option, -} - -impl PegboardTunnel { - pub fn lan_host(&self) -> &str { - self.lan_host - .as_deref() - .unwrap_or(crate::defaults::hosts::PEGBOARD_TUNNEL_LAN) - } - - pub fn host(&self) -> IpAddr { - self.host.unwrap_or(crate::defaults::hosts::PEGBOARD_TUNNEL) - } - - pub fn port(&self) -> u16 { - self.port.unwrap_or(crate::defaults::ports::PEGBOARD_TUNNEL) - } -} diff --git a/packages/common/config/src/defaults.rs b/packages/common/config/src/defaults.rs index 566ade2c03..ec2fa52c02 100644 --- a/packages/common/config/src/defaults.rs +++ b/packages/common/config/src/defaults.rs @@ -2,23 +2,10 @@ pub mod hosts { use std::net::{IpAddr, Ipv6Addr}; pub const GUARD: IpAddr = IpAddr::V6(Ipv6Addr::UNSPECIFIED); - pub const API_PUBLIC: IpAddr = IpAddr::V6(Ipv6Addr::UNSPECIFIED); pub const API_PEER: IpAddr = IpAddr::V6(Ipv6Addr::UNSPECIFIED); - pub const PEGBOARD_RUNNER_WS: IpAddr = IpAddr::V6(Ipv6Addr::UNSPECIFIED); - pub const PEGBOARD_GATEWAY: IpAddr = IpAddr::V6(Ipv6Addr::UNSPECIFIED); - pub const PEGBOARD_TUNNEL: IpAddr = IpAddr::V6(Ipv6Addr::UNSPECIFIED); - - pub const API_PUBLIC_LAN: &str = "::1"; - pub const PEGBOARD_RUNNER_LAN: &str = "::1"; - pub const PEGBOARD_GATEWAY_LAN: &str = "::1"; - pub const PEGBOARD_TUNNEL_LAN: &str = "::1"; } pub mod ports { - pub const API_PUBLIC: u16 = 6421; - pub const API_PEER: u16 = 6422; - pub const PEGBOARD_RUNNER_WS: u16 = 6423; - pub const PEGBOARD_GATEWAY: u16 = 6424; - pub const PEGBOARD_TUNNEL: u16 = 6425; pub const GUARD: u16 = 6420; + pub const API_PEER: u16 = 6421; } diff --git a/packages/core/guard/server/Cargo.toml b/packages/core/guard/server/Cargo.toml index 3a8b367052..ea2a0a9d30 100644 --- a/packages/core/guard/server/Cargo.toml +++ b/packages/core/guard/server/Cargo.toml @@ -26,7 +26,7 @@ once_cell.workspace = true pegboard-gateway.workspace = true pegboard-tunnel.workspace = true pegboard.workspace = true -pegboard-runner-ws.workspace = true +pegboard-runner.workspace = true regex.workspace = true rivet-api-public.workspace = true rivet-cache.workspace = true diff --git a/packages/core/guard/server/src/routing/mod.rs b/packages/core/guard/server/src/routing/mod.rs index d0a2b4c00f..50ee4015e3 100644 --- a/packages/core/guard/server/src/routing/mod.rs +++ b/packages/core/guard/server/src/routing/mod.rs @@ -10,7 +10,7 @@ use crate::{errors, shared_state::SharedState}; mod api_public; pub mod pegboard_gateway; mod pegboard_tunnel; -mod runner_ws; +mod runner; pub(crate) const X_RIVET_TARGET: HeaderName = HeaderName::from_static("x-rivet-target"); @@ -36,7 +36,7 @@ pub fn create_routing_function(ctx: StandaloneCtx, shared_state: SharedState) -> if let Some(target) = headers.get(X_RIVET_TARGET).and_then(|x| x.to_str().ok()) { if let Some(routing_output) = - runner_ws::route_request(&ctx, target, host, path).await? + runner::route_request(&ctx, target, host, path).await? { return Ok(routing_output); } diff --git a/packages/core/guard/server/src/routing/runner_ws.rs b/packages/core/guard/server/src/routing/runner.rs similarity index 79% rename from packages/core/guard/server/src/routing/runner_ws.rs rename to packages/core/guard/server/src/routing/runner.rs index 1a35ccaa08..4325229b22 100644 --- a/packages/core/guard/server/src/routing/runner_ws.rs +++ b/packages/core/guard/server/src/routing/runner.rs @@ -11,10 +11,10 @@ pub async fn route_request( _host: &str, path: &str, ) -> Result> { - if target != "runner-ws" { + if target != "runner" { return Ok(None); } - let tunnel = pegboard_runner_ws::PegboardRunnerWsCustomServe::new(ctx.clone()); + let tunnel = pegboard_runner::PegboardRunnerWsCustomServe::new(ctx.clone()); Ok(Some(RoutingOutput::CustomServe(Arc::new(tunnel)))) } diff --git a/packages/core/pegboard-runner-ws/Cargo.toml b/packages/core/pegboard-runner/Cargo.toml similarity index 96% rename from packages/core/pegboard-runner-ws/Cargo.toml rename to packages/core/pegboard-runner/Cargo.toml index 50ada2b4b9..fad664e3d8 100644 --- a/packages/core/pegboard-runner-ws/Cargo.toml +++ b/packages/core/pegboard-runner/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "pegboard-runner-ws" +name = "pegboard-runner" version.workspace = true authors.workspace = true license.workspace = true diff --git a/packages/core/pegboard-runner-ws/src/lib.rs b/packages/core/pegboard-runner/src/lib.rs similarity index 99% rename from packages/core/pegboard-runner-ws/src/lib.rs rename to packages/core/pegboard-runner/src/lib.rs index af6bd0f25b..6d8c37bc21 100644 --- a/packages/core/pegboard-runner-ws/src/lib.rs +++ b/packages/core/pegboard-runner/src/lib.rs @@ -133,7 +133,7 @@ impl CustomServeTrait for PegboardRunnerWsCustomServe { .status(StatusCode::OK) .header("Content-Type", "text/plain") .body(ResponseBody::Full(Full::new(Bytes::from( - "pegboard-runner-ws WebSocket endpoint", + "pegboard-runner WebSocket endpoint", ))))?; Ok(response) diff --git a/packages/infra/engine/Cargo.toml b/packages/infra/engine/Cargo.toml index 354f052b90..c431000f03 100644 --- a/packages/infra/engine/Cargo.toml +++ b/packages/infra/engine/Cargo.toml @@ -20,7 +20,7 @@ hex.workspace = true include_dir.workspace = true lz4_flex.workspace = true pegboard-serverless.workspace = true -pegboard-runner-ws.workspace = true +pegboard-runner.workspace = true reqwest.workspace = true rivet-api-peer.workspace = true rivet-bootstrap.workspace = true diff --git a/sdks/typescript/runner/src/mod.ts b/sdks/typescript/runner/src/mod.ts index 0da1f833dd..6724fc97f4 100644 --- a/sdks/typescript/runner/src/mod.ts +++ b/sdks/typescript/runner/src/mod.ts @@ -448,7 +448,7 @@ export class Runner { const WS = await importWebSocket(); const ws = new WS(this.pegboardUrl, { headers: { - "x-rivet-target": "runner-ws", + "x-rivet-target": "runner", }, }) as any as WebSocket; this.#pegboardWebSocket = ws; diff --git a/site/src/content/docs/self-hosting/configuration.mdx b/site/src/content/docs/self-hosting/configuration.mdx index 2b9179325b..eece31626b 100644 --- a/site/src/content/docs/self-hosting/configuration.mdx +++ b/site/src/content/docs/self-hosting/configuration.mdx @@ -34,40 +34,10 @@ interface RivetConfig { }; }; - // Public API service configuration - api_public?: { - host?: string; // Default: "::" (IPv6 unspecified) - lan_host?: string; // Default: "::1" - port?: number; // Default: 6421 - verbose_errors?: boolean; // Default: true - respect_forwarded_for?: boolean; // Default: false - }; - // Private API service configuration api_peer?: { host?: string; // Default: "::" (IPv6 unspecified) - port?: number; // Default: 6422 - }; - - // Runner WebSocket connection management - pegboard?: { - host?: string; // Default: "::" (IPv6 unspecified) - lan_host?: string; // Default: "::1" - port?: number; // Default: 6423 - }; - - // WebSocket proxy gateway service - pegboard_gateway?: { - host?: string; // Default: "::" (IPv6 unspecified) - lan_host?: string; // Default: "::1" - port?: number; // Default: 6424 - }; - - // Tunnel protocol message forwarding - pegboard_tunnel?: { - host?: string; // Default: "::" (IPv6 unspecified) - lan_host?: string; // Default: "::1" - port?: number; // Default: 6425 + port?: number; // Default: 6421 }; // Logging configuration @@ -82,7 +52,7 @@ interface RivetConfig { name: string; // Default: "local" datacenter_label: number; // Default: 1 is_leader: boolean; // Default: true - api_peer_url: string; // Default: "http://127.0.0.1:6422" + api_peer_url: string; // Default: "http://127.0.0.1:6421" guard_url: string; // Default: "http://127.0.0.1:6420" }>; };