- Relocated all files and scripts from `examples` to `tests_e2e` for better organization. - Updated references and paths in configurations, scripts, and test files. - Adjusted `bump-version.sh` to handle the new `tests_e2e` structure. - Updated `.gitignore` to reflect path changes.
1.4 KiB
1.4 KiB
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
services:
webapp:
build: ../fixtures/header-echo
ports:
- "8080:8080"
Kubernetes
# 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
# 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
{
"headers": {
"Host": "localhost:8080",
"User-Agent": "curl/7.81.0",
"Accept": "*/*"
},
"client_ip": "127.0.0.1",
"x_forwarded_for": "NOT SET"
}
Used By
tests_e2e/docker/docker-compose-cloudflare.ymltests_e2e/test_docker_compose.py::TestCloudflaretests_e2e/kubernetes/cloudflare.ymltests_e2e/test_kubernetes.py::TestCloudflare