Skip to content

Commit 010f1ed

Browse files
authored
Specify support levels in the Gateway API Compatibility doc (#860)
Problem: The Gateway Compatibility doc does not specify support levels. Solution: Change the format of the compatibility table to show the support level and API version. Also, make language and capitalization consistent.
1 parent 9a55f8f commit 010f1ed

File tree

1 file changed

+62
-50
lines changed

1 file changed

+62
-50
lines changed

docs/gateway-api-compatibility.md

Lines changed: 62 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,32 @@ This document describes which Gateway API resources NGINX Kubernetes Gateway sup
44

55
## Summary
66

7-
| Resource | Support Status |
8-
|-------------------------------------|---------------------|
9-
| [GatewayClass](#gatewayclass) | Partially supported |
10-
| [Gateway](#gateway) | Partially supported |
11-
| [HTTPRoute](#httproute) | Partially supported |
12-
| [TLSRoute](#tlsroute) | Not supported |
13-
| [TCPRoute](#tcproute) | Not supported |
14-
| [UDPRoute](#udproute) | Not supported |
15-
| [ReferenceGrant](#referencegrant) | Supported |
16-
| [Custom policies](#custom-policies) | Not supported |
7+
| Resource | Core Support Level | Extended Support Level | Implementation-Specific Support Level | API Version |
8+
|-------------------------------------|--------------------|------------------------|---------------------------------------|-------------|
9+
| [GatewayClass](#gatewayclass) | Supported | Not supported | Not Supported | v1beta1 |
10+
| [Gateway](#gateway) | Supported | Not supported | Not Supported | v1beta1 |
11+
| [HTTPRoute](#httproute) | Supported | Partially supported | Not Supported | v1beta1 |
12+
| [ReferenceGrant](#referencegrant) | Supported | N/A | Not Supported | v1beta1 |
13+
| [Custom policies](#custom-policies) | Not supported | N/A | Not Supported | N/A |
14+
| [TLSRoute](#tlsroute) | Not supported | Not supported | Not Supported | N/A |
15+
| [TCPRoute](#tcproute) | Not supported | Not supported | Not Supported | N/A |
16+
| [UDPRoute](#udproute) | Not supported | Not supported | Not Supported | N/A |
1717

1818
## Terminology
1919

20-
We use the following words to describe support status:
20+
Gateway API features has three [support levels](https://gateway-api.sigs.k8s.io/concepts/conformance/#2-support-levels):
21+
Core, Extended and Implementation-specific. We use the following terms to describe the support status for each level and
22+
resource field:
2123

22-
- *Supported*. The resource or field is fully supported and conformant to the Gateway API specification.
24+
- *Supported*. The resource or field is fully supported.
2325
- *Partially supported*. The resource or field is supported partially or with limitations. It will become fully
2426
supported in future releases.
2527
- *Not supported*. The resource or field is not yet supported. It will become partially or fully supported in future
2628
releases.
2729

28-
Note: it might be possible that NGINX Kubernetes Gateway will never support some resources and/or fields of the Gateway
29-
API. We will document these decisions on a case by case basis.
30+
> Note: it might be possible that NGINX Kubernetes Gateway will never support some resources and/or fields of the Gateway API. We will document these decisions on a case by case basis.
31+
32+
> NGINX Kubernetes Gateway doesn't support any features from the experimental release channel.
3033
3134
## Resources
3235

@@ -37,10 +40,13 @@ the [Gateway API documentation](https://gateway-api.sigs.k8s.io/references/spec/
3740

3841
### GatewayClass
3942

40-
> Status: Partially supported.
43+
> Support Levels:
44+
> - Core: Supported.
45+
> - Extended: Not supported.
46+
> - Implementation-specific: Not supported.
4147
42-
NGINX Kubernetes Gateway supports only a single GatewayClass resource configured via `--gatewayclass` flag
43-
of the [static-mode](./cli-help.md#static-mode) command.
48+
NGINX Kubernetes Gateway supports only a single GatewayClass resource configured via `--gatewayclass` flag of
49+
the [static-mode](./cli-help.md#static-mode) command.
4450

4551
Fields:
4652

@@ -57,11 +63,13 @@ Fields:
5763

5864
### Gateway
5965

60-
> Status: Partially supported.
66+
> Support Levels:
67+
> - Core: Supported.
68+
> - Extended: Not supported.
69+
> - Implementation-specific: Not supported.
6170
6271
NGINX Kubernetes Gateway supports only a single Gateway resource. The Gateway resource must reference NGINX Kubernetes
63-
Gateway's corresponding GatewayClass.
64-
See [static-mode](./cli-help.md#static-mode) command for more info.
72+
Gateway's corresponding GatewayClass. See [static-mode](./cli-help.md#static-mode) command for more info.
6573

6674
Fields:
6775

@@ -75,38 +83,37 @@ Fields:
7583
* `tls`
7684
* `mode` - partially supported. Allowed value: `Terminate`.
7785
* `certificateRefs` - The TLS certificate and key must be stored in a Secret resource of
78-
type `kubernetes.io/tls`. Only a single reference is supported. You must deploy the Secret before the
79-
Gateway resource.
86+
type `kubernetes.io/tls`. Only a single reference is supported.
8087
* `options` - not supported.
8188
* `allowedRoutes` - supported.
8289
* `addresses` - not supported.
8390
* `status`
8491
* `addresses` - Pod IPAddress supported.
85-
* `conditions` - Supported (Condition/Status/Reason):
92+
* `conditions` - supported (Condition/Status/Reason):
8693
* `Accepted/True/Accepted`
8794
* `Accepted/True/ListenersNotValid`
8895
* `Accepted/False/ListenersNotValid`
8996
* `Accepted/False/Invalid`
90-
* `Accepted/False/UnsupportedValue`: Custom reason for when a value of a field in a Gateway is invalid or not
97+
* `Accepted/False/UnsupportedValue`- custom reason for when a value of a field in a Gateway is invalid or not
9198
supported.
92-
* `Accepted/False/GatewayConflict`: Custom reason for when the Gateway is ignored due to a conflicting Gateway.
99+
* `Accepted/False/GatewayConflict`- custom reason for when the Gateway is ignored due to a conflicting Gateway.
93100
NKG only supports a single Gateway.
94101
* `Programmed/True/Programmed`
95102
* `Programmed/False/Invalid`
96-
* `Programmed/False/GatewayConflict`: Custom reason for when the Gateway is ignored due to a conflicting
103+
* `Programmed/False/GatewayConflict`- custom reason for when the Gateway is ignored due to a conflicting
97104
Gateway. NKG only supports a single Gateway.
98105
* `listeners`
99106
* `name` - supported.
100107
* `supportedKinds` - supported.
101108
* `attachedRoutes` - supported.
102-
* `conditions` - Supported (Condition/Status/Reason):
109+
* `conditions` - supported (Condition/Status/Reason):
103110
* `Accepted/True/Accepted`
104111
* `Accepted/False/UnsupportedProtocol`
105112
* `Accepted/False/InvalidCertificateRef`
106113
* `Accepted/False/ProtocolConflict`
107-
* `Accepted/False/UnsupportedValue`: Custom reason for when a value of a field in a Listener is invalid or
114+
* `Accepted/False/UnsupportedValue`- custom reason for when a value of a field in a Listener is invalid or
108115
not supported.
109-
* `Accepted/False/GatewayConflict`: Custom reason for when the Gateway is ignored due to a conflicting
116+
* `Accepted/False/GatewayConflict` - custom reason for when the Gateway is ignored due to a conflicting
110117
Gateway. NKG only supports a single Gateway.
111118
* `Programmed/True/Programmed`
112119
* `Programmed/False/Invalid`
@@ -118,7 +125,10 @@ Fields:
118125

119126
### HTTPRoute
120127

121-
> Status: Partially supported.
128+
> Support Levels:
129+
> - Core: Supported.
130+
> - Extended: Partially supported.
131+
> - Implementation-specific: Not supported.
122132
123133
Fields:
124134

@@ -149,34 +159,24 @@ Fields:
149159
* `Accepted/False/NoMatchingListenerHostname`
150160
* `Accepted/False/NoMatchingParent`
151161
* `Accepted/False/NotAllowedByListeners`
152-
* `Accepted/False/UnsupportedValue`: Custom reason for when the HTTPRoute includes an invalid or unsupported
153-
value.
154-
* `Accepted/False/InvalidListener`: Custom reason for when the HTTPRoute references an invalid listener.
155-
* `Accepted/False/GatewayNotProgrammed`: Custom reason for when the Gateway is not Programmed. HTTPRoute may
156-
be valid and configured, but will maintain this status as long as the Gateway is not Programmed.
162+
* `Accepted/False/UnsupportedValue` - custom reason for when the HTTPRoute includes an invalid or
163+
unsupported value.
164+
* `Accepted/False/InvalidListener` - custom reason for when the HTTPRoute references an invalid listener.
165+
* `Accepted/False/GatewayNotProgrammed` - custom reason for when the Gateway is not Programmed. HTTPRoute
166+
may be valid and configured, but will maintain this status as long as the Gateway is not Programmed.
157167
* `ResolvedRefs/True/ResolvedRefs`
158168
* `ResolvedRefs/False/InvalidKind`
159169
* `ResolvedRefs/False/RefNotPermitted`
160170
* `ResolvedRefs/False/BackendNotFound`
161-
* `ResolvedRefs/False/UnsupportedValue`: Custom reason for when one of the HTTPRoute rules has a backendRef
171+
* `ResolvedRefs/False/UnsupportedValue` - custom reason for when one of the HTTPRoute rules has a backendRef
162172
with an unsupported value.
163173

164-
### TLSRoute
165-
166-
> Status: Not supported.
167-
168-
### TCPRoute
169-
170-
> Status: Not supported.
171-
172-
### UDPRoute
173-
174-
> Status: Not supported.
175-
176174
### ReferenceGrant
177175

178-
> Status: Supported.
179-
> Support Level: Core
176+
> Support Levels:
177+
> - Core: Supported.
178+
> - Extended: N/A.
179+
> - Implementation-specific: N/A
180180
181181
Fields:
182182

@@ -190,6 +190,18 @@ Fields:
190190
* `kind` - supports `Gateway` and `HTTPRoute`.
191191
* `namespace`- supported.
192192

193+
### TLSRoute
194+
195+
> Status: Not supported.
196+
197+
### TCPRoute
198+
199+
> Status: Not supported.
200+
201+
### UDPRoute
202+
203+
> Status: Not supported.
204+
193205
### Custom Policies
194206

195207
> Status: Not supported.

0 commit comments

Comments
 (0)