nginx-gateway-fabric

module
v2.0.0-...-aa1bc06 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 16, 2025 License: Apache-2.0

README

OpenSSF Scorecard FOSSA Status Continuous Integration Go Report Card codecov GitHub release (latest SemVer) Forum

NGINX Gateway Fabric

NGINX Gateway Fabric is an open-source project that provides an implementation of the Gateway API using NGINX as the data plane. The goal of this project is to implement the core Gateway APIs -- Gateway, GatewayClass, HTTPRoute, GRPCRoute, TCPRoute, TLSRoute, and UDPRoute -- to configure an HTTP or TCP/UDP load balancer, reverse-proxy, or API gateway for applications running on Kubernetes. NGINX Gateway Fabric supports a subset of the Gateway API.

For a list of supported Gateway API resources and features, see the Gateway API Compatibility doc.

Learn about our design principles and architecture.

NGINX Gateway Fabric uses NGINX Agent to configure NGINX.

Getting Started

  1. Get started using a kind cluster.
  2. Install NGINX Gateway Fabric.
  3. Deploy various examples.
  4. Follow instructions for common use cases such as routing and securing traffic, or monitoring your cluster.

You can find the comprehensive NGINX Gateway Fabric user documentation on the NGINX Documentation website.

NGINX Gateway Fabric Releases

We publish NGINX Gateway Fabric releases on GitHub. See our releases page.

The latest release is 2.1.0.

The edge version is useful for experimenting with new features that are not yet published in a release. To use, choose the edge version built from the latest commit from the main branch.

The table below summarizes the options regarding the images, manifests, documentation and examples and gives your links to the correct versions:

Version Description Installation Manifests Documentation and Examples
Latest release For production use Manifests. Documentation. Examples.
Edge For experimental use and latest features Manifests. Examples.
Versioning

NGF uses semantic versioning for its releases. For more information, see https://semver.org.

Major version zero (0.Y.Z) is reserved for development, anything MAY change at any time. The public API is not stable.

Release Planning and Development

The features that will go into the next release are reflected in the corresponding milestone. Refer to the Issue Lifecycle document for information on issue creation and assignment to releases.

Technical Specifications

The following table lists the software versions NGINX Gateway Fabric supports.

NGINX Gateway Fabric Gateway API Kubernetes NGINX OSS NGINX Plus NGINX Agent
Edge 1.3.0 1.25+ 1.29.1 R35 v3.2.1
2.1.0 1.3.0 1.25+ 1.29.1 R35 v3.2.1
2.0.2 1.3.0 1.25+ 1.28.0 R34 v3.0.1
2.0.1 1.3.0 1.25+ 1.28.0 R34 v3.0.1
2.0.0 1.3.0 1.25+ 1.28.0 R34 v3.0.0
1.6.2 1.2.1 1.25+ 1.27.4 R33 ---
1.6.1 1.2.1 1.25+ 1.27.4 R33 ---
1.6.0 1.2.1 1.25+ 1.27.3 R33 ---
1.5.1 1.2.0 1.25+ 1.27.2 R33 ---
1.5.0 1.2.0 1.25+ 1.27.2 R33 ---
1.4.0 1.1.0 1.25+ 1.27.1 R32 ---
1.3.0 1.1.0 1.25+ 1.27.0 R32 ---
1.2.0 1.0.0 1.23+ 1.25.4 R31 ---
1.1.0 1.0.0 1.23+ 1.25.3 n/a ---
1.0.0 0.8.1 1.23+ 1.25.2 n/a ---

SBOM (Software Bill of Materials)

We generate SBOMs for the binaries and the Docker image.

Binaries

The SBOMs for the binaries are available in the releases page. The SBOMs are generated using syft and are available in SPDX format.

Docker Images

The SBOM for the Docker image is available in the GitHub Container repository. The SBOM is generated using syft and stored as an attestation in the image manifest.

For example to retrieve the SBOM for linux/amd64 and analyze it using grype you can run the following command:

docker buildx imagetools inspect ghcr.io/nginx/nginx-gateway-fabric:edge --format '{{ json (index .SBOM "linux/amd64").SPDX }}' | grype

Troubleshooting

For troubleshooting help, see the Troubleshooting document.

Contacts

We’d like to hear your feedback! If you experience issues with our Gateway Controller, please open a bug in GitHub. If you have any suggestions or enhancement requests, please open an idea on GitHub discussions. You can contact us directly on the NGINX Community Forum.

Community Meetings

Every Tuesday at 9:30AM Pacific / 5:30PM GMT

For the meeting link, updates, agenda, and meeting notes, check the calendar below:

NGINX Gateway Fabric Meeting Calendar

If you have a use case for NGINX Gateway Fabric that the project can't quite meet yet, bugs, problems, success stories, or just want to be more involved with the project, come by and say hi!

Contributing

Please read our Contributing guide if you'd like to contribute to the project.

