You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Restructure, reformat and rewrite API Compatibility Documentation (#1337)
Restructure, reformat and rewrite API Compatibility Documentation
This commit makes a few changes to increase readability:
- The table format from the summary is re-used for individual resources
- The order of resources is changed to match the API specification
- Capilisation and other style concerns have been standardised
- Text has been rewritten for conciseness where possible
I considered linking to the API specification sections to match the
resources, but I noticed that they were versioned, which could possibly
create issues for us in managing drift.
|[GatewayClass](#gatewayclass)| Supported | Not supported | Not Supported| v1 |
15
-
|[Gateway](#gateway)| Supported | Not supported | Not Supported| v1 |
16
-
|[HTTPRoute](#httproute)| Supported | Partially supported | Not Supported| v1 |
17
-
|[ReferenceGrant](#referencegrant)| Supported | N/A | Not Supported| v1beta1 |
18
-
|[Custom policies](#custom-policies)| Not supported| N/A| Not Supported| N/A |
19
-
|[TLSRoute](#tlsroute)| Not supported | Not supported | Not Supported| N/A |
20
-
|[TCPRoute](#tcproute)| Not supported | Not supported | Not Supported| N/A |
21
-
|[UDPRoute](#udproute)| Not supported| Not supported| Not Supported| N/A |
14
+
|[Gateway](#gateway)| Supported | Not supported | Not supported| v1 |
15
+
|[GatewayClass](#gatewayclass)| Supported | Not supported | Not supported| v1 |
16
+
|[HTTPRoute](#httproute)| Supported | Partially supported | Not supported| v1 |
17
+
|[ReferenceGrant](#referencegrant)| Supported | N/A | Not supported| v1beta1 |
18
+
|[TLSRoute](#tlsroute)| Not supported| Not supported| Not supported| N/A |
19
+
|[TCPRoute](#tcproute)| Not supported | Not supported | Not supported| N/A |
20
+
|[UDPRoute](#udproute)| Not supported | Not supported | Not supported| N/A |
21
+
|[Custom policies](#custom-policies)| Not supported| N/A | Not supported| N/A |
22
22
{{< /bootstrap-table >}}
23
23
24
+
---
25
+
24
26
## Terminology
25
27
26
-
Gateway API features has three [support levels](https://gateway-api.sigs.k8s.io/concepts/conformance/#2-support-levels):
27
-
Core, Extended and Implementation-specific. We use the following terms to describe the support status for each level and
28
-
resource field:
28
+
Gateway API features has three [support levels](https://gateway-api.sigs.k8s.io/concepts/conformance/#2-support-levels): Core, Extended and Implementation-specific. We use the following terms to describe the support status for each level and resource field:
29
29
30
-
-*Supported*. The resource or field is fully supported.
31
-
-*Partially supported*. The resource or field is supported partially or with limitations. It will become fully
30
+
-_Supported_. The resource or field is fully supported.
31
+
-_Partially supported_. The resource or field is supported partially, with limitations. It will become fully
32
32
supported in future releases.
33
-
-*Not supported*. The resource or field is not yet supported. It will become partially or fully supported in future
33
+
-_Not supported_. The resource or field is not yet supported. It will become partially or fully supported in future
34
34
releases.
35
35
36
-
> Note: it might be possible that NGINX Gateway Fabric will never support some resources
37
-
> and/or fields of the Gateway API. We will document these decisions on a case by case basis.
38
-
>
39
-
> NGINX Gateway Fabric doesn't support any features from the experimental release channel.
40
-
41
-
## Resources
42
-
43
-
Below we list the resources and the support status of their corresponding fields.
36
+
{{< note >}} It's possible that NGINX Gateway Fabric will never support some resources or fields of the Gateway API. They will be documented on a case by case basis. NGINX Gateway Fabric doesn't support any features from the experimental release channel. {{< /note >}}
44
37
45
-
For a description of each field, visit
46
-
the [Gateway API documentation](https://gateway-api.sigs.k8s.io/references/spec/).
47
-
48
-
### GatewayClass
38
+
---
49
39
50
-
> Support Levels:
51
-
>
52
-
> - Core: Supported.
53
-
> - Extended: Not supported.
54
-
> - Implementation-specific: Not supported.
40
+
## Resources
55
41
56
-
NGINX Gateway Fabric supports only a single GatewayClass resource configured via `--gatewayclass` flag of
57
-
the [static-mode](./cli-help.md#static-mode) command.
42
+
Each resource below includes the support status of their corresponding fields.
58
43
59
-
Fields:
44
+
For a description of each field, visit the [Gateway API documentation](https://gateway-api.sigs.k8s.io/references/spec/).
-`certificateRefs` - The TLS certificate and key must be stored in a Secret resource of type `kubernetes.io/tls`. Only a single reference is supported.
86
+
-`options`: Not supported.
87
+
-`allowedRoutes`: Supported.
88
+
-`addresses`: Not supported.
102
89
-`status`
103
-
-`addresses` - partially supported. LoadBalancer and Pod IP.
| GatewayClass | Supported | Not supported | Not supported | v1 |
129
+
{{< /bootstrap-table >}}
130
+
131
+
NGINX Gateway Fabric supports a single GatewayClass resource configured with the `--gatewayclass` flag of the [static-mode]({{< relref "/reference/cli-help.md#static-mode">}}) command.
-`Accepted/False/GatewayClassConflict`: Custom status for when GatewayClass references this controller, but a different GatewayClass name is provided to the controller via the command-line argument.
-`parentRefs` - partially supported. Port not supported.
150
-
-`hostnames` - supported.
158
+
-`parentRefs`: Partially supported. Port not supported.
159
+
-`hostnames`: Supported.
151
160
-`rules`
152
161
-`matches`
153
-
-`path` - partially supported. Only `PathPrefix` and `Exact` types.
154
-
-`headers` - partially supported. Only `Exact` type.
155
-
-`queryParams` - partially supported. Only `Exact` type.
156
-
-`method` - supported.
162
+
-`path`: Partially supported. Only `PathPrefix` and `Exact` types.
163
+
-`headers`: Partially supported. Only `Exact` type.
164
+
-`queryParams`: Partially supported. Only `Exact` type.
165
+
-`method`: Supported.
157
166
-`filters`
158
-
-`type` - supported.
159
-
-`requestRedirect` - supported except for the experimental `path` field. If multiple filters
160
-
with `requestRedirect` are configured, NGINX Gateway Fabric will choose the first one and ignore the
161
-
rest.
162
-
-`requestHeaderModifier` - supported. If multiple filters with `requestHeaderModifier` are configured,
163
-
NGINX Gateway Fabric will choose the first one and ignore the rest.
164
-
-`responseHeaderModifier`, `requestMirror`, `urlRewrite`, `extensionRef` - not supported.
165
-
-`backendRefs` - partially supported. Backend ref `filters` are not supported.
167
+
-`type`: Supported.
168
+
-`requestRedirect`: Supported except for the experimental `path` field. If multiple filters are configured, NGINX Gateway Fabric will choose the first and ignore the rest.
169
+
-`requestHeaderModifier`: Supported. If multiple filters are configured, NGINX Gateway Fabric will choose the first and ignore the rest.
170
+
-`responseHeaderModifier`, `requestMirror`, `urlRewrite`, `extensionRef`: Not supported.
171
+
-`backendRefs`: Partially supported. Backend ref `filters` are not supported.
-`Accepted/False/UnsupportedValue` - custom reason for when the HTTPRoute includes an invalid or
176
-
unsupported value.
177
-
-`Accepted/False/InvalidListener` - custom reason for when the HTTPRoute references an invalid listener.
178
-
-`Accepted/False/GatewayNotProgrammed` - custom reason for when the Gateway is not Programmed. HTTPRoute
179
-
may be valid and configured, but will maintain this status as long as the Gateway is not Programmed.
181
+
-`Accepted/False/UnsupportedValue`: Custom reason for when the HTTPRoute includes an invalid or unsupported value.
182
+
-`Accepted/False/InvalidListener`: Custom reason for when the HTTPRoute references an invalid listener.
183
+
-`Accepted/False/GatewayNotProgrammed`: Custom reason for when the Gateway is not Programmed. HTTPRoute can be valid and configured, but will maintain this status as long as the Gateway is not Programmed.
180
184
-`ResolvedRefs/True/ResolvedRefs`
181
185
-`ResolvedRefs/False/InvalidKind`
182
186
-`ResolvedRefs/False/RefNotPermitted`
183
187
-`ResolvedRefs/False/BackendNotFound`
184
-
-`ResolvedRefs/False/UnsupportedValue` - custom reason for when one of the HTTPRoute rules has a backendRef
185
-
with an unsupported value.
188
+
-`ResolvedRefs/False/UnsupportedValue`: Custom reason for when one of the HTTPRoute rules has a backendRef with an unsupported value.
| Custom policies | Not supported | N/A | Not supported | N/A |
251
+
{{< /bootstrap-table >}}
223
252
224
-
Custom policies will be NGINX Gateway Fabric-specific CRDs that will allow supporting features like timeouts,
225
-
load-balancing methods, authentication, etc. - important data-plane features that are not part of the Gateway API spec.
253
+
Custom policies will be NGINX Gateway Fabric-specific CRDs (Custom Resource Definitions) that will support features such as timeouts, load-balancing methods, authentication, etc. These important data-plane features are not part of the Gateway API specifications.
226
254
227
-
While those CRDs are not part of the Gateway API, the mechanism of attaching them to Gateway API resources is part of
228
-
the Gateway API. See the [Policy Attachment doc](https://gateway-api.sigs.k8s.io/references/policy-attachment/).
255
+
While these CRDs are not part of the Gateway API, the mechanism to attach them to Gateway API resources is part of the Gateway API. See the [Policy Attachment documentation](https://gateway-api.sigs.k8s.io/references/policy-attachment/).
0 commit comments