Conformance & testing

How krouter is verified: official conformance, e2e, performance gates, and the published report.

krouter treats the official Gateway API conformance suite as its contract: every non-mesh test in the GATEWAY-HTTP, GATEWAY-GRPC, GATEWAY-TLS, GATEWAY-TCP and GATEWAY-UDP profiles passes, Core and Extended. The supported feature set is not hand-declared either: the suite infers it from what krouter publishes in GatewayClass.status.supportedFeatures, so an over-claimed feature would fail its own tests.

The report

Every build runs five suites and publishes a single self-contained report:

Open the latest test report Open the gotestwaf WAF evaluation

SuiteWhat it proves
UnitPure routing/compilation logic
End-to-endA real installation driven only through the Kubernetes API: atomic reloads, readiness handling, cross-namespace policies, all five protocols
ConformanceThe official Gateway API suite, executed in-cluster
Performance10,000 concurrent connections held across a configuration reload with zero disconnects
Security (WAF)The Coraza + OWASP CRS extension scored by gotestwaf over HTTP and gRPC (REST, SOAP, and the OWASP attack classes)

Running it yourself

The repository automates everything with Task against a local kind cluster:

task k8s:up          # create the cluster, install the Gateway API CRDs
task k8s:deploy      # build, load and deploy krouter
task tests:report    # run all suites and build the HTML/JUnit report

The report lands in tests/results/report/report.html, and the raw conformance report (the upstream YAML format used for conformance submissions) in tests/results/conformance/report.yaml. The full gotestwaf evaluation is written to tests/results/waf/waf-evaluation.html and bundled next to the report as gotestwaf.html.

What is intentionally out of scope

krouter is a gateway, not a service mesh: the MESH profile tests and the HTTPRoute retry tests are the only skipped conformance tests. Retries and active health checks are out of scope today; the comparison table lists which alternatives cover those.