Skip to content

Pingora Gateway Controller

Kubernetes controller implementing Gateway API for Pingora proxy.

Route traffic through a high-performance Pingora-based reverse proxy using standard Gateway API resources (Gateway, HTTPRoute, GRPCRoute).

Architecture

graph TB
    subgraph Kubernetes Cluster
        GW[Gateway API Resources<br/>Gateway, HTTPRoute, GRPCRoute]
        CTL[pingora-gateway-controller<br/>Go]
        PX[pingora-proxy<br/>Rust/Pingora]
        SVC[Backend Services]
    end

    CLIENT[Client Traffic] -->|HTTP/gRPC| PX
    GW -->|watches| CTL
    CTL -->|gRPC sync| PX
    PX -->|proxies| SVC

Features

  • Standard Gateway API - GatewayClass, Gateway, HTTPRoute, GRPCRoute support
  • High Performance - Built on Pingora, Cloudflare's battle-tested proxy framework
  • Dynamic Configuration - Routes synced via gRPC without proxy restarts
  • Leader Election - High availability deployments with multiple replicas
  • Multi-arch Images - Supports amd64 and arm64 architectures
  • Secure by Default - Non-root containers, read-only filesystem, minimal capabilities

Quick Start

# 1. Install Gateway API CRDs
kubectl apply --filename https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.1/standard-install.yaml

# 2. Install the controller with Helm
helm install pingora-gateway-controller \
  oci://ghcr.io/lexfrei/pingora-gateway-controller/chart \
  --namespace pingora-system \
  --create-namespace

# 3. Create HTTPRoute to expose your service
kubectl apply --filename - <<EOF
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: my-app
spec:
  parentRefs:
    - name: pingora-gateway
      namespace: pingora-system
  hostnames:
    - app.example.com
  rules:
    - backendRefs:
        - name: my-service
          port: 80
EOF

See Getting Started for detailed setup instructions.

Documentation Sections

Section Description
Getting Started Prerequisites, installation, and quick start guide
Configuration Controller options, Helm values, PingoraConfig CRD
Gateway API Supported resources, examples, and limitations
Guides Cross-namespace routing, monitoring setup
Operations Troubleshooting, metrics, and manual installation
Development Architecture, contributing, and testing
Reference Helm chart, CRD reference, security

Roadmap

Target: Gateway API v1.4.1 Standard Channel Conformance

Milestones

Version Status Description
v0.1.0 Planned Core Conformance (RequestHeaderModifier, RequestRedirect)
v0.2.0 Planned Extended Features (ResponseHeaderModifier, URLRewrite, RequestMirror)
v0.3.0 Planned Gateway API v1.4 (supportedFeatures, BackendTLSPolicy)
v0.4.0 Planned Conformance Tests & Registration
v1.0.0 Planned Production-ready with full conformance

Gateway API Support

Resources

Resource Status
GatewayClass Supported
Gateway Supported
HTTPRoute Supported
GRPCRoute Supported
ReferenceGrant Supported
BackendTLSPolicy Planned

HTTPRoute Filters

Filter Conformance Status
RequestHeaderModifier Core Planned
RequestRedirect Core Planned
ResponseHeaderModifier Extended Planned
URLRewrite Extended Planned
RequestMirror Extended Planned

HTTPRoute Matching (Implemented)

Feature Conformance Status
Path (Exact, Prefix, Regex) Core Supported
Header matching Core Supported
Query parameter matching Extended Supported
Method matching Extended Supported
Backend weight Core Supported
Request timeout Extended Supported

See GitHub Milestones for detailed progress.

License

BSD 3-Clause License - see LICENSE for details.