Skip to content

Commit a45ec16

Browse files
authored
feat: Update Gateway compatibility and secure traffic guide for GWAPI v1.4.0 (#1443)
Update Gateway compatibility doc for v1.4.0 changes
1 parent 35ef33a commit a45ec16

File tree

2 files changed

+31
-22
lines changed

2 files changed

+31
-22
lines changed

content/ngf/overview/gateway-api-compatibility.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Learn which Gateway API resources NGINX Gateway Fabric supports and to which lev
2222
| [TLSRoute](#tlsroute) | Supported | Not supported | Not supported | v1alpha2 | Experimental |
2323
| [TCPRoute](#tcproute) | Not supported | Not supported | Not supported | v1alpha2 | Experimental |
2424
| [UDPRoute](#udproute) | Not supported | Not supported | Not supported | v1alpha2 | Experimental |
25-
| [BackendTLSPolicy](#backendtlspolicy) | Partially Supported | Supported | Partially supported | v1alpha3 | Experimental |
25+
| [BackendTLSPolicy](#backendtlspolicy) | Partially Supported | Supported | Partially supported | v1 | Standard |
2626
| [Custom policies](#custom-policies) | N/A | N/A | Supported | N/A | N/A |
2727
{{< /table >}}
2828

@@ -73,6 +73,7 @@ NGINX Gateway Fabric supports a single GatewayClass resource configured with the
7373
a different GatewayClass name is provided to the controller via the command-line argument.
7474
- `SupportedVersion/True/SupportedVersion`
7575
- `SupportedVersion/False/UnsupportedVersion`
76+
- `supportedFeatures` - supported.
7677

7778
### Gateway
7879

@@ -107,7 +108,10 @@ See the [controller]({{< ref "/ngf/reference/cli-help.md#controller">}}) command
107108
- `addresses`: Valid IPAddresses will be added to the `externalIP` field in the related Services fronting NGINX. Users should ensure that the IP Family of the address matches the IP Family set in the NginxProxy resource (default is dual, meaning both IPv4 and IPv6), otherwise there may be networking issues.
108109
- `type`: Partially supported. Allowed value: `IPAddress`.
109110
- `value`: Partially supported. Dynamic address allocation when value is unspecified is not supported.
110-
- `backendTLS`: Not supported.
111+
- `TLS`:
112+
- `frontend`: Not supported.
113+
- `backend`:
114+
- `clientCertificateRef`: Supported.
111115
- `allowedListeners`: Not supported.
112116
- `status`
113117
- `addresses`: Partially supported (LoadBalancer and ClusterIP).
@@ -322,7 +326,7 @@ Fields:
322326
{{< table >}}
323327
| Resource | Core Support Level | Extended Support Level | Implementation-Specific Support Level | API Version | API Release Channel |
324328
|------------------|---------------------|------------------------|---------------------------------------|-------------|---------------------|
325-
| BackendTLSPolicy | Partially Supported | Supported | Partially Supported | v1alpha3 | Experimental |
329+
| BackendTLSPolicy | Supported | Supported | Partially Supported | v1 | Standard |
326330
{{< /table >}}
327331

328332
Fields:
@@ -348,6 +352,10 @@ Fields:
348352
- `conditions`: Partially supported. Supported (Condition/Status/Reason):
349353
- `Accepted/True/PolicyReasonAccepted`
350354
- `Accepted/False/PolicyReasonInvalid`
355+
- `Accepted/False/NoValidCACertificate`
356+
- `ResolvedRefs/True/ResolvedRefs`
357+
- `ResolvedRefs/False/InvalidCACertificateRef`
358+
- `ResolvedRefs/False/InvalidKind`
351359

352360
{{< call-out "note" >}} If multiple `backendRefs` are defined for a HTTPRoute rule, all the referenced Services *must* have matching BackendTLSPolicy configuration. BackendTLSPolicy configuration is considered to be matching if 1. CACertRefs reference the same ConfigMap, or 2. WellKnownCACerts are the same, and 3. Hostname is the same. {{< /call-out >}}
353361

content/ngf/traffic-security/secure-backend.md

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,9 @@ In this guide, we will show how to specify the TLS configuration of the connecti
1515

1616
The intended use-case is when a service or backend owner is managing their own TLS and NGINX Gateway Fabric needs to know how to connect to this backend pod that has its own certificate over HTTPS.
1717

18-
## Note on Gateway API Experimental Features
19-
20-
{{< call-out "important" >}} BackendTLSPolicy is a Gateway API resource from the experimental release channel. {{< /call-out >}}
21-
22-
{{< include "/ngf/installation/install-gateway-api-experimental-features.md" >}}
23-
2418
## Before you begin
2519

26-
- [Install]({{< ref "/ngf/install/" >}}) NGINX Gateway Fabric with experimental features enabled.
20+
- [Install]({{< ref "/ngf/install/" >}}) NGINX Gateway Fabric.
2721

2822
## Set up
2923

@@ -200,7 +194,7 @@ curl --resolve secure-app.example.com:$GW_PORT:$GW_IP http://secure-app.example.
200194
<body>
201195
<center><h1>400 Bad Request</h1></center>
202196
<center>The plain HTTP request was sent to HTTPS port</center>
203-
<hr><center>nginx/1.25.3</center>
197+
<hr><center>nginx/1.29.2</center>
204198
</body>
205199
</html>
206200
```
@@ -262,7 +256,7 @@ Next, we create the Backend TLS Policy which targets our `secure-app` Service an
262256

263257
```yaml
264258
kubectl apply -f - <<EOF
265-
apiVersion: gateway.networking.k8s.io/v1alpha3
259+
apiVersion: gateway.networking.k8s.io/v1
266260
kind: BackendTLSPolicy
267261
metadata:
268262
name: backend-tls
@@ -291,21 +285,21 @@ Name: backend-tls
291285
Namespace: default
292286
Labels: <none>
293287
Annotations: <none>
294-
API Version: gateway.networking.k8s.io/v1alpha3
288+
API Version: gateway.networking.k8s.io/v1
295289
Kind: BackendTLSPolicy
296290
Metadata:
297-
Creation Timestamp: 2024-05-15T12:02:38Z
291+
Creation Timestamp: 2025-11-13T23:28:36Z
298292
Generation: 1
299-
Resource Version: 19380
300-
UID: b3983a6e-92f1-4a98-b2af-64b317d74528
293+
Resource Version: 1288
294+
UID: d7e3f026-afe3-44d1-aed5-c168e954b52f
301295
Spec:
302296
Target Refs:
303-
Group:
304-
Kind: Service
305-
Name: secure-app
297+
Group:
298+
Kind: Service
299+
Name: secure-app
306300
Validation:
307301
Ca Certificate Refs:
308-
Group:
302+
Group:
309303
Kind: ConfigMap
310304
Name: backend-cert
311305
Hostname: secure-app.example.com
@@ -317,8 +311,15 @@ Status:
317311
Name: gateway
318312
Namespace: default
319313
Conditions:
320-
Last Transition Time: 2024-05-15T12:02:38Z
321-
Message: BackendTLSPolicy is accepted by the Gateway
314+
Last Transition Time: 2025-11-13T23:28:37Z
315+
Message: All CACertificateRefs are resolved
316+
Observed Generation: 1
317+
Reason: ResolvedRefs
318+
Status: True
319+
Type: ResolvedRefs
320+
Last Transition Time: 2025-11-13T23:28:37Z
321+
Message: The Policy is accepted
322+
Observed Generation: 1
322323
Reason: Accepted
323324
Status: True
324325
Type: Accepted

0 commit comments

Comments
 (0)