Kubernetes Integration Guide - FluxGate

Open-source API gateway for microservices

kubectl apply -f https://fluxgate.dev/manifests/v1.8.2/fluxgate-controller.yaml
Explore Architecture View CRD Schema
Architecture

Control Plane & Data Plane Topology

FluxGate operates as a lightweight, sidecarless routing engine deployed directly into your cluster. The control plane runs as a Deployment with three replicas, maintaining a hot-warm informer cache that syncs with the etcd API server every 500ms. Data plane pods scale independently via HPA, leveraging shared memory rings for zero-copy routing.

When deployed to production namespaces, the FluxGate operator automatically injects network policies and configures CNI plugins to enforce strict mTLS between gateway pods and upstream services. All configuration drift is detected through the built-in audit webhook, which triggers a rolling restart if checksums deviate from the declared state.

FluxGate control plane synchronizing with Kubernetes API server and data plane pods routing traffic to microservices
CRD Explanation

Custom Resource Definitions

FluxGate extends the Kubernetes API with three primary CRDs: FluxGateRoute, FluxGatePolicy, and FluxGateAuth. Each resource is validated against a JSON Schema hosted in the fluxgate-crd-validator webhook, ensuring strict type checking before admission.

FluxGateRoute objects define path-based matching, weighted canary deployments, and header transformations. FluxGatePolicy attaches cross-cutting concerns like rate limiting configured in requests per second per client IP, JWT validation, and request response body mutation. FluxGateAuth manages OIDC provider bindings and scopes. All CRDs are versioned under fluxgate.io/v1alpha3 and support server-side apply for declarative GitOps workflows.

Ingress Controller

Native Ingress & Gateway API Support

The FluxGate controller natively implements the networking.k8s.io/v1 Ingress spec and the gateway.networking.k8s.io/v1beta1 Gateway API. It watches for annotation changes and reconciles upstream endpoints without requiring pod restarts.

TLS termination handles SNI routing and automatic certificate provisioning via cert-manager integration. When paired with Istio or Linkerd, FluxGate exposes a unified control plane that respects service mesh traffic policies while offloading L7 routing decisions to the gateway node. Metrics are exported to Prometheus on port 9090, exposing fluxgate_request_duration_seconds and fluxgate_upstream_connection_errors with 99th percentile latency tracking.

Troubleshooting

Debugging & Observability

When routing behavior deviates from expected outcomes, FluxGate provides structured logging, distributed tracing via OpenTelemetry, and a built-in debug endpoint for live configuration inspection.

Endpoint Reconciliation Latency

If upstream service discovery exceeds 2 seconds, verify that the fluxgate-controller RBAC role includes list and watch permissions on endpoints and pods. Increase the informer resync period to 15s if cluster size exceeds 500 nodes.

JWT Validation Failures

Check the FluxGateAuth secret for rotated JWKS URLs. Ensure the aud claim matches the registered client ID. Enable verbose token parsing by setting FLUXGATE_LOG_LEVEL=debug in the deployment environment.

TLS Handshake Timeouts

Verify that the ingress class annotation fluxgate.io/tls-acme=true is present. If using external load balancers, confirm that port 443 is not prematurely terminated before reaching the gateway pods.

View Full Debug Guide Report an Issue