This document includes a curated changelog for each release. We also publish a changelog as the description of a GitHub release, which, by contrast, is auto-generated and includes links to all PRs that went into the release.
December 16, 2024
BUG FIXES:
- Write NGINX Plus R33 deployment context in init container. 2905
- SnippetsFilter CRD missing from CRDs manifest. 2822
- Omit empty deployment context fields in NGINX Plus R33 reporting. 2910
HELM CHART:
- The version of the Helm chart is now 1.5.1
COMPATIBILITY:
- Gateway API version:
1.2.0
- NGINX version:
1.27.2
- NGINX Plus version:
R33
- Kubernetes version:
1.25+
CONTAINER IMAGES:
- Control plane:
ghcr.io/nginxinc/nginx-gateway-fabric:1.5.1
- Data plane:
ghcr.io/nginxinc/nginx-gateway-fabric/nginx:1.5.1
- Data plane with NGINX Plus:
private-registry.nginx.com/nginx-gateway-fabric/nginx-plus:1.5.1
November 20, 2024
BREAKING CHANGES:
- NGINX Plus R33 support added. The NGINX Plus release now requires a valid JSON Web Token (JWT) in order to run. Users of NGINX Plus must have this JWT added to a Secret before installing NGINX Gateway Fabric v1.5.0. See the NGINX Plus JWT guide for information on setting this up. 2760
FEATURES:
- Add support to retain client IP information. 2284
- Add the ability to configure data plane error log level. 2603
- Introduce SnippetsFilter API, which allows users to inject custom NGINX configuration via an HTTPRoute or GRPCRoute filter. See the SnippetsFilter guide for information on how to use SnippetsFilters. 2604
- Reduce logging verbosity of default Info log level. 2455
BUG FIXES:
- Stream status_zone directive is no longer set if its value is empty. 2684
- Fix an issue with upstream names when split clients are used with a namespace name that starts with a number. 2730
- A 503 http response code is now returned to the client when a service has no ready endpoints. 2696
DOCUMENTATION:
- Add a guide for SnippetsFilter. 2721
- Add a new Get started document. 2721
- Add documentation for proxyProtocol and rewriteClientIP settings. 2701
- Fix indentation in lifecycle examples. 2588. Thanks to Derek F.
HELM CHART:
- The version of the Helm chart is now 1.5.0
- Add
loadBalancerSourceRanges
to helm parameters to use during install/upgrade. 2773 - Add
loadBalancerIP
as a helm parameter to use during install/upgrade. 2766 - Add Helm schema. 2492
- Add capability to configure
topologySpreadConstraints
. 2703. Thanks to Robsta86
DEPENDENCIES:
COMPATIBILITY:
- Gateway API version:
1.2.0
- NGINX version:
1.27.2
- NGINX Plus version:
R33
- Kubernetes version:
1.25+
CONTAINER IMAGES:
- Control plane:
ghcr.io/nginxinc/nginx-gateway-fabric:1.5.0
- Data plane:
ghcr.io/nginxinc/nginx-gateway-fabric/nginx:1.5.0
- Data plane with NGINX Plus:
private-registry.nginx.com/nginx-gateway-fabric/nginx-plus:1.5.0
August 20, 2024
FEATURES:
- Support IPv6. 2190
- Add support for TLS Passthrough using TLSRoutes. 2356
- Support cross-namespace routing with TLSRoutes. 2379
- Added server_zone metrics for NGINX Plus users. 2360
BUG FIXES:
- Fixed issue where NGF Pod cannot recover if NGINX master process fails without cleaning up. 2131
- Leader election couldn't be disabled. 2307
- Disallow routes from attaching to listeners if not present in allowed routes. 2314
- Honor ReferenceGrants that allow GRPCRoutes to reference Services in different namespaces. 2337
- Fixed an issue that prevented ClientSettingsPolicies and ObservabilityPolicies from working when attached to an HTTPRoute where matching conditions were defined. 2318
- Replace TODO route condition with an Accepted/False condition. 2228
DOCUMENTATION:
- Enhanced the troubleshooting guide with more details and scenarios. 2141
- Update kubectl exec syntax to remove deprecation warning. 2218. Thanks aknot242.
- Add info on setting up host network access. 2263. Thanks fardarter.
HELM CHART:
- The version of the Helm chart is now 1.4.0
- Add capability to set resource requests and limits on nginx-gateway deployment. 2216. Thanks to anwbtom.
- Add capability to configure custom annotations for the nginx-gateway-fabric pod(s). 2250. Thanks to Robsta86.
- Add helm chart examples. 2292
- Add seccompProfile. 2323
COMPATIBILITY:
- Gateway API version:
1.1.0
- NGINX version:
1.27.1
- NGINX Plus version:
R32
- Kubernetes version:
1.25+
CONTAINER IMAGES:
- Control plane:
ghcr.io/nginxinc/nginx-gateway-fabric:1.4.0
- Data plane:
ghcr.io/nginxinc/nginx-gateway-fabric/nginx:1.4.0
- Data plane with NGINX Plus:
private-registry.nginx.com/nginx-gateway-fabric/nginx-plus:1.4.0
June 11, 2024
FEATURES:
- Support for GRPCRoute:
- Support tracing via the ObservabilityPolicy CRD. 2004
- NginxProxy CRD added to configure global settings (such as tracing endpoint) at the GatewayClass level. 1870
- Add configuration option to disable HTTP2 to the NginxProxy CRD. 1925
- Introduce ClientSettingsPolicy CRD. This CRD allows users to configure the behavior of the connection between the client and NGINX. 1940
- Introduce support for the HTTP filter
ResponseHeaderModifier
, enabling the modification of response headers within HTTPRoutes. 1880. With help from Kai-Hsun Chen. - Collect BackendTLSPolicy and GRPCRoute counts configured with NGINX Gateway Fabric. 1954
BUG FIXES:
- Remove zone size for invalid backend ref. 1931
- Fixed issue when using BackendTLSPolicy that led to failed connections. 1934.
- Update secrets on resource version change only. 2047
- Fix reload errors due to long matching conditions. 1829.
- Add SecurityContextConstraints so NGF can run on Openshift. 1976
DOCUMENTATION:
- Helm docs are now automatically generated. 2058
- Add guide on how to configure tracing for HTTPRoutes and GRPCRoutes. 2026.
- Add guide on how to use the ClientSettingsPolicy API. 2071.
- Document how to upgrade from Open Source NGINX to NGINX Plus. 2104
- Add overview of how custom policies work in NGINX Gateway Fabric. 2088
HELM CHART:
- The version of the Helm chart is now 1.3.0
- Specify minimum Kubernetes version in Helm chart. 1885
- Use kustomize to install Gateway API and NGINX Gateway Fabric CRDs. 1886 and 2011
- Annotations for GatewayClass and NginxGateway are now configurable. 1993. Thanks to sgavrylenko.
- Fix RBAC ServiceAccount ImagePullSecrets template which caused errors when running NGF with NGINX+. 1953
DEPENDENCIES:
- The minimum supported version of Kubernetes is now 1.25. 1885
- NGINX Plus was updated to R32. 2057
- Update to v1.1.0 of the Gateway API. This includes a breaking change to BackendTLSPolicies - see the release notes for further details. 1975
UPGRADE:
- This version of NGINX Gateway Fabric is not compatible with v1.0.0 of the Gateway API. You must upgrade the Gateway API CRDs to v1.1.0 before upgrading NGINX Gateway Fabric. For instructions, see the upgrade documentation for helm or manifests. If you are using the v1.0.0 or earlier experimental versions of GRPCRoute or BackendTLSPolicy, see v1.1.0 Upgrade Notes for instructions on upgrading the Gateway API CRDs.
KNOWN ISSUES:
- Tracing does not work on HTTPRoutes with matching conditions. 2105
- ClientSettingsPolicy does not work on HTTPRoutes with matching conditions. 2079
- In restrictive environments, the NGF Pod may fail to become ready due to a permissions issue that causes nginx reloads to fail. 1695
COMPATIBILITY:
- Gateway API version:
1.1.0
. This release is not compatible with v1.0.0 of the Gateway API. See the UPGRADE section above for instructions on how to upgrade. - NGINX version:
1.27.0
- NGINX Plus version:
R32
- Kubernetes version:
1.25+
CONTAINER IMAGES:
- Control plane:
ghcr.io/nginxinc/nginx-gateway-fabric:1.3.0
- Data plane:
ghcr.io/nginxinc/nginx-gateway-fabric/nginx:1.3.0
- Data plane with NGINX Plus:
private-registry.nginx.com/nginx-gateway-fabric/nginx-plus:1.3.0
March 21, 2024
FEATURES:
- NGINX Plus can now be used as the data plane. PR-1394
- Support for BackendTLSPolicy. PR-1487
- Support for URLRewrite HTTPRoute Filter. PR-1396
- NGINX Gateway Fabric will collect and report product telemetry to an F5 telemetry service every 24h. Read https://docs.nginx.com/nginx-gateway-fabric/overview/product-telemetry/ for more info, including what gets collected and how to opt out. PR-1699
ENHANCEMENTS:
- Stop processing resources that haven't changed. PR-1422 Thanks to Kai-Hsun Chen.
- Maintain Gateway Status order. PR-1324 Thanks to Kai-Hsun Chen.
BUG FIXES:
- Prevent paths in HTTPRoute matches from conflicting with internal locations in NGINX. PR-1445
DOCUMENTATION:
- Sample Grafana dashboard added. PR-1620
- Add a document about how to get support. PR-1388
- Documentation on how to build or install the NGINX Plus image.
HELM CHART:
- The version of the Helm chart is now 1.2.0
- nodeSelector is now configurable. PR-1531 Thanks to Leandro Martins
KNOWN ISSUES:
- Shutdown of non-leader Pods starts leader jobs. 1738
- Too many matching conditions can cause reload errors. 1107
- NGF Pod fails to become ready due to nginx reload failure. 1695
COMPATIBILITY:
- Gateway API version:
1.0.0
- NGINX version:
1.25.4
- NGINX Plus version:
R31
- Kubernetes version:
1.23+
CONTAINER IMAGES:
- Control plane:
ghcr.io/nginxinc/nginx-gateway-fabric:1.2.0
- Data plane:
ghcr.io/nginxinc/nginx-gateway-fabric/nginx:1.2.0
- Data plane with NGINX Plus:
private-registry.nginx.com/nginx-gateway-fabric/nginx-plus:1.2.0
December 14, 2023
This release updates NGINX Gateway Fabric to support version 1.0.0 of the Gateway API in addition to bug fixes and documentation updates. Our docs are now available at https://docs.nginx.com/nginx-gateway-fabric.
FEATURES:
- Update to v1.0.0 of the Gateway API. PR-1250
- Set the SupportedVersion Condition on GatewayClass. PR-1301
BUG FIXES:
- Merge HTTPRoute conditions from all Gateway controllers. PR-1220
- Validate header names and report validation errors in the HTTPRoute status. PR-1239
- Remove usage info from log output. PR-1242
- Set the Gateway Listener status AttachedRoutes field to the number of Routes associated with a Listener regardless of Gateway or Route status. PR-1275
- Set file mode explicitly for regular NGINX configuration files. PR-1323. Thanks to Kai-Hsun Chen.
DOCUMENTATION:
- Documentation is now available on docs.nginx.com. Link
- Update the resource validation documents to cover CEL validation. Link
- Non-functional testing results. Link
HELM CHART:
- The version of the Helm chart is now 1.1.0.
- Add tolerations to the helm chart. PR-1192. Thanks to Jerome Brown.
- Add extra volume mounts to the helm chart. PR-1193. Thanks to Jerome Brown.
- Fix broken helm chart icon links. PR-1290. Thanks to arukiidou.
UPGRADE:
- This version of NGINX Gateway Fabric is not compatible with v0.8.0 of the Gateway API. You must upgrade the Gateway API CRDs to v1.0.0 before upgrading NGINX Gateway Fabric. For instructions, see the upgrade documentation for helm or manifests.
COMPATIBILITY:
- Gateway API version:
1.0.0
- NGINX version:
1.25.3
- Kubernetes version:
1.23+
CONTAINER IMAGES:
- Control plane:
ghcr.io/nginxinc/nginx-gateway-fabric:1.1.0
- Data plane:
ghcr.io/nginxinc/nginx-gateway-fabric/nginx:1.1.0
October 24, 2023
This is the official v1.0.0 release of NGINX Gateway Fabric.
BREAKING CHANGES:
- Rename the product from NGINX Kubernetes Gateway to NGINX Gateway Fabric. PR-1070
FEATURES:
- Add readiness probe. PR-1047
- Support horizontal scaling. PR-1048
- Add NGINX reload metrics. PR-1049
- Retry status updater on failures. PR-1062
- Add event processing histogram metric. PR-1134
- Set Service address in Gateway Status. PR-1141
BUG FIXES:
- Optimize default NGINX config. PR-1040
- Ensure NGINX reload occurs. PR-1033
- Fix failure to recover if conf files are unexpectedly removed. PR-1132
- Only update a resource's status if it has changed. PR-1151
DOCUMENTATION:
- Non-functional testing guides and results. Link
COMPATIBILITY:
- Gateway API version:
0.8.1
- NGINX version:
1.25.2
- Kubernetes version:
1.23+
CONTAINER IMAGES:
- Control plane:
ghcr.io/nginxinc/nginx-gateway-fabric:1.0.0
- Data plane:
ghcr.io/nginxinc/nginx-gateway-fabric/nginx:1.0.0
August 31, 2023
This release adds a Helm chart, dynamic control plane logging, Prometheus metrics, and in-depth guides for various use cases.
FEATURES:
- Helm chart. PR-840
- Use custom nginx container. PR-934
- Support dynamic control plane logging. PR-943
- Support websocket connections. PR-962
- Support Prometheus metrics. PR-999
BUG FIXES:
- Ensure NGINX Kubernetes Gateway has least privileges. PR-1004
DOCUMENTATION:
COMPATIBILITY:
- Gateway API version:
0.8.0
- NGINX version:
1.25.2
- Kubernetes version:
1.23+
CONTAINER IMAGES:
- Control plane:
ghcr.io/nginxinc/nginx-kubernetes-gateway:0.6.0
- Data plane:
ghcr.io/nginxinc/nginx-kubernetes-gateway/nginx:0.6.0
July 17, 2023
This release completes all v1beta1 Core features of the Gateway API resources. See the Gateway Compatibility doc
FEATURES:
- Support cross-namespace BackendRefs in HTTPRoutes. PR-806
- Support dynamic certificate rotation with Kubernetes Secrets. PR-807
- Support SupportedKinds in ListenerStatus. PR-809
BUG FIXES:
- Set redirect port in location header according to the scheme. PR-801
- Set proxy host header to the exact value of the request host header. PR-827
- Ensure Prefix matching requires trailing slash. PR-817
COMPATIBILITY:
- Gateway API version:
0.7.1
- NGINX version:
1.25.x
* - Kubernetes version:
1.21+
*the installation manifests use the nginx:1.25
image, which always points to the latest version of 1.25.x releases.
CONTAINER IMAGES:
- Control plane:
ghcr.io/nginxinc/nginx-kubernetes-gateway:0.5.0
July 6, 2023
This release brings:
- Support for more features of the Gateway API resources. See the Gateway Compatibility doc
- Support for running the conformance test suite. See the Conformance tests README.
- Defined Enhancement Proposal process for NGINX Kubernetes Gateway project. See the Enhancement Proposal README.
- Improved developer documentation for contributing to the project. See the Development quickstart.
- Architecture document that explains how NGINX Kubernetes Gateway works at a high level. See the Architecture doc
- Miscellaneous enhancements and bug fixes.
FEATURES:
- Allow empty sectionName in HTTPRoute parentRef. PR-626
- Exact PathMatch support for HTTPRoutes. PR-603
- Set ResolvedRefs condition to true on HTTPRoutes. PR-645
- Set gateway Pod IP as GatewayStatus address. PR-638
- Set Accepted condition type on Gateway status. PR-633
- Drop unrequired capabilities from containers. PR-677
- Update route condition where listener is not found. PR-675
- Set Gateway Programmed condition. PR-658
- AllowedRoutes support for Listeners. PR-721
- Support custom listener ports. PR-745
- Add support for RequestHeaderModifier for HTTPRouteRule objects. PR-717
- Add wildcard hostname support. PR-769
- Add Programmed status for listener. PR-786
- ReferenceGrant from Gateway to Secret. PR-791
BUG FIXES:
- Set upstream zone size to 512k. PR-609
- Allow empty HTTPRoute hostnames. PR-650
- Allow long server names. PR-651
- Add in required capabilities for writing TLS secrets. PR-718
- Fix binding to multiple listeners with empty section name. PR-730
- Add timeout and retry logic for finding NGINX PID file. PR-676
- Prioritize method matching. PR-789
- Add NewListenerInvalidRouteKinds condition. PR-799
- Set ResolvedRefs/False/InvalidKind condition on the HTTPRoute if a BackendRef specifies an unknown kind. PR-800
- Set GatewayClass status for ignored GatewayClasses. PR-804
DEPENDENCIES:
- Bump sigs.k8s.io/gateway-api from 0.7.0 to 0.7.1. PR-711
COMPATIBILITY:
- Gateway API version:
0.7.1
- NGINX version:
1.25.x
* - Kubernetes version:
1.21+
*the installation manifests use the nginx:1.25
image, which always points to the latest version of 1.25.x releases.
CONTAINER IMAGES:
- Control plane:
ghcr.io/nginxinc/nginx-kubernetes-gateway:0.4.0
April 24, 2023
This release brings:
- Extensive validation of Gateway API resources for robustness, security and correctness. See the validation doc for more details.
- Defined open-source development process for NGINX Kubernetes Gateway project. See the Issue lifecycle doc.
- Miscellaneous enhancements and bug fixes.
FEATURES:
- Report proper Conditions in status of HTTPRoute and Gateway when GatewayClass is invalid or doesn't exist. PR-576
- Implement NKG-specific field validation for GatewayClasses. PR-295
- Implement NKG-specific field validation for HTTPRoutes. PR-455
- Implement NKG-specific field validation for Gateways. PR-407
- Run webhook validation rules inside NKG control plane. PR-388
- Make NGINX error log visible in NGINX container logs. PR-319
- Always generate a root "/" location block in NGINX config to handle unmatched requests with 404 response. PR-356
BUG FIXES:
- Fix HTTPRoute section name related bugs. PR-568
- Fix Observed Generation for Gateway Status. PR-351
- Fix status for parentRef with invalid listener in HTTPRoute. PR-350
- Fix initContainer failure during pod restart. PR-337. Thanks to Tom Plant
- Generate default http server in NGINX if http listener exists in Gateway. PR-320
DEPENDENCIES:
- Bump sigs.k8s.io/gateway-api from 0.6.0 to 0.6.2. PR-471
COMPATIBILITY:
- Gateway API version:
0.6.2
- NGINX version:
1.23.x
* - Kubernetes version:
1.21+
*the installation manifests use the nginx:1.23
image, which always points to the latest version of 1.23.x releases.
CONTAINER IMAGES:
- Control plane:
ghcr.io/nginxinc/nginx-kubernetes-gateway:0.3.0
October 25, 2022
This release extends the support of the features of the Gateway API resources.
FEATURES:
- Support the Pod IPs instead of the virtual IP of a Service in the NGINX upstream. Additionally, NGINX Gateway Fabric will pick up any changes to the Pod IPs and update the NGINX upstream accordingly. PR-221
- Support the redirect filter in an HTTPRoute rule. PR-218
- Support weights in backendRefs in the HTTPRoute (traffic splitting). PR-261
- Support the ObservedGeneration field in the HTTPRoute status. PR-254
BUG FIXES:
- Do not require the namespace in the
--gateway-ctlr-name
cli argument. PR-235 - Ensure NGINX Kubernetes Gateway exits gracefully during shutdown. PR-250
- Handle query param names in case-sensitive way. PR-220
DEPENDENCIES:
COMPATIBILITY:
- Gateway API version:
0.5.1
- NGINX version:
1.21.x
* - Kubernetes version:
1.21+
*the installation manifests use the nginx:1.21
image, which always points to the latest version of 1.21.x releases.
CONTAINER IMAGES:
- Control plane:
ghcr.io/nginxinc/nginx-kubernetes-gateway:0.2.0
August 22, 2022
This is an initial release of NGINX Kubernetes Gateway project.
The release includes:
- A control plane agent (a Kubernetes controller) that updates date plane (NGINX) configuration based on the state of the resources in the cluster.
- Support for NGINX as a data plane.
- Kubernetes manifests for a Deployment with a single Pod with the control plane and data plane containers as well as Services to enable external connectivity to that Pod.
- Support for a subset of features of GatewayClass, Gateway and HTTPRoute resources (see the Gateway API Compatibility doc).
We expect that the architecture of NGINX Kubernetes Gateway -- the number of pods and containers and their interaction -- will change as the project evolves.
NGINX Kubernetes Gateway is ready for experimental usage. We included the docs as well as examples.
If you'd like to give us feedback or get involved, see the README to learn how.
COMPATIBILITY:
- Gateway API version:
0.5.0
- NGINX version:
1.21.3
- Kubernetes version:
1.19+
CONTAINER IMAGES:
- Control plane:
ghcr.io/nginxinc/nginx-kubernetes-gateway:0.1.0