Skip to content

Update docs for release #1189

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Oct 24, 2023
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
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
6 changes: 4 additions & 2 deletions docs/developer/release-process.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,13 @@ To create a new release, follow these steps:
8. Prepare and merge a PR into the main branch to update the [README](/README.md) to include the information about the
latest release and also the [changelog](/CHANGELOG.md).
9. Close the issue created in Step 1.
10. Submit the `conformance-profile.yaml` artifact from the release to the [Gateway API repo](https://github.com./kubernetes-sigs/gateway-api/tree/main/conformance/reports).
10. Ensure that the [associated milestone](https://github.com./nginxinc/nginx-gateway-fabric/milestones) is closed.
11. Verify that published artifacts in the release can be installed properly.
12. Submit the `conformance-profile.yaml` artifact from the release to the [Gateway API repo](https://github.com./kubernetes-sigs/gateway-api/tree/main/conformance/reports).
- Create a fork of the repository
- Name the file `nginxinc-nginx-gateway-fabric.yaml` and set `gatewayAPIVersion` in the file to the
supported version by NGF. Also update the site source if necessary (see following example).
- Open a PR. [Example](https://github.com./kubernetes-sigs/gateway-api/pull/2368)
- Open a PR. [Example](https://github.com./kubernetes-sigs/gateway-api/pull/2514)
If it's your first time submitting a PR, you will need to sign a CLA using F5, Inc. as the organization.

### Patch Release
Expand Down
35 changes: 10 additions & 25 deletions docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,21 +34,6 @@ page.
> It is possible to run NGF in a different Namespace, although you'll need to make modifications to the installation
> manifests.

1. Clone the repo and change into the `nginx-gateway-fabric` directory:

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

1. Check out the latest tag (unless you are installing the `edge` version from the `main` branch):

```shell
git fetch --tags
latestTag=$(git describe --tags `git rev-list --tags --max-count=1`)
git checkout $latestTag
```

1. Install the Gateway API resources from the standard channel (the CRDs and the validating webhook):

```shell
Expand All @@ -58,13 +43,13 @@ page.
1. Deploy the NGINX Gateway Fabric CRDs:

```shell
kubectl apply -f deploy/manifests/crds
kubectl apply -f https://github.com./nginxinc/nginx-gateway-fabric/releases/download/v1.0.0/crds.yaml
```

1. Deploy the NGINX Gateway Fabric:

```shell
kubectl apply -f deploy/manifests/nginx-gateway.yaml
kubectl apply -f https://github.com./nginxinc/nginx-gateway-fabric/releases/download/v1.0.0/nginx-gateway.yaml
```

1. Confirm the NGINX Gateway Fabric is running in `nginx-gateway` namespace:
Expand Down Expand Up @@ -101,7 +86,7 @@ Service sets the status field to the IP address and/or Hostname. If no Service e
Create a Service with type `NodePort`:

```shell
kubectl apply -f deploy/manifests/service/nodeport.yaml
kubectl apply -f https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/v1.0.0/deploy/manifests/service/nodeport.yaml
```

A `NodePort` Service will randomly allocate one port on every Node of the cluster. To access NGINX Gateway Fabric,
Expand All @@ -114,7 +99,7 @@ Create a Service with type `LoadBalancer` using the appropriate manifest for you
- For GCP or Azure:

```shell
kubectl apply -f deploy/manifests/service/loadbalancer.yaml
kubectl apply -f https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/v1.0.0/deploy/manifests/service/loadbalancer.yaml
```

Lookup the public IP of the load balancer, which is reported in the `EXTERNAL-IP` column in the output of the
Expand All @@ -129,7 +114,7 @@ Create a Service with type `LoadBalancer` using the appropriate manifest for you
- For AWS:

```shell
kubectl apply -f deploy/manifests/service/loadbalancer-aws-nlb.yaml
kubectl apply -f https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/v1.0.0/deploy/manifests/service/loadbalancer-aws-nlb.yaml
```

In AWS, the NLB DNS name will be reported by Kubernetes in lieu of a public IP in the `EXTERNAL-IP` column. To get the
Expand Down Expand Up @@ -173,15 +158,15 @@ Create a Service with type `LoadBalancer` using the appropriate manifest for you
Run the following command to upgrade the NGINX Gateway Fabric CRDs:

```shell
kubectl apply -f deploy/manifests/crds
kubectl apply -f https://github.com./nginxinc/nginx-gateway-fabric/releases/download/v1.0.0/crds.yaml
```

1. Upgrade NGINX Gateway Fabric Deployment

Run the following command to upgrade NGINX Gateway Fabric:

```shell
kubectl apply -f deploy/manifests/nginx-gateway.yaml
kubectl apply -f https://github.com./nginxinc/nginx-gateway-fabric/releases/download/v1.0.0/nginx-gateway.yaml
```

### Upgrade NGINX Gateway Fabric using Helm
Expand All @@ -202,7 +187,7 @@ being performed on NGF), you may need to configure delayed termination on the NG

#### Configure Delayed Termination Using Manifests

Edit the `deploy/manifests/nginx-gateway.yaml` to include the following:
Edit the `nginx-gateway.yaml` to include the following:

1. Add `lifecycle` prestop hooks to both the nginx and the nginx-gateway container definitions:

Expand Down Expand Up @@ -250,11 +235,11 @@ To configure delayed termination on the NGF Pod when the deployment method is He
1. Uninstall the NGINX Gateway Fabric:

```shell
kubectl delete -f deploy/manifests/nginx-gateway.yaml
kubectl delete -f https://github.com./nginxinc/nginx-gateway-fabric/releases/download/v1.0.0/nginx-gateway.yaml
```

```shell
kubectl delete -f deploy/manifests/crds
kubectl delete -f https://github.com./nginxinc/nginx-gateway-fabric/releases/download/v1.0.0/crds.yaml
```

1. Uninstall the Gateway API resources from the standard channel (the CRDs and the validating webhook):
Expand Down