Skip to content

Commit b5918e8

Browse files
committed
Update READMEs
1 parent 9244ab7 commit b5918e8

File tree

4 files changed

+27
-43
lines changed

4 files changed

+27
-43
lines changed

README.md

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -166,16 +166,6 @@ Troubleshooting
166166
- BBR processes JSON directly in the module - ensure request bodies contain valid JSON with a "model" field.
167167
- Use `error_log` and debug logging to verify module activation. BBR logs body reading and size limit enforcement; EPP logs gRPC errors with detailed TLS diagnostics. Set `error_log` to `debug` to observe processing details.
168168

169-
Roadmap
170-
-------
171-
- Validate EPP and BBR implementations against Gateway API Inference Extension conformance tests.
172-
- Align exact header names and semantics to the upstream specification and reference implementations.
173-
- Validate large body handling and back-pressure for BBR; refine chunked reads/writes and resource usage for very large payloads.
174-
- Connection pooling and caching for improved performance at scale.
175-
- Enhanced TLS configuration options (client certificates, cipher suites, etc.).
176-
-**Completed**: Enhanced TLS error logging with detailed certificate validation messages
177-
-**Completed**: Streamlined test infrastructure with consistent vLLM backend usage
178-
179169
License
180170
-------
181171
Apache-2.0 (to align with upstream projects).

docker/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ This directory contains Docker configurations for the ngx-inference module and r
55
## Directory Structure
66

77
- `nginx/` - NGINX configurations and Dockerfile for the main inference gateway
8-
- `mock-extproc/` - Mock external processor service implementing EPP (Endpoint Picker Processor) and BBR functionality
8+
- `mock-extproc/` - Mock external processor service implementing EPP (Endpoint Picker Processor)
99
- `echo-server/` - Simple Node.js echo server for testing
1010

1111
## Quick Start
@@ -59,7 +59,9 @@ docker run -p 8081:80 \
5959

6060
## Mock External Processor
6161

62-
The `mock-extproc/` directory contains the mock external processor service that implements both EPP (Endpoint Picker Processor) and BBR (Body Buffer & Rewrite) functionality via gRPC. It uses the `extproc_mock` binary from this repository.
62+
The `mock-extproc/` directory contains the mock external processor service that implements EPP (Endpoint Picker Processor) functionality via gRPC. It uses the `extproc_mock` binary from this repository.
63+
64+
**Note**: BBR (Body-Based Routing) is implemented directly in the ngx-inference module, not in the external processor. The mock service only handles EPP endpoint selection.
6365

6466
### Usage
6567

