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
* Reformat api compatibility doc
Problem:
- The api compatibility includes long lines that makes it difficult
to edit and review
- Inconsistent indentation
Solution:
- Reformat the doc
* Update gateway api compatibility doc for Gateway listener
Problem:
Documentation for certificateRefs of Gateway listener was out of date
Solution:
Update the documentation
Note:
- Namespace limitations was addressed in e6e149d
- Secret rotation was addressed in 890fddb
|[Custom policies](#custom-policies)| Not supported |
17
17
18
18
## Terminology
19
19
20
20
We use the following words to describe support status:
21
+
21
22
-*Supported*. The resource or field is fully supported and conformant to the Gateway API specification.
22
-
-*Partially supported*. The resource or field is supported partially or with limitations. It will become fully supported in future releases.
23
-
-*Not supported*. The resource or field is not yet supported. It will become partially or fully supported in future releases.
23
+
-*Partially supported*. The resource or field is supported partially or with limitations. It will become fully
24
+
supported in future releases.
25
+
-*Not supported*. The resource or field is not yet supported. It will become partially or fully supported in future
26
+
releases.
24
27
25
-
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.
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.
26
30
27
31
## Resources
28
32
29
-
Below we list the resources and the support status of their corresponding fields.
33
+
Below we list the resources and the support status of their corresponding fields.
30
34
31
-
For a description of each field, visit the [Gateway API documentation](https://gateway-api.sigs.k8s.io/references/spec/).
35
+
For a description of each field, visit
36
+
the [Gateway API documentation](https://gateway-api.sigs.k8s.io/references/spec/).
32
37
33
-
### GatewayClass
38
+
### GatewayClass
34
39
35
-
> Status: Partially supported.
40
+
> Status: Partially supported.
36
41
37
42
NGINX Kubernetes Gateway supports only a single GatewayClass resource configured via `--gatewayclass` flag
38
43
of the [static-mode](./cli-help.md#static-mode) command.
*`Accepted/False/GatewayClassConflict`: Custom reason for when the GatewayClass references this controller, but a different GatewayClass name is provided to the controller via the command-line argument.
53
+
* `Accepted/True/Accepted`
54
+
* `Accepted/False/InvalidParameters`
55
+
* `Accepted/False/GatewayClassConflict`: Custom reason for when the GatewayClass references this controller, but
56
+
a different GatewayClass name is provided to the controller via the command-line argument.
50
57
51
58
### Gateway
52
59
53
60
> Status: Partially supported.
54
61
55
-
NGINX Kubernetes Gateway supports only a single Gateway resource. The Gateway resource must reference NGINX Kubernetes Gateway's corresponding GatewayClass.
62
+
NGINX Kubernetes Gateway supports only a single Gateway resource. The Gateway resource must reference NGINX Kubernetes
63
+
Gateway's corresponding GatewayClass.
56
64
See [static-mode](./cli-help.md#static-mode) command for more info.
*`certificateRefs` - partially supported. The TLS certificate and key must be stored in a Secret resource of type `kubernetes.io/tls` in the same namespace as the Gateway resource. Only a single reference is supported. You must deploy the Secret before the Gateway resource. Secret rotation (watching for updates) is not supported.
*`Accepted/False/UnsupportedValue`: Custom reason for when a value of a field in a Listener is invalid or
108
+
not supported.
109
+
*`Accepted/False/GatewayConflict`: Custom reason for when the Gateway is ignored due to a conflicting
110
+
Gateway. NKG only supports a single Gateway.
111
+
*`Programmed/True/Programmed`
112
+
*`Programmed/False/Invalid`
113
+
*`ResolvedRefs/True/ResolvedRefs`
114
+
*`ResolvedRefs/False/InvalidCertificateRef`
115
+
*`ResolvedRefs/False/InvalidRouteKinds`
116
+
*`Conflicted/True/ProtocolConflict`
117
+
*`Conflicted/False/NoConflicts`
102
118
103
119
### HTTPRoute
104
120
105
121
> Status: Partially supported.
106
122
107
123
Fields:
124
+
108
125
*`spec`
109
-
*`parentRefs` - partially supported. Port not supported.
110
-
*`hostnames` - supported.
111
-
*`rules`
112
-
*`matches`
113
-
*`path` - partially supported. Only `PathPrefix` and `Exact` types.
114
-
*`headers` - partially supported. Only `Exact` type.
115
-
*`queryParams` - partially supported. Only `Exact` type.
116
-
*`method` - supported.
117
-
*`filters`
118
-
*`type` - supported.
119
-
*`requestRedirect` - supported except for the experimental `path` field. If multiple filters with `requestRedirect` are configured, NGINX Kubernetes Gateway will choose the first one and ignore the rest.
120
-
*`requestHeaderModifier` - supported. If multiple filters with `requestHeaderModifier` are configured, NGINX Kubernetes Gateway will choose the first one and ignore the rest.
121
-
*`responseHeaderModifier`, `requestMirror`, `urlRewrite`, `extensionRef` - not supported.
122
-
*`backendRefs` - partially supported. Backend ref `filters` are not supported.
126
+
*`parentRefs` - partially supported. Port not supported.
127
+
*`hostnames` - supported.
128
+
*`rules`
129
+
*`matches`
130
+
* `path` - partially supported. Only `PathPrefix` and `Exact` types.
131
+
* `headers` - partially supported. Only `Exact` type.
132
+
* `queryParams` - partially supported. Only `Exact` type.
133
+
* `method` - supported.
134
+
*`filters`
135
+
*`type` - supported.
136
+
*`requestRedirect` - supported except for the experimental `path` field. If multiple filters
137
+
with `requestRedirect` are configured, NGINX Kubernetes Gateway will choose the first one and ignore the
138
+
rest.
139
+
*`requestHeaderModifier` - supported. If multiple filters with `requestHeaderModifier` are configured,
140
+
NGINX Kubernetes Gateway will choose the first one and ignore the rest.
141
+
*`responseHeaderModifier`, `requestMirror`, `urlRewrite`, `extensionRef` - not supported.
142
+
*`backendRefs` - partially supported. Backend ref `filters` are not supported.
*`Accepted/False/UnsupportedValue`: Custom reason for when the HTTPRoute includes an invalid or unsupported value.
133
-
*`Accepted/False/InvalidListener`: Custom reason for when the HTTPRoute references an invalid listener.
134
-
*`Accepted/False/GatewayNotProgrammed`: Custom reason for when the Gateway is not Programmed. HTTPRoute may be valid and configured, but will maintain this status as long as the Gateway is not Programmed.
135
-
*`ResolvedRefs/True/ResolvedRefs`
136
-
*`ResolvedRefs/False/InvalidKind`
137
-
*`ResolvedRefs/False/RefNotPermitted`
138
-
*`ResolvedRefs/False/BackendNotFound`
139
-
*`ResolvedRefs/False/UnsupportedValue`: Custom reason for when one of the HTTPRoute rules has a backendRef with an unsupported value.
* `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.
157
+
* `ResolvedRefs/True/ResolvedRefs`
158
+
* `ResolvedRefs/False/InvalidKind`
159
+
* `ResolvedRefs/False/RefNotPermitted`
160
+
* `ResolvedRefs/False/BackendNotFound`
161
+
* `ResolvedRefs/False/UnsupportedValue`: Custom reason for when one of the HTTPRoute rules has a backendRef
162
+
with an unsupported value.
140
163
141
164
### TLSRoute
142
165
@@ -156,20 +179,23 @@ Fields:
156
179
> Support Level: Core
157
180
158
181
Fields:
182
+
159
183
*`spec`
160
-
*`to`
161
-
*`group` - supported.
162
-
*`kind` - supports `Secret` and `Service`.
163
-
*`name`- supported.
164
-
*`from`
165
-
*`group` - supported.
166
-
*`kind` - supports `Gateway` and `HTTPRoute`.
167
-
*`namespace`- supported.
184
+
*`to`
185
+
* `group` - supported.
186
+
* `kind` - supports `Secret` and `Service`.
187
+
* `name`- supported.
188
+
*`from`
189
+
*`group` - supported.
190
+
*`kind` - supports `Gateway` and `HTTPRoute`.
191
+
*`namespace`- supported.
168
192
169
193
### Custom Policies
170
194
171
195
> Status: Not supported.
172
196
173
-
Custom policies will be NGINX Kubernetes Gateway-specific CRDs that will allow supporting features like timeouts, load-balancing methods, authentication, etc. - important data-plane features that are not part of the Gateway API spec.
197
+
Custom policies will be NGINX Kubernetes Gateway-specific CRDs that will allow supporting features like timeouts,
198
+
load-balancing methods, authentication, etc. - important data-plane features that are not part of the Gateway API spec.
174
199
175
-
While those CRDs are not part of the Gateway API, the mechanism of attaching them to Gateway API resources is part of the Gateway API. See the [Policy Attachment doc](https://gateway-api.sigs.k8s.io/references/policy-attachment/).
200
+
While those CRDs are not part of the Gateway API, the mechanism of attaching them to Gateway API resources is part of
201
+
the Gateway API. See the [Policy Attachment doc](https://gateway-api.sigs.k8s.io/references/policy-attachment/).
0 commit comments