1
0
Fork 0
docker-easy-haproxy/examples/fixtures/header-echo
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
..
Dockerfile Remove Python app example and replace with header-echo server for testing 2026-02-12 16:29:44 -05:00
README.md Remove Python app example and replace with header-echo server for testing 2026-02-12 16:29:44 -05:00
server.py Remove Python app example and replace with header-echo server for testing 2026-02-12 16:29:44 -05:00

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.yml
  • examples/docker/test_docker_compose.py::TestCloudflare
  • examples/kubernetes/cloudflare.yml
  • examples/kubernetes/test_kubernetes.py::TestCloudflare