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.
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:
- The 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:
- The 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:
- The 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:
- The 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:
- The 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:
- The 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:
- The 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