Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,47 @@ This document includes a curated changelog for each release. We also publish a c
a [GitHub release](https://github.com/nginxinc/nginx-gateway-fabric/releases), which, by contrast, is auto-generated
and includes links to all PRs that went into the release.

## 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](https://github.com/nginxinc/nginx-gateway-fabric/pull/1070)

FEATURES:

- Add readiness probe. [PR-1047](https://github.com/nginxinc/nginx-gateway-fabric/pull/1047)
- Support horizontal scaling. [PR-1048](https://github.com/nginxinc/nginx-gateway-fabric/pull/1048)
- Add NGINX reload metrics. [PR-1049](https://github.com/nginxinc/nginx-gateway-fabric/pull/1049)
- Retry status updater on failures. [PR-1062](https://github.com/nginxinc/nginx-gateway-fabric/pull/1062)
- Add event processing histogram metric. [PR-1134](https://github.com/nginxinc/nginx-gateway-fabric/pull/1134)
- Set Service address in Gateway Status. [PR-1141](https://github.com/nginxinc/nginx-gateway-fabric/pull/1141)

BUG FIXES:

- Optimize default NGINX config. [PR-1040](https://github.com/nginxinc/nginx-gateway-fabric/pull/1040)
- Ensure NGINX reload occurs. [PR-1033](https://github.com/nginxinc/nginx-gateway-fabric/pull/1033)
- Fix failure to recover if conf files are unexpectedly removed. [PR-1132](https://github.com/nginxinc/nginx-gateway-fabric/pull/1132)
- Only update a resource's status if it has changed. [PR-1151](https://github.com/nginxinc/nginx-gateway-fabric/pull/1151)

DOCUMENTATION:

- Non-functional testing guides and results. [Link](https://github.com/nginxinc/nginx-gateway-fabric/tree/main/tests)

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*
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# variables that should not be overridden by the user
VERSION = edge
VERSION = 1.0.0
GIT_COMMIT = $(shell git rev-parse HEAD || echo "unknown")
DATE = $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
MANIFEST_DIR = $(shell pwd)/deploy/manifests
Expand Down
10 changes: 4 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,11 @@ NGINX Gateway Fabric is an open-source project that provides an implementation o
the [Gateway API](https://gateway-api.sigs.k8s.io/) using [NGINX](https://nginx.org/) as the data plane. The goal of
this project is to implement the core Gateway APIs -- `Gateway`, `GatewayClass`, `HTTPRoute`, `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 is currently under development and supports a subset of the Gateway API.
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](docs/gateway-api-compatibility.md) doc.

> Warning: This project is actively in development (beta feature state) and should not be deployed in a
> production environment. All APIs, SDKs, designs, and packages are subject to change.

Learn about our [design principles](/docs/developer/design-principles.md) and [architecture](/docs/architecture.md).

## Getting Started
Expand All @@ -32,7 +29,7 @@ Learn about our [design principles](/docs/developer/design-principles.md) and [a
We publish NGINX Gateway Fabric releases on GitHub. See
our [releases page](https://github.com/nginxinc/nginx-gateway-fabric/releases).

The latest release is [0.6.0](https://github.com/nginxinc/nginx-gateway-fabric/releases/tag/v0.6.0).
The latest release is [1.0.0](https://github.com/nginxinc/nginx-gateway-fabric/releases/tag/v1.0.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](https://github.com/nginxinc/nginx-gateway-fabric/commits/main)
Expand All @@ -43,7 +40,7 @@ to the correct versions:

| Version | Description | Installation Manifests | Documentation and Examples |
|----------------|------------------------------------------|---------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Latest release | For experimental use | [Manifests](https://github.com/nginxinc/nginx-gateway-fabric/tree/v0.6.0/deploy). | [Documentation](https://github.com/nginxinc/nginx-gateway-fabric/tree/v0.6.0/docs). [Examples](https://github.com/nginxinc/nginx-gateway-fabric/tree/v0.6.0/examples). |
| Latest release | For production use | [Manifests](https://github.com/nginxinc/nginx-gateway-fabric/tree/v1.0.0/deploy). | [Documentation](https://github.com/nginxinc/nginx-gateway-fabric/tree/v1.0.0/docs). [Examples](https://github.com/nginxinc/nginx-gateway-fabric/tree/v1.0.0/examples). |
| Edge | For experimental use and latest features | [Manifests](https://github.com/nginxinc/nginx-gateway-fabric/tree/main/deploy). | [Documentation](https://github.com/nginxinc/nginx-gateway-fabric/tree/main/docs). [Examples](https://github.com/nginxinc/nginx-gateway-fabric/tree/main/examples). |

### Versioning
Expand All @@ -66,6 +63,7 @@ The following table lists the software versions NGINX Gateway Fabric supports.
| NGINX Gateway Fabric | Gateway API | Kubernetes | NGINX OSS |
|--------------------------|-------------|------------|-----------|
| Edge | 0.8.1 | 1.23+ | 1.25.2 |
| 1.0.0 | 0.8.1 | 1.23+ | 1.25.2 |
| 0.6.0 | 0.8.0 | 1.23+ | 1.25.2 |
| 0.5.0 | 0.7.1 | 1.21+ | 1.25.x * |
| 0.4.0 | 0.7.1 | 1.21+ | 1.25.x * |
Expand Down
2 changes: 1 addition & 1 deletion conformance/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
NGF_TAG = edge
NGF_TAG = 1.0.0
NGF_PREFIX = nginx-gateway-fabric
NGINX_IMAGE_NAME = $(NGF_PREFIX)/nginx
GW_API_VERSION ?= 0.8.1
Expand Down
2 changes: 1 addition & 1 deletion conformance/provisioner/provisioner.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ spec:
spec:
serviceAccountName: nginx-gateway-provisioner
containers:
- image: ghcr.io/nginxinc/nginx-gateway-fabric:edge
- image: ghcr.io/nginxinc/nginx-gateway-fabric:1.0.0
imagePullPolicy: Always
name: nginx-gateway-provisioner
securityContext:
Expand Down
10 changes: 5 additions & 5 deletions conformance/provisioner/static-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ metadata:
labels:
app.kubernetes.io/name: nginx-gateway
app.kubernetes.io/instance: nginx-gateway
app.kubernetes.io/version: "edge"
app.kubernetes.io/version: "1.0.0"
spec:
replicas: 1
selector:
Expand Down Expand Up @@ -44,8 +44,8 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.name
image: ghcr.io/nginxinc/nginx-gateway-fabric:edge
imagePullPolicy: Always
image: ghcr.io/nginxinc/nginx-gateway-fabric:1.0.0
imagePullPolicy: IfNotPresent
name: nginx-gateway
ports:
- name: health
Expand Down Expand Up @@ -73,8 +73,8 @@ spec:
mountPath: /etc/nginx/secrets
- name: nginx-run
mountPath: /var/run/nginx
- image: ghcr.io/nginxinc/nginx-gateway-fabric/nginx:edge
imagePullPolicy: Always
- image: ghcr.io/nginxinc/nginx-gateway-fabric/nginx:1.0.0
imagePullPolicy: IfNotPresent
name: nginx
ports:
- containerPort: 80
Expand Down
6 changes: 3 additions & 3 deletions deploy/helm-chart/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ name: nginx-gateway-fabric
description: NGINX Gateway Fabric
type: application
version: 1.0.0
appVersion: "edge"
appVersion: 1.0.0
home: https://github.com/nginxinc/nginx-gateway-fabric
icon: https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/tree/main/deploy/helm-chart/chart-icon.png
icon: https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/tree/v1.0.0/deploy/helm-chart/chart-icon.png
sources:
- https://github.com/nginxinc/nginx-gateway-fabric/tree/main/deploy/helm-chart
- https://github.com/nginxinc/nginx-gateway-fabric/tree/v1.0.0/deploy/helm-chart
keywords:
- kubernetes
- gateway
Expand Down
8 changes: 4 additions & 4 deletions deploy/helm-chart/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ nginxGateway:
image:
## The NGINX Gateway Fabric image to use
repository: ghcr.io/nginxinc/nginx-gateway-fabric
tag: edge
pullPolicy: Always
tag: 1.0.0
pullPolicy: IfNotPresent

securityContext:
## Some environments may need this set to true in order for the control plane to successfully reload NGINX.
Expand All @@ -52,8 +52,8 @@ nginx:
## The NGINX image to use
image:
repository: ghcr.io/nginxinc/nginx-gateway-fabric/nginx
tag: edge
pullPolicy: Always
tag: 1.0.0
pullPolicy: IfNotPresent

## The lifecycle of the nginx container.
lifecycle: {}
Expand Down
20 changes: 10 additions & 10 deletions deploy/manifests/nginx-gateway.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ metadata:
labels:
app.kubernetes.io/name: nginx-gateway
app.kubernetes.io/instance: nginx-gateway
app.kubernetes.io/version: "edge"
app.kubernetes.io/version: "1.0.0"
annotations:
{}
---
Expand All @@ -24,7 +24,7 @@ metadata:
labels:
app.kubernetes.io/name: nginx-gateway
app.kubernetes.io/instance: nginx-gateway
app.kubernetes.io/version: "edge"
app.kubernetes.io/version: "1.0.0"
rules:
- apiGroups:
- ""
Expand Down Expand Up @@ -98,7 +98,7 @@ metadata:
labels:
app.kubernetes.io/name: nginx-gateway
app.kubernetes.io/instance: nginx-gateway
app.kubernetes.io/version: "edge"
app.kubernetes.io/version: "1.0.0"
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
Expand All @@ -117,7 +117,7 @@ metadata:
labels:
app.kubernetes.io/name: nginx-gateway
app.kubernetes.io/instance: nginx-gateway
app.kubernetes.io/version: "edge"
app.kubernetes.io/version: "1.0.0"
spec:
replicas: 1
selector:
Expand Down Expand Up @@ -156,8 +156,8 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.name
image: ghcr.io/nginxinc/nginx-gateway-fabric:edge
imagePullPolicy: Always
image: ghcr.io/nginxinc/nginx-gateway-fabric:1.0.0
imagePullPolicy: IfNotPresent
name: nginx-gateway
ports:
- name: metrics
Expand Down Expand Up @@ -187,8 +187,8 @@ spec:
mountPath: /etc/nginx/secrets
- name: nginx-run
mountPath: /var/run/nginx
- image: ghcr.io/nginxinc/nginx-gateway-fabric/nginx:edge
imagePullPolicy: Always
- image: ghcr.io/nginxinc/nginx-gateway-fabric/nginx:1.0.0
imagePullPolicy: IfNotPresent
name: nginx
ports:
- containerPort: 80
Expand Down Expand Up @@ -241,7 +241,7 @@ metadata:
labels:
app.kubernetes.io/name: nginx-gateway
app.kubernetes.io/instance: nginx-gateway
app.kubernetes.io/version: "edge"
app.kubernetes.io/version: "1.0.0"
spec:
controllerName: gateway.nginx.org/nginx-gateway-controller
---
Expand All @@ -254,7 +254,7 @@ metadata:
labels:
app.kubernetes.io/name: nginx-gateway
app.kubernetes.io/instance: nginx-gateway
app.kubernetes.io/version: "edge"
app.kubernetes.io/version: "1.0.0"
spec:
logging:
level: info
2 changes: 1 addition & 1 deletion deploy/manifests/service/loadbalancer-aws-nlb.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ metadata:
labels:
app.kubernetes.io/name: nginx-gateway
app.kubernetes.io/instance: nginx-gateway
app.kubernetes.io/version: "edge"
app.kubernetes.io/version: "1.0.0"
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: nlb
spec:
Expand Down
2 changes: 1 addition & 1 deletion deploy/manifests/service/loadbalancer.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ metadata:
labels:
app.kubernetes.io/name: nginx-gateway
app.kubernetes.io/instance: nginx-gateway
app.kubernetes.io/version: "edge"
app.kubernetes.io/version: "1.0.0"
spec:
externalTrafficPolicy: Local
type: LoadBalancer
Expand Down
2 changes: 1 addition & 1 deletion deploy/manifests/service/nodeport.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ metadata:
labels:
app.kubernetes.io/name: nginx-gateway
app.kubernetes.io/instance: nginx-gateway
app.kubernetes.io/version: "edge"
app.kubernetes.io/version: "1.0.0"
spec:
type: NodePort
selector:
Expand Down
8 changes: 4 additions & 4 deletions docs/building-the-images.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ installed on your machine:
1. Clone the repo and change into the `nginx-gateway-fabric` directory:

```shell
git clone https://github.com/nginxinc/nginx-gateway-fabric.git
git clone https://github.com/nginxinc/nginx-gateway-fabric.git --branch v1.0.0
cd nginx-gateway-fabric
```

Expand All @@ -39,13 +39,13 @@ installed on your machine:
```

Set the `PREFIX` variable to the name of the registry you'd like to push the image to. By default, the images will be
named `nginx-gateway-fabric:edge` and `nginx-gateway-fabric/nginx:edge`.
named `nginx-gateway-fabric:1.0.0` and `nginx-gateway-fabric/nginx:1.0.0`.

1. Push the images to your container registry:

```shell
docker push myregistry.example.com/nginx-gateway-fabric:edge
docker push myregistry.example.com/nginx-gateway-fabric/nginx:edge
docker push myregistry.example.com/nginx-gateway-fabric:1.0.0
docker push myregistry.example.com/nginx-gateway-fabric/nginx:1.0.0
```

Make sure to substitute `myregistry.example.com/nginx-gateway-fabric` with your registry.
4 changes: 2 additions & 2 deletions docs/guides/advanced-routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ and `coffee` applications share the same Gateway.
Begin by deploying the `coffee-v1` and `coffee-v2` applications:

```shell
kubectl apply -f https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/main/examples/advanced-routing/coffee.yaml
kubectl apply -f https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/v1.0.0/examples/advanced-routing/coffee.yaml
```

### Deploy the Gateway API Resources for the Coffee Applications
Expand Down Expand Up @@ -166,7 +166,7 @@ have their own set of rules, but will still attach to the same Gateway listener
### Deploy the Tea Applications

```shell
kubectl apply -f https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/main/examples/advanced-routing/tea.yaml
kubectl apply -f https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/v1.0.0/examples/advanced-routing/tea.yaml
```

### Deploy the HTTPRoute for the Tea Services
Expand Down
2 changes: 1 addition & 1 deletion docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ page.
1. Clone the repo and change into the `nginx-gateway-fabric` directory:

```shell
git clone https://github.com/nginxinc/nginx-gateway-fabric.git
git clone https://github.com/nginxinc/nginx-gateway-fabric.git --branch v1.0.0
cd nginx-gateway-fabric
```

Expand Down
1 change: 1 addition & 0 deletions examples/http-header-filter/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ Headers:
header 'My-cool-header' is 'my-client-value, this-is-an-appended-value'
header 'My-Overwrite-Header' is 'this-is-the-only-value'
header 'Host' is 'echo.example.com:$GW_PORT'
header 'X-Forwarded-For' is '$GW_IP'
header 'Connection' is 'close'
header 'Accept' is '*/*'
```