Skip to content

Latest commit

 

History

History
335 lines (220 loc) · 17.3 KB

CHANGELOG.md

File metadata and controls

335 lines (220 loc) · 17.3 KB

Changelog

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.

Release 1.1.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:

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:

  • The 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

Release 1.0.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:

  • 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

Release 0.6.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

Release 0.5.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

Release 0.4.0

July 6, 2023

This release brings:

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

Release 0.3.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

Release 0.2.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:

  • Use the latest NGINX 1.23 image. PR-275
  • Bump sigs.k8s.io/gateway-api from 0.5.0 to 0.5.1 PR-251

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

Release 0.1.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