Skip to content

Commit

Permalink
Add Backend Protocol Section to implementators guide kubernetes-sigs#…
Browse files Browse the repository at this point in the history
  • Loading branch information
joerober committed Jun 20, 2024
1 parent 02581a1 commit a86b038
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions site-src/guides/implementers.md
Original file line number Diff line number Diff line change
Expand Up @@ -355,3 +355,35 @@ or both.
Implementations that support cross-namespace references MUST watch ReferenceGrant
and reconcile any ReferenceGrant that points to an object that's referred to by
an in-scope Gateway API object.

## Backend Protocol

Not all implementations of Gateway API support automatic protocol selection. In some cases protocols are disabled without an explicit opt-in.

When a Route's backend references a Kubernetes Service, application developers can specify the protocol using ServicePort appProtocol field.

Reference [Backend Protocol Selection](https://gateway-api.sigs.k8s.io/guides/backend-protocol/) within the user guide.

### Supporting Protocols

If a Route is not able to send traffic to the backend using the specified protocol then the backend is considered invalid. Implementations MUST set `ResolvedRefs` condition to `False` with the Reason `UnsupportedProtocol`.

Implementations MAY support the following combinations below:

ServicePort Protocol | ServicePort AppProtocol | Route Type | Supported
-|-|-|-
`TCP` | `kubernetes.io/h2c` | `GRPCRoute` | Yes [1]
`TCP` | `kubernetes.io/h2c` | `HTTPRoute` | Yes
`TCP` | `kubernetes.io/ws` | `HTTPRoute` | Yes
`TCP` | `kubernetes.io/wss` | `TLSRoute` | Yes

1. GRPC works over h2c - so a GRPCRoute should be able to connect to an h2c backend

Implementations MAY support the following combinations below:

ServicePort Protocol | ServicePort AppProtocol | Route Type | Supported
-|-|-|-
ServicePort Protocol | ServicePort AppProtocol | Route Type | Supported
`TCP` | `kubernetes.io/wss` | `HTTPRoute` | Conditional [1]

1. Only if there is a corresponding `BackendTLSPolicy` - see [GEP-1897](/geps/gep-1897)

0 comments on commit a86b038

Please sign in to comment.