Skip to content

Commit 8aadc7f

Browse files
Update all Pingora references to proxy-core after data plane migration
The data plane was migrated from Pingora to proxy-core (monoio-based) in commit 78056b7, but many source files, docs, and comments still referenced Pingora. This cleans up all remaining references and verifies the deployment template is compatible with the proxy-core binary.
1 parent 0bcb55e commit 8aadc7f

9 files changed

Lines changed: 17 additions & 17 deletions

File tree

.claude/skills/development-loop/bug-reports/HTTPRouteSimpleSameNamespace.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ After fixing the ConfigMap SSA conflict, the ConfigMaps are now being created su
8787
```
8888
Returns HTTP 200 with correct response from backend.
8989

90-
2. **The data plane routing is working correctly.** The Pingora-based proxy successfully:
90+
2. **The data plane routing is working correctly.** The proxy-core data plane successfully:
9191
- Loads configuration from ConfigMap
9292
- Routes requests to backend services via Kubernetes DNS
9393
- Returns proper HTTP responses

CLAUDE.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ The current year is 2026. This file provides guidance to Claude Code (claude.ai/
44

55
## Project Overview
66

7-
Multiway is a Kubernetes [Gateway API](https://gateway-api.sigs.k8s.io/) implementation written in Rust (2024 edition). It implements a split-architecture controller: a **control plane** that reconciles Gateway API resources and a **data plane** (built on [Pingora](https://github.com/cloudflare/pingora)) that proxies HTTP traffic. The controller name is `io.multiway/gateway-controller`.
7+
Multiway is a Kubernetes [Gateway API](https://gateway-api.sigs.k8s.io/) implementation written in Rust (2024 edition). It implements a split-architecture controller: a **control plane** that reconciles Gateway API resources and a **data plane** (built on [proxy-core](crates/proxy-core/), a [monoio](https://github.com/bytedance/monoio)-based HTTP proxy) that proxies HTTP traffic. The controller name is `io.multiway/gateway-controller`.
88

99
## Build and Development Commands
1010

@@ -64,7 +64,7 @@ Do not commit or mark work as done until validation passes.
6464
multiway/
6565
├── crates/
6666
│ ├── controlplane/ # Core controller logic (binary: `multiway`)
67-
│ ├── dataplane/ # Pingora-based HTTP proxy (binary: `multiway-dataplane`)
67+
│ ├── dataplane/ # proxy-core HTTP proxy (binary: `multiway-dataplane`)
6868
│ └── gateway-crds/ # Auto-generated Rust bindings for Gateway API CRDs
6969
├── .crds/v1.2.1/ # Gateway API v1.2.1 CRD YAML definitions
7070
├── conformance/ # Gateway API conformance test suite (Docker + K8s Job)
@@ -220,7 +220,7 @@ Each reconciler follows the same fetch → compute → execute pattern.
220220

221221
## Data Plane
222222

223-
The data plane (`crates/dataplane/`) is a Pingora-based HTTP proxy:
223+
The data plane (`crates/dataplane/`) is a proxy-core (monoio-based) HTTP proxy:
224224

225225
- **Config source**: Reads a ConfigMap (`multiway-config-{gateway_name}`) containing JSON `GatewayConfig`
226226
- **Hot reload**: Watches ConfigMap via K8s API (not filesystem mounts) using `arc-swap` for atomic config swaps
@@ -248,7 +248,7 @@ Managed resource names follow the pattern `multiway-{gateway_name}`.
248248
```
249249
multiway version # Print version
250250
multiway controller [OPTIONS] # Run the control plane
251-
multiway gateway [OPTIONS] # Run the data plane (Pingora)
251+
multiway gateway [OPTIONS] # Run the data plane (proxy-core)
252252
```
253253

254254
- Global options: `--log-level`, `--log-format` (text/json), `--enable-colors`

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ ARG TARGETARCH
1919
# Install ALL build dependencies (union of controlplane + dataplane needs)
2020
# - musl-dev, pkgconfig: basic Rust/C compilation
2121
# - cmake, perl, make: aws-lc-rs (controlplane TLS)
22-
# - clang, clang-dev, linux-headers, g++: Pingora (dataplane proxy)
22+
# - clang, clang-dev, linux-headers, g++: monoio/io-uring (dataplane proxy)
2323
RUN apk add --no-cache \
2424
musl-dev \
2525
pkgconfig \

Dockerfile.dev

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ ARG TARGETARCH
1919
# Install ALL build dependencies (union of controlplane + dataplane needs)
2020
# - musl-dev, pkgconfig: basic Rust/C compilation
2121
# - cmake, perl, make: aws-lc-rs (controlplane TLS)
22-
# - clang, clang-dev, linux-headers, g++: Pingora (dataplane proxy)
22+
# - clang, clang-dev, linux-headers, g++: monoio/io-uring (dataplane proxy)
2323
RUN apk add --no-cache \
2424
musl-dev \
2525
pkgconfig \

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ A Kubernetes Gateway API implementation built with Rust, featuring separate cont
77
Multiway consists of two main components that run as separate processes in a Kubernetes cluster:
88

99
- **Control Plane** (`multiway-controlplane`) - Watches Gateway API resources and configures data plane instances
10-
- **Data Plane** (`multiway-dataplane`) - HTTP/HTTPS proxy powered by Pingora, with one deployment per Gateway resource
10+
- **Data Plane** (`multiway-dataplane`) - HTTP/HTTPS proxy powered by proxy-core (monoio-based), with one deployment per Gateway resource
1111

1212
## Prerequisites
1313

crates/controlplane/src/cli/gateway.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
//! Gateway data plane command
22
//!
33
//! This module provides the CLI command for running the Gateway data plane.
4-
//! The data plane is a Pingora-based HTTP proxy that reads its configuration
5-
//! from a file (typically a ConfigMap mounted in Kubernetes).
4+
//! The data plane is a proxy-core HTTP proxy that reads its configuration
5+
//! from a Kubernetes ConfigMap via the API.
66
77
use miette::Result;
88
use tracing::info;
@@ -34,18 +34,18 @@ impl Gateway {
3434
"Starting Gateway data plane"
3535
);
3636

37-
// TODO: This is a placeholder for the Pingora-based data plane
38-
// The actual implementation will be in the dataplane crate
37+
// TODO: This is a placeholder the actual data plane is in the dataplane crate
38+
// (multiway-dataplane binary) which uses proxy-core for HTTP proxying.
3939
println!(
4040
"Gateway data plane starting with config: {}",
4141
self.config_path
4242
);
4343
println!(
44-
"This is a placeholder - the Pingora data plane will be implemented in the dataplane crate"
44+
"This is a placeholder - the proxy-core data plane runs as a separate binary (multiway-dataplane)"
4545
);
4646

4747
// For now, just exit successfully
48-
// In production, this would start the Pingora server
48+
// In production, the data plane runs as multiway-dataplane
4949
Ok(())
5050
}
5151
}

crates/controlplane/src/cli/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ pub struct GatewayArgs {
7474
pub enum CliCommand {
7575
/// Print the CLI version and exit
7676
Version,
77-
/// Run the gateway data plane (Pingora-based HTTP proxy)
77+
/// Run the gateway data plane (proxy-core HTTP proxy)
7878
Gateway(GatewayArgs),
7979
/// Run the Gateway API controller (watches GatewayClass, Gateway, HTTPRoute)
8080
Controller(ControllerArgs),

crates/controlplane/src/controller/gateway.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
//! - Gateway status reflects the state of the infrastructure
99
//!
1010
//! For this implementation:
11-
//! - We create a Deployment running the Pingora-based data plane
11+
//! - We create a Deployment running the proxy-core data plane
1212
//! - We create a Service to expose the data plane
1313
//! - We create a ConfigMap with the gateway configuration
1414
//! - We update the Gateway status with addresses and listener status

deploy/gatewayclass.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ metadata:
66
app.kubernetes.io/name: multiway
77
spec:
88
controllerName: io.multiway/gateway-controller
9-
description: Gateway API implementation using Pingora data plane
9+
description: Gateway API implementation using proxy-core data plane

0 commit comments

Comments
 (0)