- 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.
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
examples/docker/docker-compose-cloudflare.ymlexamples/docker/test_docker_compose.py::TestCloudflareexamples/kubernetes/cloudflare.ymlexamples/kubernetes/test_kubernetes.py::TestCloudflare