Skip to content

Latest commit

 

History

History
558 lines (374 loc) · 32.6 KB

CHANGELOG.md

File metadata and controls

558 lines (374 loc) · 32.6 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.5.0

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:

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:

  • NGINX Plus was updated to R33. 2760
  • Update to v1.2.0 of the Gateway API. 2694

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

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

Release 1.3.0

June 11, 2024

FEATURES:

  • Support for GRPCRoute:
    • Exact Method Matching, Header Matching, and Listener Hostname Matching. 1835
    • RequestHeaderModifier Filter. 1909
    • ResponseHeaderModifier filter. 1983
  • 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

Release 1.2.0

March 21, 2024

FEATURES:

ENHANCEMENTS:

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

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:

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

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

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

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

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

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

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

  • 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