Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
befab04
feat: Update NGINX Gateway Fabric information architecture
ADubhlaoich May 26, 2025
a823242
feat: Additional IA changes
ADubhlaoich May 26, 2025
9840067
Merge branch 'ngf-release-2.0' into ngf/use-case-ia
ADubhlaoich May 29, 2025
9898aea
Merge branch 'ngf-release-2.0' into ngf/use-case-ia
ADubhlaoich May 29, 2025
f6fc660
feat: Fix file references post merge resolution
ADubhlaoich May 29, 2025
4bd66ed
feat: Next steps for common use cases
ADubhlaoich May 29, 2025
3586349
Merge branch 'ngf-release-2.0' into ngf/use-case-ia
ADubhlaoich May 30, 2025
0d876be
feat: Update banner link for 2.0 IA changes
ADubhlaoich May 30, 2025
b16d532
feat: Update NGF 1.6 doc links to be old code repository branch
ADubhlaoich May 30, 2025
872844c
feat: Make upgrade a standalone topic, consolidate existing information
ADubhlaoich May 30, 2025
c065e46
Apply suggestions from code review
ADubhlaoich May 30, 2025
a05d10c
feat: Fix prometheus documentation link
ADubhlaoich May 30, 2025
8e690fb
fix: "definitions" typo at top of document
ADubhlaoich May 30, 2025
93be9e9
feat: Imperative sentence structure in Gateway deployment headings
ADubhlaoich May 30, 2025
9689e86
Merge branch 'ngf-release-2.0' into ngf/use-case-ia
ADubhlaoich Jun 3, 2025
729c169
feat: Remove redundant shell variable information
ADubhlaoich Jun 3, 2025
e26ca30
feat: Remove additional unnecessary shell instructions
ADubhlaoich Jun 3, 2025
857e322
feat: Move external IP note for NGF beside shell variable instructions
ADubhlaoich Jun 3, 2025
7a7a71c
feat: Implement feedback, update frontmatter of files and remove hrs
ADubhlaoich Jun 4, 2025
3c73dce
feat: Adjust phrasing of dashboard sentence, add note to upgrade
ADubhlaoich Jun 4, 2025
25e614c
feat: Improve phrasing of some upgrade instructions, reduce text
ADubhlaoich Jun 4, 2025
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
4 changes: 2 additions & 2 deletions _banners/ngf-2.0-release.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{{< banner "notice" "NGINX Gateway Fabric 2.0 is now available" >}}

NGINX Gateway Fabric 2.0 has released! Follow [this guide]({{< ref "/ngf/install/upgrade-2.0" >}}) to upgrade from 1.x to 2.0.
NGINX Gateway Fabric 2.0 has released! Follow [these instructions]({{< ref "/ngf/install/upgrade-version.md#upgrade-from-v1x-to-v2x" >}}) to upgrade from 1.x to 2.0.

