Open Source

Zero-Code Header Propagation 
for Kubernetes

Automatically propagate HTTP headers like x-request-id, x-tenant-id, 
through your microservice chain — no code changes required.

Get Started GitHub

The Problem

Modern microservices rely on HTTP headers for request tracing, multi-tenancy, and debugging. Headers like x-request-id, x-tenant-id, and x-correlation-id must flow through every service.

But service meshes don't help. Istio, Linkerd, and Consul don't automatically propagate these headers. Your application code must manually extract incoming headers and attach them to every outgoing request.


Quick Start

1. Install ContextForge:

helm repo add contextforge https://ctxforge.io
helm install contextforge contextforge/contextforge -n ctxforge-system --create-namespace

2. Annotate your pods:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-service
spec:
  template:
    metadata:
      labels:
        ctxforge.io/enabled: "true"
      annotations:
        ctxforge.io/enabled: "true"
        ctxforge.io/headers: "x-request-id,x-tenant-id,x-correlation-id"
    spec:
      containers:
        - name: app
          image: my-app:latest

3. Done! Headers flow automatically through your service chain.


How It Works

  %%{init: {'theme': 'dark', 'themeVariables': { 'fontSize': '16px'}}}%%
flowchart TB
    subgraph pod["☸️ Your Kubernetes Pod"]
        direction TB

        req["📥 Incoming Request<br/>x-request-id: abc123<br/>x-tenant-id: acme"]

        subgraph proxy["🔄 ContextForge Proxy"]
            p1["1. Extract headers"]
            p2["2. Store in context"]
            p1 --> p2
        end

        subgraph app["🚀 Your Application"]
            a1["Makes HTTP call to another service"]
        end

        out["📤 Outgoing Request<br/>x-request-id: abc123 ✓<br/>x-tenant-id: acme ✓<br/>Headers auto-injected!"]

        req --> proxy
        proxy --> app
        app --> out
    end

    style pod fill:#1e293b,stroke:#6366f1,stroke-width:3px,color:#fff
    style proxy fill:#312e81,stroke:#818cf8,stroke-width:2px,color:#fff
    style app fill:#164e63,stroke:#22d3ee,stroke-width:2px,color:#fff
    style req fill:#1e3a5f,stroke:#60a5fa,stroke-width:2px,color:#fff
    style out fill:#14532d,stroke:#4ade80,stroke-width:2px,color:#fff
    style p1 fill:#4c1d95,stroke:#a78bfa,color:#fff
    style p2 fill:#4c1d95,stroke:#a78bfa,color:#fff
    style a1 fill:#0e7490,stroke:#67e8f9,color:#fff

Get Started