tests/README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ Main test runner that validates BBR (Body-Based Routing) and EPP (External Proce
1313
- **BBR OFF + EPP ON**: Tests upstream selection with EPP routing to vLLM
1414
- **BBR ON + EPP ON**: Tests both modules active with vLLM responses
1515
- **BBR OFF + EPP OFF**: Tests direct vLLM routing (no processing)
16-
- **EPP Untrusted TLS**: Tests TLS certificate validation with enhanced error logging
16+
- **EPP Untrusted TLS (Allow)**: Tests TLS certificate validation with fail-open mode (Kind only)
17+
- **EPP Untrusted TLS (Deny)**: Tests TLS certificate validation with fail-closed mode (Kind only)
1718

1819
**Execution Modes:**
1920
- **Local Mode**: Uses locally compiled nginx module with local backend services
@@ -297,4 +298,4 @@ make test-kind
297298
- **Networking**: All tests work against nginx on `localhost:8081` (local and Docker) or cluster IP (Kind)
298299
- **Mock Services**: Mock gRPC EPP service provides realistic upstream selection in local/Docker environments
299300
- **Echo Server**: Provides request inspection and header validation
300-
- **Production EPP**: Kind environment uses a reference External Processing implementation with TLS support
301+
- **Production EPP**: Kind environment uses a reference External Processing implementation with TLS support

tests/kind-ngf/README.md

Lines changed: 20 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -15,32 +15,19 @@ This provides realistic validation of the module's compatibility with the Gatewa
1515

1616
## Architecture
1717

18-
```
19-
┌─────────────────────────────────────────────────────────┐
20-
│ kind Cluster (ngx-inference-test) │
21-
│ │
22-
│ ┌──────────────┐ ┌─────────────────┐ │
23-
│ │ Client │───▶│ NGINX (port │ │
24-
│ │ (curl) │ │ 80 → 8080) │ │
25-
│ └──────────────┘ │ with module │ │
26-
│ └────────┬────────┘ │
27-
│ │ │
28-
│ │ gRPC (EPP) │
29-
│ ▼ │
30-
│ ┌─────────────────┐ │
31-
│ │ Reference EPP │ │
32-
│ │ (port 9001) │ │
33-
│ └────────┬────────┘ │
34-
│ │ │
35-
│ │ reads InferencePool │
36-
│ │ selects endpoint │
37-
│ ▼ │
38-
│ ┌─────────────────┐ │
39-
│ │ vLLM Simulator │ │
40-
│ │ (3 replicas) │ │
41-
│ │ (port 8000) │ │
42-
│ └─────────────────┘ │
43-
└─────────────────────────────────────────────────────────┘
18+
```mermaid
19+
graph TB
20+
subgraph cluster["kind Cluster (ngx-inference-test)"]
21+
Client["Client<br/>(curl)"]
22+
NGINX["NGINX<br/>(port 80 → 8080)<br/>with module"]
23+
RefEPP["Reference EPP<br/>(port 9001)"]
24+
vLLM["vLLM Simulator<br/>(3 replicas)<br/>(port 8000)"]
25+
26+
Client -->|HTTP Request| NGINX
27+
NGINX -->|"gRPC (EPP)"| RefEPP
28+
RefEPP -->|"reads InferencePool<br/>selects endpoint"| vLLM
29+
NGINX -.->|"proxies to selected<br/>endpoint"| vLLM
30+
end
4431
```
4532

4633
## Quick Start
@@ -83,11 +70,13 @@ This automated script will:
8370
make test-kind
8471
```
8572

86-
The test suite runs **all four configuration scenarios** automatically:
73+
The test suite runs **all six configuration scenarios** automatically:
8774
- **BBR ON + EPP OFF**: Model extraction only
8875
- **BBR OFF + EPP ON**: Endpoint selection only
8976
- **BBR ON + EPP ON**: Both features enabled
9077
- **BBR OFF + EPP OFF**: Direct proxy (baseline)
78+
- **EPP Untrusted TLS (Allow)**: TLS certificate validation with fail-open mode
79+
- **EPP Untrusted TLS (Deny)**: TLS certificate validation with fail-closed mode
9180

9281
Each scenario is tested by:
9382
1. Generating the appropriate NGINX configuration using `generate-config.sh`
@@ -197,14 +186,16 @@ kubectl create configmap nginx-inference-bbr_on_epp_on \
197186
make test-kind
198187
```
199188

200-
This runs the complete test matrix across all four configuration scenarios:
189+
This runs the complete test matrix across all six configuration scenarios:
201190

202191
| Scenario | BBR | EPP | Tests |
203192
|----------|-----|-----|-------|
204193
| bbr_on_epp_off ||| Model extraction, direct routing |
205194
| bbr_off_epp_on ||| Endpoint selection via reference EPP |
206195
| bbr_on_epp_on ||| Both BBR + EPP active |
207196
| bbr_off_epp_off ||| Baseline (no processing) |
197+
| bbr_off_epp_on_untrusted_tls_allow ||| EPP with untrusted TLS (fail-open) |
198+
| bbr_off_epp_on_untrusted_tls_deny ||| EPP with untrusted TLS (fail-closed) |
208199

209200
Each scenario validates:
210201
1. NGINX health check
@@ -445,7 +436,7 @@ docker rmi ngx-inference:latest
445436
| EPP | Mock implementation | Real reference EPP |
446437
| Backend | Echo server | vLLM Simulator |
447438
| Environment | Docker Compose | Kubernetes cluster |
448-
| Test Matrix |All 4 scenarios |All 4 scenarios |
439+
| Test Matrix |4 basic scenarios |6 scenarios (incl. TLS) |
449440
| Config Method | File replacement | ConfigMap + rollout |
450441
| Setup Time | ~1 minute | ~2 minutes |
451442
| Resource Usage | Low | Low |

0 commit comments

Comments
 (0)