Skip to content

Commit 697c92d

Browse files
authored
Merge branch 'main' into tests/cel-observabilitypolicy
2 parents 72568ad + 7760ccf commit 697c92d

File tree

90 files changed

+2471
-11
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+2471
-11
lines changed

CHANGELOG.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,57 @@ This document includes a curated changelog for each release. We also publish a c
44
a [GitHub release](https://github.com/nginx/nginx-gateway-fabric/releases), which, by contrast, is auto-generated
55
and includes links to all PRs that went into the release.
66

7+
## Release 2.1.0
8+
9+
_August 14, 2025_
10+
11+
FEATURES:
12+
13+
- Add policyAffected status for policy target refs. [3535](https://github.com/nginx/nginx-gateway-fabric/pull/3535)
14+
- Add support for appProtocol on BackendRefs which point to a Kubernetes Service with a specified appProtocol on the target Service Port. [3511](https://github.com/nginx/nginx-gateway-fabric/pull/3511)
15+
- Support configurable hostPorts in NGINX container. [3321](https://github.com/nginx/nginx-gateway-fabric/pull/3321)
16+
- Add support for configuring NGINX `worker_connections` directive. [3611](https://github.com/nginx/nginx-gateway-fabric/pull/3611)
17+
- Add support for percentage based request mirroring. [3627](https://github.com/nginx/nginx-gateway-fabric/pull/3627)
18+
- NGINX Pod now has a configurable readiness probe. [3629](https://github.com/nginx/nginx-gateway-fabric/pull/3629)
19+
- Add the ability to patch the dataplane Service, Deployment, and DaemonSet resources through NginxProxy. [3630](https://github.com/nginx/nginx-gateway-fabric/pull/3630)
20+
- Add disableSNIHostValidation field to NginxProxy CRD to resolve HTTP/2 connection reuse issues with wildcard certificates, with documented security trade-offs. [3659](https://github.com/nginx/nginx-gateway-fabric/pull/3659)
21+
- Enable connection to NGINX One Console. [3676](https://github.com/nginx/nginx-gateway-fabric/pull/3676)
22+
- Add HorizontalPodAutoscaling support for both control plane and data plane deployments. [3702](https://github.com/nginx/nginx-gateway-fabric/pull/3702). Thanks to [nowjean](https://github.com/nowjean).
23+
- Set the OverlappingTLSConfig condition on Listeners with overlapping TLS hostnames. [3709](https://github.com/nginx/nginx-gateway-fabric/pull/3709)
24+
25+
BUG FIXES:
26+
27+
- Fix an issue where the NGINX Pod couldn't connect to control plane if multiple Pods shared the NGINX Pod's IP address. [3673](https://github.com/nginx/nginx-gateway-fabric/pull/3673)
28+
29+
DOCUMENTATION:
30+
31+
- Add simplified architecture diagrams for traffic flow and config changes. [3557](https://github.com/nginx/nginx-gateway-fabric/pull/3557)
32+
33+
HELM CHART:
34+
35+
- The version of the Helm chart is now 2.1.0.
36+
- Allow users to specify nginxGateway.name to configure names of deployments. [3528](https://github.com/nginx/nginx-gateway-fabric/pull/3528)
37+
- Fix Helm Schema for data plane volume mounts. [3588](https://github.com/nginx/nginx-gateway-fabric/pull/3588). Thanks to [vazkarvishal](https://github.com/vazkarvishal).
38+
- Update Helm Chart README to recommend using server-side apply when applying NGF CRDs. [3589](https://github.com/nginx/nginx-gateway-fabric/pull/3589)
39+
40+
UPGRADE:
41+
42+
- **Important:** Upgrading from v2.0.x to 2.1 requires the NGINX Gateway Fabric control plane to be uninstalled and then reinstalled to avoid any downtime to user traffic. CRDs do not need to be removed. The NGINX data plane deployment is not affected by this process, and traffic should still flow uninterrupted. For more information on how to do so, view our guide on [Upgrading NGINX Gateway Fabric](https://docs.nginx.com/nginx-gateway-fabric/install/upgrade-version/)
43+
44+
COMPATIBILITY:
45+
46+
- Gateway API version: `1.3.0`
47+
- NGINX version: `1.29.0`
48+
- NGINX Plus version: `R35`
49+
- NGINX Agent version: `v3.2.0`
50+
- Kubernetes version: `1.25+`
51+
52+
CONTAINER IMAGES:
53+
54+
- Control plane: `ghcr.io/nginx/nginx-gateway-fabric:2.1.0`
55+
- Data plane: `ghcr.io/nginx/nginx-gateway-fabric/nginx:2.1.0`
56+
- Data plane with NGINX Plus: `private-registry.nginx.com/nginx-gateway-fabric/nginx-plus:2.1.0`
57+
758
## Release 2.0.2
859

960
_July 8, 2025_

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ You can find the comprehensive NGINX Gateway Fabric user documentation on the [N
3636
We publish NGINX Gateway Fabric releases on GitHub. See
3737
our [releases page](https://github.com/nginx/nginx-gateway-fabric/releases).
3838

39-
The latest release is [2.0.2](https://github.com/nginx/nginx-gateway-fabric/releases/tag/v2.0.2).
39+
The latest release is [2.1.0](https://github.com/nginx/nginx-gateway-fabric/releases/tag/v2.1.0).
4040

4141
The edge version is useful for experimenting with new features that are not yet published in a release. To use, choose
4242
the _edge_ version built from the [latest commit](https://github.com/nginx/nginx-gateway-fabric/commits/main)
@@ -47,7 +47,7 @@ to the correct versions:
4747

4848
| Version | Description | Installation Manifests | Documentation and Examples |
4949
|----------------|------------------------------------------|--------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
50-
| Latest release | For production use | [Manifests](https://github.com/nginx/nginx-gateway-fabric/tree/v2.0.2/deploy). | [Documentation](https://docs.nginx.com/nginx-gateway-fabric). [Examples](https://github.com/nginx/nginx-gateway-fabric/tree/v2.0.2/examples). |
50+
| Latest release | For production use | [Manifests](https://github.com/nginx/nginx-gateway-fabric/tree/v2.1.0/deploy). | [Documentation](https://docs.nginx.com/nginx-gateway-fabric). [Examples](https://github.com/nginx/nginx-gateway-fabric/tree/v2.1.0/examples). |
5151
| Edge | For experimental use and latest features | [Manifests](https://github.com/nginx/nginx-gateway-fabric/tree/main/deploy). | [Examples](https://github.com/nginx/nginx-gateway-fabric/tree/main/examples). |
5252

5353
### Versioning
@@ -68,7 +68,8 @@ The following table lists the software versions NGINX Gateway Fabric supports.
6868

6969
| NGINX Gateway Fabric | Gateway API | Kubernetes | NGINX OSS | NGINX Plus | NGINX Agent |
7070
|----------------------|-------------|------------|-----------|------------|-------------|
71-
| Edge | 1.3.0 | 1.25+ | 1.29.0 | R35 | v3.2.0 |
71+
| Edge | 1.3.0 | 1.25+ | 1.29.1 | R35 | v3.2.1 |
72+
| 2.1.0 | 1.3.0 | 1.25+ | 1.29.1 | R35 | v3.2.1 |
7273
| 2.0.2 | 1.3.0 | 1.25+ | 1.28.0 | R34 | v3.0.1 |
7374
| 2.0.1 | 1.3.0 | 1.25+ | 1.28.0 | R34 | v3.0.1 |
7475
| 2.0.0 | 1.3.0 | 1.25+ | 1.28.0 | R34 | v3.0.0 |

build/Dockerfile.nginx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ FROM scratch AS nginx-files
44
# the following links can be replaced with local files if needed, i.e. ADD --chown=101:1001 <local_file> <container_file>
55
ADD --link --chown=101:1001 https://cs.nginx.com/static/keys/nginx_signing.rsa.pub nginx_signing.rsa.pub
66

7-
FROM nginx:1.29.0-alpine-otel
7+
FROM nginx:1.29.1-alpine-otel
88

99
# renovate: datasource=github-tags depName=nginx/agent
10-
ARG NGINX_AGENT_VERSION=v3.2.0
10+
ARG NGINX_AGENT_VERSION=v3.2.1
1111
ARG NJS_DIR
1212
ARG NGINX_CONF_DIR
1313
ARG BUILD_AGENT

build/Dockerfile.nginxplus

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ FROM alpine:3.22
88

99
ARG NGINX_PLUS_VERSION=R35
1010
# renovate: datasource=github-tags depName=nginx/agent
11-
ARG NGINX_AGENT_VERSION=v3.2.0
11+
ARG NGINX_AGENT_VERSION=v3.2.1
1212
ARG NJS_DIR
1313
ARG NGINX_CONF_DIR
1414
ARG BUILD_AGENT

charts/nginx-gateway-fabric/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v2
22
name: nginx-gateway-fabric
33
description: NGINX Gateway Fabric
44
type: application
5-
version: 2.0.2
5+
version: 2.1.0
66
appVersion: "edge"
77
kubeVersion: ">= 1.25.0-0"
88
home: https://github.com/nginx/nginx-gateway-fabric

charts/nginx-gateway-fabric/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
# NGINX Gateway Fabric Helm Chart
33

4-
![Version: 2.0.2](https://img.shields.io/badge/Version-2.0.2-informational?style=flat-square) ![AppVersion: edge](https://img.shields.io/badge/AppVersion-edge-informational?style=flat-square)
4+
![Version: 2.1.0](https://img.shields.io/badge/Version-2.1.0-informational?style=flat-square) ![AppVersion: edge](https://img.shields.io/badge/AppVersion-edge-informational?style=flat-square)
55

66
- [NGINX Gateway Fabric Helm Chart](#nginx-gateway-fabric-helm-chart)
77
- [Introduction](#introduction)

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ require (
77
github.com/go-logr/logr v1.4.3
88
github.com/google/go-cmp v0.7.0
99
github.com/google/uuid v1.6.0
10-
github.com/nginx/agent/v3 v3.2.0
10+
github.com/nginx/agent/v3 v3.2.1
1111
github.com/nginx/telemetry-exporter v0.1.4
1212
github.com/onsi/ginkgo/v2 v2.23.4
1313
github.com/onsi/gomega v1.38.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
137137
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
138138
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
139139
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
140-
github.com/nginx/agent/v3 v3.2.0 h1:4ANQFHL6waYW3zIGXORBNmFa8Uy2a+gvZPjBK4Q47+4=
141-
github.com/nginx/agent/v3 v3.2.0/go.mod h1:Ey7T7/Mz3Nf0Lg09vYh1Feq8od2Vo3wk2xSBVS4b6Y8=
140+
github.com/nginx/agent/v3 v3.2.1 h1:BT7l9q0SDFUth7pKoQg4Q44xTn5n+HXgfghnPvbzDzg=
141+
github.com/nginx/agent/v3 v3.2.1/go.mod h1:w4mReHi5Icujz+1zFImvjx1FcVW9vSZliTsJVMz7l8w=
142142
github.com/nginx/telemetry-exporter v0.1.4 h1:3ikgKlyz/O57oaBLkxCInMjr74AhGTKr9rHdRAkkl/w=
143143
github.com/nginx/telemetry-exporter v0.1.4/go.mod h1:bl6qmsxgk4a9D0X8R5E3sUNXN2iECPEK1JNbRLhN5C4=
144144
github.com/nginxinc/nginx-plus-go-client/v2 v2.0.1 h1:5VVK38bnELMDWnwfF6dSv57ResXh9AUzeDa72ENj94o=
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Results
2+
3+
## Test environment
4+
5+
NGINX Plus: false
6+
7+
NGINX Gateway Fabric:
8+
9+
- Commit: 43424f7eafc27e3fed07cef693614a7f389a3359
10+
- Date: 2025-08-12T16:35:50Z
11+
- Dirty: false
12+
13+
GKE Cluster:
14+
15+
- Node count: 12
16+
- k8s version: v1.33.2-gke.1240000
17+
- vCPUs per node: 16
18+
- RAM per node: 65851524Ki
19+
- Max pods per node: 110
20+
- Zone: us-west1-b
21+
- Instance Type: n2d-standard-16
22+
23+
## Summary:
24+
25+
- Average latency slightly increased across all routing methods, saw the same trend from 1.6 -> 2.0.
26+
27+
## Test1: Running latte path based routing
28+
29+
```text
30+
Requests [total, rate, throughput] 30000, 1000.01, 999.98
31+
Duration [total, attack, wait] 30.001s, 30s, 860.144µs
32+
Latencies [min, mean, 50, 90, 95, 99, max] 708.68µs, 924.81µs, 900.213µs, 1.012ms, 1.056ms, 1.235ms, 25.908ms
33+
Bytes In [total, mean] 4800000, 160.00
34+
Bytes Out [total, mean] 0, 0.00
35+
Success [ratio] 100.00%
36+
Status Codes [code:count] 200:30000
37+
Error Set:
38+
```
39+
40+
## Test2: Running coffee header based routing
41+
42+
```text
43+
Requests [total, rate, throughput] 30000, 1000.01, 999.98
44+
Duration [total, attack, wait] 30.001s, 30s, 916.828µs
45+
Latencies [min, mean, 50, 90, 95, 99, max] 751.086µs, 950.524µs, 929.692µs, 1.031ms, 1.073ms, 1.246ms, 21.708ms
46+
Bytes In [total, mean] 4830000, 161.00
47+
Bytes Out [total, mean] 0, 0.00
48+
Success [ratio] 100.00%
49+
Status Codes [code:count] 200:30000
50+
Error Set:
51+
```
52+
53+
## Test3: Running coffee query based routing
54+
55+
```text
56+
Requests [total, rate, throughput] 30000, 1000.04, 1000.01
57+
Duration [total, attack, wait] 30s, 29.999s, 910.096µs
58+
Latencies [min, mean, 50, 90, 95, 99, max] 737.72µs, 952.101µs, 931.79µs, 1.04ms, 1.084ms, 1.257ms, 21.421ms
59+
Bytes In [total, mean] 5070000, 169.00
60+
Bytes Out [total, mean] 0, 0.00
61+
Success [ratio] 100.00%
62+
Status Codes [code:count] 200:30000
63+
Error Set:
64+
```
65+
66+
## Test4: Running tea GET method based routing
67+
68+
```text
69+
Requests [total, rate, throughput] 30000, 1000.04, 1000.00
70+
Duration [total, attack, wait] 30s, 29.999s, 953.01µs
71+
Latencies [min, mean, 50, 90, 95, 99, max] 735.071µs, 943.252µs, 913.494µs, 1.019ms, 1.065ms, 1.251ms, 22.035ms
72+
Bytes In [total, mean] 4740000, 158.00
73+
Bytes Out [total, mean] 0, 0.00
74+
Success [ratio] 100.00%
75+
Status Codes [code:count] 200:30000
76+
Error Set:
77+
```
78+
79+
## Test5: Running tea POST method based routing
80+
81+
```text
82+
Requests [total, rate, throughput] 30000, 1000.04, 1000.01
83+
Duration [total, attack, wait] 30s, 29.999s, 915.921µs
84+
Latencies [min, mean, 50, 90, 95, 99, max] 734.844µs, 941.777µs, 917.299µs, 1.026ms, 1.069ms, 1.23ms, 16.245ms
85+
Bytes In [total, mean] 4740000, 158.00
86+
Bytes Out [total, mean] 0, 0.00
87+
Success [ratio] 100.00%
88+
Status Codes [code:count] 200:30000
89+
Error Set:
90+
```
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Results
2+
3+
## Test environment
4+
5+
NGINX Plus: true
6+
7+
NGINX Gateway Fabric:
8+
9+
- Commit: 43424f7eafc27e3fed07cef693614a7f389a3359
10+
- Date: 2025-08-12T16:35:50Z
11+
- Dirty: false
12+
13+
GKE Cluster:
14+
15+
- Node count: 12
16+
- k8s version: v1.33.2-gke.1240000
17+
- vCPUs per node: 16
18+
- RAM per node: 65851524Ki
19+
- Max pods per node: 110
20+
- Zone: us-west1-b
21+
- Instance Type: n2d-standard-16
22+
23+
## Summary:
24+
25+
- Average latency slightly decreased across all routing methods.
26+
27+
## Test1: Running latte path based routing
28+
29+
```text
30+
Requests [total, rate, throughput] 30000, 1000.04, 1000.01
31+
Duration [total, attack, wait] 30s, 29.999s, 864.169µs
32+
Latencies [min, mean, 50, 90, 95, 99, max] 676.161µs, 888.566µs, 842.896µs, 960.735µs, 1.026ms, 1.385ms, 35.079ms
33+
Bytes In [total, mean] 4770000, 159.00
34+
Bytes Out [total, mean] 0, 0.00
35+
Success [ratio] 100.00%
36+
Status Codes [code:count] 200:30000
37+
Error Set:
38+
```
39+
40+
## Test2: Running coffee header based routing
41+
42+
```text
43+
Requests [total, rate, throughput] 30000, 1000.03, 1000.01
44+
Duration [total, attack, wait] 30s, 29.999s, 789.743µs
45+
Latencies [min, mean, 50, 90, 95, 99, max] 696.868µs, 888.515µs, 867.086µs, 957.192µs, 1.004ms, 1.322ms, 20.014ms
46+
Bytes In [total, mean] 4800000, 160.00
47+
Bytes Out [total, mean] 0, 0.00
48+
Success [ratio] 100.00%
49+
Status Codes [code:count] 200:30000
50+
Error Set:
51+
```
52+
53+
## Test3: Running coffee query based routing
54+
55+
```text
56+
Requests [total, rate, throughput] 30000, 1000.04, 1000.01
57+
Duration [total, attack, wait] 30s, 29.999s, 825.991µs
58+
Latencies [min, mean, 50, 90, 95, 99, max] 696.245µs, 901.93µs, 874.173µs, 978.297µs, 1.03ms, 1.272ms, 22.813ms
59+
Bytes In [total, mean] 5040000, 168.00
60+
Bytes Out [total, mean] 0, 0.00
61+
Success [ratio] 100.00%
62+
Status Codes [code:count] 200:30000
63+
Error Set:
64+
```
65+
66+
## Test4: Running tea GET method based routing
67+
68+
```text
69+
Requests [total, rate, throughput] 30000, 1000.04, 1000.01
70+
Duration [total, attack, wait] 30s, 29.999s, 845.195µs
71+
Latencies [min, mean, 50, 90, 95, 99, max] 696.031µs, 906.906µs, 878.335µs, 989.976µs, 1.041ms, 1.267ms, 25.992ms
72+
Bytes In [total, mean] 4710000, 157.00
73+
Bytes Out [total, mean] 0, 0.00
74+
Success [ratio] 100.00%
75+
Status Codes [code:count] 200:30000
76+
Error Set:
77+
```
78+
79+
## Test5: Running tea POST method based routing
80+
81+
```text
82+
Requests [total, rate, throughput] 30000, 1000.04, 1000.01
83+
Duration [total, attack, wait] 30s, 29.999s, 947.993µs
84+
Latencies [min, mean, 50, 90, 95, 99, max] 716.416µs, 908.156µs, 883.623µs, 996.843µs, 1.054ms, 1.289ms, 17.605ms
85+
Bytes In [total, mean] 4710000, 157.00
86+
Bytes Out [total, mean] 0, 0.00
87+
Success [ratio] 100.00%
88+
Status Codes [code:count] 200:30000
89+
Error Set:
90+
```

0 commit comments

Comments
 (0)