Conformance¶
Kube Agentic Networking conformance tests give implementations a shared way to verify that their APIs behave consistently. Implementers can run the suite while developing support, then generate a report when every test for a claimed profile passes.
This process follows the same profile-and-report model as Gateway API conformance, adapted for Kube Agentic Networking features.
Conformance Profiles¶
Conformance is defined through profiles, each covering a specific area of
the specification. An implementation is considered conformant for a profile when
it passes all core tests in that profile. Currently, the specification defines
the Gateway profile, which covers core agentic networking behaviors including
AccessPolicy enforcement and protocol matching.
Core vs Extended Features¶
Within each profile, features are classified as:
- Core features — Must pass for an implementation to claim conformance with that profile.
- Extended features — Optional capabilities. Implementations may choose to support them and include the results in their report.
Extended features in the Gateway profile currently include:
| Feature | Description |
|---|---|
SupportAccessPolicySPIFFESource |
SPIFFE-based identity matching in AccessPolicy |
SupportAccessPolicyExternalAuth |
External authorization (ExtAuth) integration |
Prepare an implementation¶
Before running the suite, make sure that:
- a Kubernetes cluster is reachable through the current kubeconfig context;
- the Kube Agentic Networking CRDs are installed;
- the implementation is running and exposes a ready
GatewayClass; and - the local checkout matches the Kube Agentic Networking version being tested.
The suite creates its test resources in the agentic-conformance-infra
namespace. It applies Gateways, Routes, policies, and test workloads, then
checks the observed behavior through the selected GatewayClass.
Run the tests¶
Set the implementation's GatewayClass name and run:
GATEWAY_CLASS=my-gateway-class make conformance
The Make target keeps the base resources after the run so that failures can be inspected. To run a single test during development, call the Go suite directly:
go test -v ./conformance -run TestConformance -args \
--gateway-class=my-gateway-class \
--run-test=XAccessPolicyAccepted \
--cleanup-base-resources=false
Selecting Features¶
Core features are enabled by default. Add extended features only when the implementation supports them, for example:
go test -v ./conformance -run TestConformance -args \
--gateway-class=my-gateway-class \
--supported-features=SupportAccessPolicySPIFFESource,SupportAccessPolicyExternalAuth
Generate a report¶
Once the selected profile passes, rerun the suite with complete implementation metadata and a report output path:
go test -v ./conformance -run TestConformance -args \
--gateway-class=my-gateway-class \
--organization=my-organization \
--project=my-implementation \
--url=https://example.com/my-implementation \
--version=v1.2.3 \
--contact=@maintainer \
--report-output=./v1.2.3-default-gateway-report.yaml
Use a reproducible release, tag, or commit for --version; do not use a branch
name. The generated YAML is the evidence for the tested version and must not be
edited before submission.
Submit the result¶
Once you have a passing report, refer to the Conformance Reports README for detailed rules on report content, folder structure, versioning, and how to submit your report via Pull Request.
Further Reading¶
- Conformance Reports — Report format, rules, and submission process
- Gateway API Conformance — The upstream model this process is modeled after
- The test implementation lives in
conformance/, with individual test definitions underconformance/tests/.