Support and NGINX Plus

If your team needs dedicated support for NGINX Gateway Fabric in your environment, or you would like to leverage our advanced NGINX Plus features, you can reach out here.

To try NGINX Gateway Fabric with NGINX Plus, you can start your free 30-day trial, then follow the installation guide for installing with NGINX Plus.

Directories

Path Synopsis
Package apis stores the API definitions for NGINX Gateway Fabric configuration.
Package apis stores the API definitions for NGINX Gateway Fabric configuration.
v1alpha1
Package v1alpha1 contains API Schema definitions for the gateway.nginx.org API group.
Package v1alpha1 contains API Schema definitions for the gateway.nginx.org API group.
v1alpha2
Package v1alpha2 contains API Schema definitions for the gateway.nginx.org API group.
Package v1alpha2 contains API Schema definitions for the gateway.nginx.org API group.
cmd
gateway command
internal
controller
Package controller contains all the packages that relate to the controller implementation of NGF.
Package controller contains all the packages that relate to the controller implementation of NGF.
controller/controllerfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
controller/licensing/licensingfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
controller/nginx/agent
Package agent contains the functions for sending nginx configuration to the agent.
Package agent contains the functions for sending nginx configuration to the agent.
controller/nginx/agent/agentfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
controller/nginx/agent/broadcast
Package broadcast contains the functions for creating a broadcaster to send updates to consumers.
Package broadcast contains the functions for creating a broadcaster to send updates to consumers.
controller/nginx/agent/broadcast/broadcastfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
controller/nginx/agent/grpc
Package grpc contains the functionality for the gRPC server for communicating with the nginx agent.
Package grpc contains the functionality for the gRPC server for communicating with the nginx agent.
controller/nginx/agent/grpc/context
Package context contains the functions for storing extra information in the gRPC context.
Package context contains the functions for storing extra information in the gRPC context.
controller/nginx/agent/grpc/filewatcher
Package filewatcher contains the functions to watch for TLS file updates for the gRPC server.
Package filewatcher contains the functions to watch for TLS file updates for the gRPC server.
controller/nginx/agent/grpc/grpcfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
controller/nginx/agent/grpc/interceptor
Package interceptor contains the middleware for intercepting an RPC call.
Package interceptor contains the middleware for intercepting an RPC call.
controller/nginx/agent/grpc/messenger
Package messenger provides a wrapper around a gRPC stream with the nginx agent.
Package messenger provides a wrapper around a gRPC stream with the nginx agent.
controller/nginx/agent/grpc/messenger/messengerfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
controller/nginx/config/configfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
controller/nginx/config/policies/policiesfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
controller/nginx/config/validation
Package validation includes validators to validate values that will propagate to the NGINX configuration.
Package validation includes validators to validate values that will propagate to the NGINX configuration.
controller/provisioner
Package provisioner contains the functions for deploying an instance of nginx.
Package provisioner contains the functions for deploying an instance of nginx.
controller/provisioner/openshift/openshiftfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
controller/provisioner/provisionerfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
controller/sort
Package sort provides utilities for sorting Kubernetes resources.
Package sort provides utilities for sorting Kubernetes resources.
controller/state/dataplane
Package dataplane translates Graph representation of the cluster state into an intermediate representation of data plane configuration.
Package dataplane translates Graph representation of the cluster state into an intermediate representation of data plane configuration.
controller/state/graph
Package graph translates the cluster state (Gateway API and Kubernetes resources) into a graph-like representation, for which: - Resources are validated.
Package graph translates the cluster state (Gateway API and Kubernetes resources) into a graph-like representation, for which: - Resources are validated.
controller/state/resolver/resolverfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
controller/state/statefakes
Code generated by counterfeiter.
Code generated by counterfeiter.
controller/state/validation/validationfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
controller/status/statusfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
controller/telemetry
Package telemetry is responsible for collecting and sending product telemetry data.
Package telemetry is responsible for collecting and sending product telemetry data.
controller/telemetry/telemetryfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
framework
Package framework contains general packages for building the controller.
Package framework contains general packages for building the controller.
framework/controller
Package controller is responsible for creating and registering controllers for sigs.k8s.io/controller-runtime/pkg/manager.Manager.
Package controller is responsible for creating and registering controllers for sigs.k8s.io/controller-runtime/pkg/manager.Manager.
framework/controller/controllerfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
framework/events/eventsfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
framework/file/filefakes
Code generated by counterfeiter.
Code generated by counterfeiter.
framework/helpers
Package helpers contains helper functions
Package helpers contains helper functions
framework/kubernetes/kubernetesfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
framework/runnables
Package runnables provides helper types for creating runnables for the controller-runtime manager when leader election is enabled.
Package runnables provides helper types for creating runnables for the controller-runtime manager when leader election is enabled.
framework/types
Package types contains types that are shared by the provisioner and static modes.
Package types contains types that are shared by the provisioner and static modes.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL