Skip to content

Commit c5a5569

Browse files
nginx-botsjberman
authored andcommitted
Release 2.3.0
1 parent efc06dd commit c5a5569

File tree

18 files changed

+296
-229
lines changed

18 files changed

+296
-229
lines changed

CHANGELOG.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,73 @@ 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.3.0
8+
9+
* Support mixed externalname and local services in single route by @ciarams87 in https://github.com/nginx/nginx-gateway-fabric/pull/4188
10+
* Allow disabling cert-generator with a Helm value by @fabian4 in https://github.com/nginx/nginx-gateway-fabric/pull/4186
11+
* Fix bug where user mounted files were being removed by agent by @bjee19 in https://github.com/nginx/nginx-gateway-fabric/pull/4178
12+
* Preserve external controller state during reconciliation by @ciarams87 in https://github.com/nginx/nginx-gateway-fabric/pull/4182
13+
* Update GatewayAPI to v1.4.0 by @ciarams87 in https://github.com/nginx/nginx-gateway-fabric/pull/4166
14+
* Fix HPA race condition by reading deployment replicas instead of HPA status by @ciarams87 in https://github.com/nginx/nginx-gateway-fabric/pull/4214
15+
* Remove observability from alpha1 by @tataruty in https://github.com/nginx/nginx-gateway-fabric/pull/4215
16+
* Allow HPA to work when Inference is enabled by @sjberman in https://github.com/nginx/nginx-gateway-fabric/pull/4247
17+
* Adding nginx_proxy access_log format ability by @tataruty in https://github.com/nginx/nginx-gateway-fabric/pull/4102
18+
* Deduplicate route status entries by @sjberman in https://github.com/nginx/nginx-gateway-fabric/pull/4250
19+
* Add SupportedFeatures to GatewayClassStatus by @ciarams87 in https://github.com/nginx/nginx-gateway-fabric/pull/4236
20+
* Add support for backend tls config for Gateways by @salonichf5 in https://github.com/nginx/nginx-gateway-fabric/pull/3900
21+
* Fix empty pod owner name when connecting to agent by @sjberman in https://github.com/nginx/nginx-gateway-fabric/pull/4367
22+
* Remove k8s API access from NGINX pod by @sjberman in https://github.com/nginx/nginx-gateway-fabric/pull/4368
23+
* fix: pass IPv6 DNS resolvers correctly by @sjberman in https://github.com/nginx/nginx-gateway-fabric/pull/4378
24+
* Truncate long resource names when provisioning by @sjberman in https://github.com/nginx/nginx-gateway-fabric/pull/4387
25+
* Retry NGINX provisioning on all errors by @sjberman in https://github.com/nginx/nginx-gateway-fabric/pull/4399
26+
* Update permissions of gateway binary for UBI by @shaun-nx in https://github.com/nginx/nginx-gateway-fabric/pull/4404
27+
* Allow RegularExpression for path match be RE2/PCRE friendly. by @salonichf5 in https://github.com/nginx/nginx-gateway-fabric/pull/4450
28+
* Add support for multiple InferencePool backends by @bjee19 in https://github.com/nginx/nginx-gateway-fabric/pull/4439
29+
* Use UUID instead of IP address for tracking agent (#4470) by @sjberman in https://github.com/nginx/nginx-gateway-fabric/pull/4472
30+
* Preserve external controller annotations for deployment and daemonSet (#4468) by @salonichf5 in https://github.com/nginx/nginx-gateway-fabric/pull/4473
31+
32+
%%DATE%%
33+
34+
FEATURES:
35+
36+
-
37+
38+
BUG FIXES:
39+
40+
-
41+
42+
DOCUMENTATION:
43+
44+
-
45+
46+
HELM CHART:
47+
48+
- The version of the Helm chart is now 2.3.0
49+
-
50+
51+
UPGRADE:
52+
53+
-
54+
55+
KNOWN ISSUES:
56+
57+
-
58+
59+
COMPATIBILITY:
60+
61+
- Gateway API version: ``
62+
- Gateway API Inference Extension version: ``
63+
- NGINX version: ``
64+
- NGINX Plus version: ``
65+
- NGINX Agent version: ``
66+
- Kubernetes version: ``
67+
68+
CONTAINER IMAGES:
69+
70+
- Control plane: `ghcr.io/nginx/nginx-gateway-fabric:2.3.0`
71+
- Data plane: `ghcr.io/nginx/nginx-gateway-fabric/nginx:2.3.0`
72+
- Data plane with NGINX Plus: `private-registry.nginx.com/nginx-gateway-fabric/nginx-plus:2.3.0`
73+
- Operator: `ghcr.io/nginx/nginx-gateway-fabric/operator:2.3.0`
774
## Release 2.2.2
875

976
_December 10, 2025_

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# variables that should not be overridden by the user
2-
VERSION = edge
2+
VERSION = 2.3.0
33
SELF_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
44
CHART_DIR = $(SELF_DIR)charts/nginx-gateway-fabric
55
NGINX_CONF_DIR = internal/controller/nginx/conf

README.md

Lines changed: 2 additions & 2 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.2.2](https://github.com/nginx/nginx-gateway-fabric/releases/tag/v2.2.2).
39+
The latest release is [2.3.0](https://github.com/nginx/nginx-gateway-fabric/releases/tag/v2.3.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.2.2/deploy). | [Documentation](https://docs.nginx.com/nginx-gateway-fabric). [Examples](https://github.com/nginx/nginx-gateway-fabric/tree/v2.2.2/examples). |
50+
| Latest release | For production use | [Manifests](https://github.com/nginx/nginx-gateway-fabric/tree/v2.3.0/deploy). | [Documentation](https://docs.nginx.com/nginx-gateway-fabric). [Examples](https://github.com/nginx/nginx-gateway-fabric/tree/v2.3.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

charts/nginx-gateway-fabric/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ apiVersion: v2
22
name: nginx-gateway-fabric
33
description: NGINX Gateway Fabric
44
type: application
5-
version: 2.2.2
6-
appVersion: "edge"
5+
version: 2.3.0
6+
appVersion: "2.3.0"
77
kubeVersion: ">= 1.25.0-0"
88
home: https://github.com/nginx/nginx-gateway-fabric
99
icon: https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/main/charts/nginx-gateway-fabric/chart-icon.png

charts/nginx-gateway-fabric/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
# NGINX Gateway Fabric Helm Chart
33

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

66
- [NGINX Gateway Fabric Helm Chart](#nginx-gateway-fabric-helm-chart)
77
- [Introduction](#introduction)
@@ -208,7 +208,7 @@ The following table lists the configurable parameters of the NGINX Gateway Fabri
208208
| `certGenerator.ttlSecondsAfterFinished` | How long to wait after the cert generator job has finished before it is removed by the job controller. | int | `30` |
209209
| `clusterDomain` | The DNS cluster domain of your Kubernetes cluster. | string | `"cluster.local"` |
210210
| `gateways` | A list of Gateway objects. View https://gateway-api.sigs.k8s.io/reference/spec/#gateway for full Gateway reference. | list | `[]` |
211-
| `nginx` | The nginx section contains the configuration for all NGINX data plane deployments installed by the NGINX Gateway Fabric control plane. | object | `{"autoscaling":{"enable":false},"config":{},"container":{"hostPorts":[],"lifecycle":{},"readinessProbe":{},"resources":{},"volumeMounts":[]},"debug":false,"image":{"pullPolicy":"Always","repository":"ghcr.io/nginx/nginx-gateway-fabric/nginx","tag":"edge"},"imagePullSecret":"","imagePullSecrets":[],"kind":"deployment","nginxOneConsole":{"dataplaneKeySecretName":"","endpointHost":"agent.connect.nginx.com","endpointPort":443,"skipVerify":false},"patches":[],"plus":false,"pod":{},"replicas":1,"service":{"externalTrafficPolicy":"Local","loadBalancerClass":"","loadBalancerIP":"","loadBalancerSourceRanges":[],"nodePorts":[],"patches":[],"type":"LoadBalancer"},"usage":{"caSecretName":"","clientSSLSecretName":"","endpoint":"","enforceInitialReport":true,"resolver":"","secretName":"nplus-license","skipVerify":false}}` |
211+
| `nginx` | The nginx section contains the configuration for all NGINX data plane deployments installed by the NGINX Gateway Fabric control plane. | object | `{"autoscaling":{"enable":false},"config":{},"container":{"hostPorts":[],"lifecycle":{},"readinessProbe":{},"resources":{},"volumeMounts":[]},"debug":false,"image":{"pullPolicy":"IfNotPresent","repository":"ghcr.io/nginx/nginx-gateway-fabric/nginx","tag":"2.3.0"},"imagePullSecret":"","imagePullSecrets":[],"kind":"deployment","nginxOneConsole":{"dataplaneKeySecretName":"","endpointHost":"agent.connect.nginx.com","endpointPort":443,"skipVerify":false},"patches":[],"plus":false,"pod":{},"replicas":1,"service":{"externalTrafficPolicy":"Local","loadBalancerClass":"","loadBalancerIP":"","loadBalancerSourceRanges":[],"nodePorts":[],"patches":[],"type":"LoadBalancer"},"usage":{"caSecretName":"","clientSSLSecretName":"","endpoint":"","enforceInitialReport":true,"resolver":"","secretName":"nplus-license","skipVerify":false}}` |
212212
| `nginx.autoscaling` | Autoscaling configuration for the NGINX data plane. | object | `{"enable":false}` |
213213
| `nginx.autoscaling.enable` | Enable or disable Horizontal Pod Autoscaler for the NGINX data plane. | bool | `false` |
214214
| `nginx.config` | The configuration for the data plane that is contained in the NginxProxy resource. This is applied globally to all Gateways managed by this instance of NGINX Gateway Fabric. | object | `{}` |
@@ -246,7 +246,7 @@ The following table lists the configurable parameters of the NGINX Gateway Fabri
246246
| `nginx.usage.resolver` | The nameserver used to resolve the NGINX Plus usage reporting endpoint. Used with NGINX Instance Manager. | string | `""` |
247247
| `nginx.usage.secretName` | The name of the Secret containing the JWT for NGINX Plus usage reporting. Must exist in the same namespace that the NGINX Gateway Fabric control plane is running in (default namespace: nginx-gateway). | string | `"nplus-license"` |
248248
| `nginx.usage.skipVerify` | Disable client verification of the NGINX Plus usage reporting server certificate. | bool | `false` |
249-
| `nginxGateway` | The nginxGateway section contains configuration for the NGINX Gateway Fabric control plane deployment. | object | `{"affinity":{},"autoscaling":{"enable":false},"config":{"logging":{"level":"info"}},"configAnnotations":{},"extraVolumeMounts":[],"extraVolumes":[],"gatewayClassAnnotations":{},"gatewayClassName":"nginx","gatewayControllerName":"gateway.nginx.org/nginx-gateway-controller","gwAPIExperimentalFeatures":{"enable":false},"gwAPIInferenceExtension":{"enable":false,"endpointPicker":{"disableTLS":false,"skipVerify":true}},"image":{"pullPolicy":"Always","repository":"ghcr.io/nginx/nginx-gateway-fabric","tag":"edge"},"kind":"deployment","labels":{},"leaderElection":{"enable":true,"lockName":""},"lifecycle":{},"metrics":{"enable":true,"port":9113,"secure":false},"name":"","nodeSelector":{},"podAnnotations":{},"productTelemetry":{"enable":true},"readinessProbe":{"enable":true,"initialDelaySeconds":3,"port":8081},"replicas":1,"resources":{},"service":{"annotations":{},"labels":{}},"serviceAccount":{"annotations":{},"imagePullSecret":"","imagePullSecrets":[],"name":""},"snippetsFilters":{"enable":false},"terminationGracePeriodSeconds":30,"tolerations":[],"topologySpreadConstraints":[]}` |
249+
| `nginxGateway` | The nginxGateway section contains configuration for the NGINX Gateway Fabric control plane deployment. | object | `{"affinity":{},"autoscaling":{"enable":false},"config":{"logging":{"level":"info"}},"configAnnotations":{},"extraVolumeMounts":[],"extraVolumes":[],"gatewayClassAnnotations":{},"gatewayClassName":"nginx","gatewayControllerName":"gateway.nginx.org/nginx-gateway-controller","gwAPIExperimentalFeatures":{"enable":false},"gwAPIInferenceExtension":{"enable":false,"endpointPicker":{"disableTLS":false,"skipVerify":true}},"image":{"pullPolicy":"IfNotPresent","repository":"ghcr.io/nginx/nginx-gateway-fabric","tag":"2.3.0"},"kind":"deployment","labels":{},"leaderElection":{"enable":true,"lockName":""},"lifecycle":{},"metrics":{"enable":true,"port":9113,"secure":false},"name":"","nodeSelector":{},"podAnnotations":{},"productTelemetry":{"enable":true},"readinessProbe":{"enable":true,"initialDelaySeconds":3,"port":8081},"replicas":1,"resources":{},"service":{"annotations":{},"labels":{}},"serviceAccount":{"annotations":{},"imagePullSecret":"","imagePullSecrets":[],"name":""},"snippetsFilters":{"enable":false},"terminationGracePeriodSeconds":30,"tolerations":[],"topologySpreadConstraints":[]}` |
250250
| `nginxGateway.affinity` | The affinity of the NGINX Gateway Fabric control plane pod. | object | `{}` |
251251
| `nginxGateway.autoscaling` | Autoscaling configuration for the NGINX Gateway Fabric control plane. | object | `{"enable":false}` |
252252
| `nginxGateway.autoscaling.enable` | Enable or disable Horizontal Pod Autoscaler for the control plane. | bool | `false` |
@@ -262,7 +262,7 @@ The following table lists the configurable parameters of the NGINX Gateway Fabri
262262
| `nginxGateway.gwAPIInferenceExtension.endpointPicker` | EndpointPicker TLS configuration. | object | `{"disableTLS":false,"skipVerify":true}` |
263263
| `nginxGateway.gwAPIInferenceExtension.endpointPicker.disableTLS` | Disable TLS for EndpointPicker communication. By default, TLS is enabled. Set to true only for development/testing or when using a service mesh for encryption. | bool | `false` |
264264
| `nginxGateway.gwAPIInferenceExtension.endpointPicker.skipVerify` | Disables TLS certificate verification when connecting to the EndpointPicker. By default, certificate verification is disabled. REQUIRED: Must be true until Gateway API Inference Extension EndpointPicker supports mounting certificates. See: https://github.com/kubernetes-sigs/gateway-api-inference-extension/issues/1556 | bool | `true` |
265-
| `nginxGateway.image` | The image configuration for the NGINX Gateway Fabric control plane. | object | `{"pullPolicy":"Always","repository":"ghcr.io/nginx/nginx-gateway-fabric","tag":"edge"}` |
265+
| `nginxGateway.image` | The image configuration for the NGINX Gateway Fabric control plane. | object | `{"pullPolicy":"IfNotPresent","repository":"ghcr.io/nginx/nginx-gateway-fabric","tag":"2.3.0"}` |
266266
| `nginxGateway.image.repository` | The NGINX Gateway Fabric image to use | string | `"ghcr.io/nginx/nginx-gateway-fabric"` |
267267
| `nginxGateway.kind` | The kind of the NGINX Gateway Fabric installation - currently, only deployment is supported. | string | `"deployment"` |
268268
| `nginxGateway.labels` | Set of labels to be added for NGINX Gateway Fabric deployment. | object | `{}` |

charts/nginx-gateway-fabric/values.schema.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,7 @@
487487
"image": {
488488
"properties": {
489489
"pullPolicy": {
490-
"default": "Always",
490+
"default": "IfNotPresent",
491491
"enum": [
492492
"Always",
493493
"IfNotPresent",
@@ -504,7 +504,7 @@
504504
"type": "string"
505505
},
506506
"tag": {
507-
"default": "edge",
507+
"default": "2.3.0",
508508
"required": [],
509509
"title": "tag",
510510
"type": "string"
@@ -902,7 +902,7 @@
902902
"description": "The image configuration for the NGINX Gateway Fabric control plane.",
903903
"properties": {
904904
"pullPolicy": {
905-
"default": "Always",
905+
"default": "IfNotPresent",
906906
"enum": [
907907
"Always",
908908
"IfNotPresent",
@@ -919,7 +919,7 @@
919919
"type": "string"
920920
},
921921
"tag": {
922-
"default": "edge",
922+
"default": "2.3.0",
923923
"required": [],
924924
"title": "tag",
925925
"type": "string"

charts/nginx-gateway-fabric/values.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,14 +116,14 @@ nginxGateway:
116116
image:
117117
# -- The NGINX Gateway Fabric image to use
118118
repository: ghcr.io/nginx/nginx-gateway-fabric
119-
tag: edge
119+
tag: 2.3.0
120120
# @schema
121121
# enum:
122122
# - Always
123123
# - IfNotPresent
124124
# - Never
125125
# @schema
126-
pullPolicy: Always
126+
pullPolicy: IfNotPresent
127127

128128
productTelemetry:
129129
# -- Enable the collection of product telemetry.
@@ -288,14 +288,14 @@ nginx:
288288
image:
289289
# -- The NGINX image to use.
290290
repository: ghcr.io/nginx/nginx-gateway-fabric/nginx
291-
tag: edge
291+
tag: 2.3.0
292292
# @schema
293293
# enum:
294294
# - Always
295295
# - IfNotPresent
296296
# - Never
297297
# @schema
298-
pullPolicy: Always
298+
pullPolicy: IfNotPresent
299299

300300
# -- Is NGINX Plus image being used.
301301
plus: false

0 commit comments

Comments
 (0)