1
0
Fork 0
docker-easy-haproxy/examples/fixtures/header-echo/README.md
Joao Gilberto Magalhaes b34d7822e4 Remove Python app example and replace with header-echo server for testing
- Deleted the `/examples/docker/python-app` directory and associated files.
- Integrated a custom `header-echo` server for Kubernetes and Docker Compose tests.
- Updated Kubernetes and Docker Compose configurations to use the new `header-echo-server:test` image.
- Enhanced Kubernetes integration tests to validate JSON responses and Cloudflare IP translation behavior.
2026-02-12 16:29:44 -05:00

66 lines
1.4 KiB
Markdown

# Header Echo Server - Test Fixture
A lightweight Python HTTP server that echoes all request headers as JSON. Used for testing HAProxy plugins that manipulate headers and client IPs.
## Purpose
This test fixture is used by both Docker Compose and Kubernetes test suites to verify:
- Header manipulation (e.g., X-Forwarded-For, CF-Connecting-IP)
- IP restoration plugins (Cloudflare, custom CDN integrations)
- Request routing and backend visibility
## Usage
### Docker Compose
```yaml
services:
webapp:
build: ../fixtures/header-echo
ports:
- "8080:8080"
```
### Kubernetes
```bash
# Build and load into kind cluster
docker build -t header-echo-server:test .
kind load docker-image header-echo-server:test --name your-cluster
# Use in deployment
spec:
containers:
- name: webapp
image: header-echo-server:test
imagePullPolicy: Never
```
### Manual Testing
```bash
# Start the server
python3 server.py
# Test it
curl http://localhost:8080
# Returns JSON with all headers, client IP, and X-Forwarded-For value
```
## Response Format
```json
{
"headers": {
"Host": "localhost:8080",
"User-Agent": "curl/7.81.0",
"Accept": "*/*"
},
"client_ip": "127.0.0.1",
"x_forwarded_for": "NOT SET"
}
```
## Used By
- `examples/docker/docker-compose-cloudflare.yml`
- `examples/docker/test_docker_compose.py::TestCloudflare`
- `examples/kubernetes/cloudflare.yml`
- `examples/kubernetes/test_kubernetes.py::TestCloudflare`