For 1.x, checkout [an older version](https://github.com/nginx/nginx-gateway-fabric/tree/release-1.6) of documentation.
For 1.x, checkout [an older version]({{< ref "/ngf/install/upgrade-version.md#access-nginx-gateway-fabric-1x-documentation" >}}) of documentation.

{{< /banner >}}
12 changes: 5 additions & 7 deletions content/includes/ngf/installation/helm/pulling-the-chart.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,9 @@
docs: "DOCS-1439"
---

Pull the latest stable release of the NGINX Gateway Fabric chart:
```shell
helm pull oci://ghcr.io/nginx/charts/nginx-gateway-fabric --untar
cd nginx-gateway-fabric
```

```shell
helm pull oci://ghcr.io/nginx/charts/nginx-gateway-fabric --untar
cd nginx-gateway-fabric
```

If you want the latest version from the **main** branch, add `--version 0.0.0-edge` to your pull command.
For the latest version from the **main** branch, add _--version 0.0.0-edge_ to your pull command.
154 changes: 0 additions & 154 deletions content/ngf/install/helm.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ docs: DOCS-1430

Learn how to install, upgrade, and uninstall NGINX Gateway Fabric in a Kubernetes cluster using Helm.

---

## Before you begin

Expand Down Expand Up @@ -44,15 +43,12 @@ To complete this guide, you will need:

</details>

---

## Deploy NGINX Gateway Fabric

### Installing the Gateway API resources

{{< include "/ngf/installation/install-gateway-api-resources.md" >}}

---

### Install from the OCI registry

Expand Down Expand Up @@ -94,8 +90,6 @@ To wait for the Deployment to be ready, you can either add the `--wait` flag to
kubectl wait --timeout=5m -n nginx-gateway deployment/ngf-nginx-gateway-fabric --for=condition=Available
```

---

### Install from sources {#install-from-sources}

If you prefer to install directly from sources, instead of through the OCI helm registry, use the following steps.
Expand Down Expand Up @@ -136,8 +130,6 @@ To wait for the Deployment to be ready, you can either add the `--wait` flag to
kubectl wait --timeout=5m -n nginx-gateway deployment/ngf-nginx-gateway-fabric --for=condition=Available
```

---

### Custom installation options

#### Service type
Expand All @@ -150,8 +142,6 @@ To use a NodePort Service instead:
helm install ngf oci://ghcr.io/nginx/charts/nginx-gateway-fabric --create-namespace -n nginx-gateway --set nginx.service.type=NodePort
```

---

#### Experimental features

We support a subset of the additional features provided by the Gateway API experimental channel. To enable the
Expand All @@ -163,159 +153,15 @@ helm install ngf oci://ghcr.io/nginx/charts/nginx-gateway-fabric --create-namesp

{{< note >}} Requires the Gateway APIs installed from the experimental channel. {{< /note >}}

---

#### Examples

You can find several examples of configuration options of the `values.yaml` file in the [helm examples](https://github.com/nginx/nginx-gateway-fabric/tree/v{{< version-ngf >}}/examples/helm) directory.

---

### Access NGINX Gateway Fabric

{{< include "/ngf/installation/expose-nginx-gateway-fabric.md" >}}

---

## Upgrade NGINX Gateway Fabric

{{< important >}} NGINX Plus users that are upgrading from version 1.4.0 to 1.5.x need to install an NGINX Plus JWT
Secret before upgrading. Follow the steps in the [Before you begin](#before-you-begin) section to create the Secret. If you use a different name than the default `nplus-license` name, specify the Secret name by setting `--set nginx.usage.secretName=<secret-name>` when running `helm upgrade`. {{< /important >}}

{{< tip >}} For guidance on zero downtime upgrades, see the [Delay Pod Termination](#configure-delayed-pod-termination-for-zero-downtime-upgrades) section below. {{< /tip >}}

{{< note >}} To upgrade from version 1.x to 2.x, please refer to this [guide]({{< ref "/ngf/install/upgrade-2.0.md" >}}). {{< /note >}}

To upgrade NGINX Gateway Fabric and get the latest features and improvements, take the following steps:

---

### Upgrade Gateway resources

{{< include "/ngf/installation/upgrade-api-resources.md" >}}

---

### Upgrade NGINX Gateway Fabric CRDs

Helm's upgrade process does not automatically upgrade the NGINX Gateway Fabric CRDs (Custom Resource Definitions).

To upgrade the CRDs, take the following steps:

1. {{< include "/ngf/installation/helm/pulling-the-chart.md" >}}

2. Upgrade the CRDs:

```shell
kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/crds.yaml
```

{{<note>}}Ignore the following warning, as it is expected.{{</note>}}

```text
Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply.
```

---

### Upgrade NGINX Gateway Fabric release

{{< important >}} NGINX Plus users that are upgrading from version 1.4.0 to 1.5.x need to install an NGINX Plus JWT
Secret before upgrading. Follow the steps in the [Before you begin](#before-you-begin) section to create the Secret. If you use a different name than the default `nplus-license` name, specify the Secret name by setting `--set nginx.usage.secretName=<secret-name>` when running `helm upgrade`. {{< /important >}}

There are two possible ways to upgrade NGINX Gateway Fabric. You can either upgrade from the OCI registry, or download the chart and upgrade from the source.

---

#### Upgrade from the OCI registry

To upgrade to the latest stable release of NGINX Gateway Fabric, run:

```shell
helm upgrade ngf oci://ghcr.io/nginx/charts/nginx-gateway-fabric -n nginx-gateway
```

If needed, replace `ngf` with your chosen release name.

---

#### Upgrade from sources

{{< include "/ngf/installation/helm/pulling-the-chart.md" >}}

To upgrade, run: the following command:

```shell
helm upgrade ngf . -n nginx-gateway
```

If needed, replace `ngf` with your chosen release name.

---

## How to upgrade from NGINX OSS to NGINX Plus

To upgrade from NGINX OSS to NGINX Plus, update the Helm command to include the necessary values for Plus:

{{< note >}} If applicable, replace the F5 Container registry `private-registry.nginx.com` with your internal registry for your NGINX Plus image, and replace `nginx-plus-registry-secret` with your Secret name containing the registry credentials.{{< /note >}}

{{< important >}} Ensure that you [Create the required JWT Secrets]({{< ref "/ngf/install/nginx-plus.md" >}}) before installing.{{< /important >}}

```shell
helm upgrade ngf oci://ghcr.io/nginx/charts/nginx-gateway-fabric --set nginx.image.repository=private-registry.nginx.com/nginx-gateway-fabric/nginx-plus --set nginx.plus=true --set nginx.imagePullSecret=nginx-plus-registry-secret -n nginx-gateway
```

If needed, replace `ngf` with your chosen release name.

---

## Delay pod termination for zero downtime upgrades {#configure-delayed-pod-termination-for-zero-downtime-upgrades}

{{< include "/ngf/installation/delay-pod-termination/delay-pod-termination-overview.md" >}}

Follow these steps to configure delayed pod termination:

1. Open the `values.yaml` for editing.

1. **Add delayed shutdown hooks**:

- In the `values.yaml` file, add `lifecycle: preStop` hooks to both the `nginx` and `nginx-gateway` container definitions. These hooks instruct the containers to delay their shutdown process, allowing time for connections to close gracefully. Update the `sleep` value to what works for your environment.

```yaml
nginxGateway:
<...>
lifecycle:
preStop:
exec:
command:
- /usr/bin/gateway
- sleep
- --duration=40s # This flag is optional, the default is 30s

nginx:
<...>
lifecycle:
preStop:
exec:
command:
- /bin/sleep
- "40"
```

1. **Set the termination grace period**:

- {{< include "/ngf/installation/delay-pod-termination/termination-grace-period.md">}}

1. Save the changes.

{{<see-also>}}
For additional information on configuring and understanding the behavior of containers and pods during their lifecycle, refer to the following Kubernetes documentation:

- [Container Lifecycle Hooks](https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks)
- [Pod Lifecycle](https://kubernetes.io/docs/concepts/workloads/Pods/Pod-lifecycle/#Pod-termination)

{{</see-also>}}

## Uninstall NGINX Gateway Fabric

Follow these steps to uninstall NGINX Gateway Fabric and Gateway API from your Kubernetes cluster:
Expand Down
96 changes: 0 additions & 96 deletions content/ngf/install/manifests.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@ docs: DOCS-1429

Learn how to install, upgrade, and uninstall NGINX Gateway Fabric using Kubernetes manifests.

---

## Before you begin

To complete this guide, you'll need to install:
Expand Down Expand Up @@ -43,20 +41,14 @@ To complete this guide, you'll need to install:

</details>

---

## Deploy NGINX Gateway Fabric

Deploying NGINX Gateway Fabric with Kubernetes manifests takes only a few steps. With manifests, you can configure your deployment exactly how you want. Manifests also make it easy to replicate deployments across environments or clusters, ensuring consistency.

---

### Install the Gateway API resources

{{< include "/ngf/installation/install-gateway-api-resources.md" >}}

---

### Deploy the NGINX Gateway Fabric CRDs

#### Stable release
Expand All @@ -71,8 +63,6 @@ kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{
kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/main/deploy/crds.yaml
```

---

### Deploy NGINX Gateway Fabric

{{< note >}} By default, NGINX Gateway Fabric is installed in the **nginx-gateway** namespace. You can deploy in another namespace by modifying the manifest files. {{< /note >}}
Expand Down Expand Up @@ -179,8 +169,6 @@ kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{

{{</tabs>}}

---

### Verify the Deployment

To confirm that NGINX Gateway Fabric is running, check the pods in the `nginx-gateway` namespace:
Expand All @@ -196,94 +184,10 @@ NAME READY STATUS RESTARTS AGE
nginx-gateway-5d4f4c7db7-xk2kq 1/1 Running 0 112s
```

---

### Access NGINX Gateway Fabric

{{< include "/ngf/installation/expose-nginx-gateway-fabric.md" >}}

---

## Upgrade NGINX Gateway Fabric

{{< important >}} NGINX Plus users that are upgrading from version 1.4.0 to 1.5.x need to install an NGINX Plus JWT
Secret before upgrading. Follow the steps in the [Before you begin](#before-you-begin) section to create the Secret, which is referenced in the updated deployment manifest for the newest version. {{< /important >}}

{{< tip >}} For guidance on zero downtime upgrades, see the [Delay Pod Termination](#configure-delayed-pod-termination-for-zero-downtime-upgrades) section. {{</ tip >}}

{{< note >}} To upgrade from version 1.x to 2.x, please refer to this [guide]({{< ref "/ngf/install/upgrade-2.0.md" >}}). {{< /note >}}

To upgrade NGINX Gateway Fabric and get the latest features and improvements, take the following steps:

### Upgrade Gateway API resources

{{< include "/ngf/installation/upgrade-api-resources.md" >}}

### Upgrade NGINX Gateway Fabric CRDs

To upgrade the Custom Resource Definitions (CRDs), run:

```shell
kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/crds.yaml
```

### Upgrade NGINX Gateway Fabric deployment

Select the deployment manifest that matches your current deployment from the table above in the [Deploy NGINX Gateway Fabric](#deploy-nginx-gateway-fabric) section and apply it.

---

## Delay pod termination for zero downtime upgrades {#configure-delayed-pod-termination-for-zero-downtime-upgrades}

{{< include "/ngf/installation/delay-pod-termination/delay-pod-termination-overview.md" >}}

Follow these steps to configure delayed pod termination:

1. Open the `deploy.yaml` for editing.

1. **Add delayed shutdown hooks**:

- In the `deploy.yaml` file, add `lifecycle: preStop` hooks to both the `nginx` and `nginx-gateway` container definitions. These hooks instruct the containers to delay their shutdown process, allowing time for connections to close gracefully. Update the `sleep` value to what works for your environment.

```yaml
<...>
name: nginx-gateway
<...>
lifecycle:
preStop:
exec:
command:
- /usr/bin/gateway
- sleep
- --duration=40s # This flag is optional, the default is 30s
<...>
name: nginx
<...>
lifecycle:
preStop:
exec:
command:
- /bin/sleep
- "40"
<...>
```

1. **Set the termination grace period**:

- {{< include "/ngf/installation/delay-pod-termination/termination-grace-period.md" >}}

1. Save the changes.

{{< see-also >}}
For additional information on configuring and understanding the behavior of containers and pods during their lifecycle, refer to the following Kubernetes documentation:

- [Container Lifecycle Hooks](https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks)
- [Pod Lifecycle](https://kubernetes.io/docs/concepts/workloads/Pods/Pod-lifecycle/#Pod-termination)

{{< /see-also >}}

---

## Uninstall NGINX Gateway Fabric

Follow these steps to uninstall NGINX Gateway Fabric and Gateway API from your Kubernetes cluster:
Expand Down
Loading
Loading