Skip to content

feat: Update NGF Get started guide and installation documents #224

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 4 commits into from
Feb 25, 2025
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
20 changes: 20 additions & 0 deletions content/includes/ngf/installation/upgrade-api-resources.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
docs: DOCS-000
---

To upgrade your Gateway API resources, take the following steps:

- Use [Technical specifications]({{< ref "/ngf/reference/technical-specifications.md" >}}) to verify your Gateway API resources are compatible with your NGINX Gateway Fabric version.
- Review the [release notes](https://github.com/kubernetes-sigs/gateway-api/releases) for any important upgrade-specific information.

To upgrade the Gateway API resources, run the following command:

```shell
kubectl kustomize "https://github.com/nginx/nginx-gateway-fabric/config/crd/gateway-api/standard?ref=v{{< version-ngf >}}" | kubectl apply -f -
```

If you installed NGINX Gateway the from the experimental channel, use this instead:

```shell
kubectl kustomize "https://github.com/nginx/nginx-gateway-fabric/config/crd/gateway-api/experimental?ref=v{{< version-ngf >}}" | kubectl apply -f -
```
41 changes: 14 additions & 27 deletions content/ngf/get-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ product: NGF
docs: DOCS-000
---

{{< important >}}
This document is for trying out NGINX Gateway Fabric, and not intended for a production environment.

For standard deployments, you should read the [Install NGINX Gateway Fabric]({{< ref "/ngf/installation/installing-ngf" >}}) section.
{{< /important >}}

This is a guide for getting started with NGINX Gateway Fabric. It explains how to:

- Set up a [kind (Kubernetes in Docker)](https://kind.sigs.k8s.io/) cluster
Expand Down Expand Up @@ -46,9 +52,9 @@ nodes:
protocol: TCP
```

{{< warning >}}
Take note of the two _containerPort_ values. They are necessary for later configuring a _NodePort_.
{{< /warning >}}
{{< note >}}
The two _containerPort_ values are used to later configure a _NodePort_.
{{< /note >}}

Run the following command:

Expand Down Expand Up @@ -101,15 +107,6 @@ customresourcedefinition.apiextensions.k8s.io/httproutes.gateway.networking.k8s.
customresourcedefinition.apiextensions.k8s.io/referencegrants.gateway.networking.k8s.io created
```

{{< note >}}
To use experimental features, you'll need to install the API resources from the experimental channel instead.

```shell
kubectl kustomize "https://github.com/nginx/nginx-gateway-fabric/config/crd/gateway-api/experimental?ref=v{{< version-ngf >}}" | kubectl apply -f -
```

{{< /note >}}

---

### Install the Helm chart
Expand All @@ -131,25 +128,12 @@ REVISION: 1
TEST SUITE: None
```

{{< note >}}
If you installed the API resources from the experimental channel during the last step, you will need to enable the _nginxGateway.gwAPIExperimentalFeatures_ option:

```shell
helm install ngf oci://ghcr.io/nginx/charts/nginx-gateway-fabric --create-namespace -n nginx-gateway --set service.create=false --set nginxGateway.gwAPIExperimentalFeatures.enable=true
```

{{< /note >}}

---

### Set up a NodePort

Create the file _nodeport-config.yaml_ with the following contents:

{{< note >}}
The highlighted _nodePort_ values should equal the _containerPort_ values from _cluster-config.yaml_ [when you created the kind cluster](#set-up-a-kind-cluster).
{{< /note >}}

```yaml {linenos=true, hl_lines=[20, 25]}
apiVersion: v1
kind: Service
Expand Down Expand Up @@ -178,20 +162,23 @@ spec:
nodePort: 31438
```

{{< note >}}
The highlighted _nodePort_ values should equal the _containerPort_ values from _cluster-config.yaml_ [when you created the kind cluster](#set-up-a-kind-cluster).
{{< /note >}}

Apply it using `kubectl`:

```shell
kubectl apply -f nodeport-config.yaml
```

```text
service/nginx-gateway created
```

{{< warning >}}
The NodePort resource must be deployed in the same namespace as NGINX Gateway Fabric.

If you are making customizations, ensure your `labels:` and `selectors:` also match the labels of the NGINX Gateway Fabric Deployment.
If you are making customizations, ensure your `labels:` and `selectors:` also match the labels of the NGINX Gateway Fabric deployment.
{{< /warning >}}

---
Expand Down
30 changes: 8 additions & 22 deletions content/ngf/installation/installing-ngf/helm.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,6 @@ docs: DOCS-1430

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

{{< 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 >}}

---

## Before you begin
Expand All @@ -30,15 +27,15 @@ To complete this guide, you'll need to install:

{{< include "/ngf/installation/jwt-password-note.md" >}}

### 1. Download the JWT from MyF5
### Download the JWT from MyF5

{{< include "/ngf/installation/nginx-plus/download-jwt.md" >}}

### 2. Create the Docker Registry Secret
### Create the Docker Registry Secret

{{< include "/ngf/installation/nginx-plus/docker-registry-secret.md" >}}

### 3. Create the NGINX Plus Secret
### Create the NGINX Plus Secret

{{< include "/ngf/installation/nginx-plus/nginx-plus-secret.md" >}}

Expand Down Expand Up @@ -187,29 +184,18 @@ You can find several examples of configuration options of the `values.yaml` file

## Upgrade NGINX Gateway Fabric

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

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

---

### Upgrade Gateway resources

To upgrade your Gateway API resources, take the following steps:

- Verify the Gateway API resources are compatible with your NGINX Gateway Fabric version. Refer to the [Technical Specifications]({{< ref "/ngf/reference/technical-specifications.md" >}}) for details.
- Review the [release notes](https://github.com/kubernetes-sigs/gateway-api/releases) for any important upgrade-specific information.
- To upgrade the Gateway API resources, run:

```shell
kubectl kustomize "https://github.com/nginx/nginx-gateway-fabric/config/crd/gateway-api/standard?ref=v{{< version-ngf >}}" | kubectl apply -f -
```

or, if you installed the from the experimental channel:

```shell
kubectl kustomize "https://github.com/nginx/nginx-gateway-fabric/config/crd/gateway-api/experimental?ref=v{{< version-ngf >}}" | kubectl apply -f -
```
{{< include "/ngf/installation/upgrade-api-resources.md" >}}

---

Expand Down
51 changes: 18 additions & 33 deletions content/ngf/installation/installing-ngf/manifests.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Installation with Kubernetes manifests
title: Installation with Manifests
weight: 200
toc: true
type: how-to
Expand All @@ -11,9 +11,6 @@ docs: DOCS-1429

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

{{< 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 >}}

---

## Before you begin
Expand All @@ -29,15 +26,15 @@ To complete this guide, you'll need to install:

{{< include "/ngf/installation/jwt-password-note.md" >}}

### 1. Download the JWT from MyF5
### Download the JWT from MyF5

{{< include "/ngf/installation/nginx-plus/download-jwt.md" >}}

### 2. Create the Docker Registry Secret
### Create the Docker Registry Secret

{{< include "/ngf/installation/nginx-plus/docker-registry-secret.md" >}}

### 3. Create the NGINX Plus Secret
### Create the NGINX Plus Secret

{{< include "/ngf/installation/nginx-plus/nginx-plus-secret.md" >}}

Expand All @@ -53,13 +50,13 @@ Deploying NGINX Gateway Fabric with Kubernetes manifests takes only a few steps.

---

### 1. Install the Gateway API resources
### Install the Gateway API resources

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

---

### 2. Deploy the NGINX Gateway Fabric CRDs
### Deploy the NGINX Gateway Fabric CRDs

#### Stable release

Expand All @@ -75,7 +72,7 @@ kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/ma

---

### 3. Deploy NGINX Gateway Fabric
### 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 @@ -173,7 +170,7 @@ kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{

---

### 4. Verify the Deployment
### Verify the Deployment

To confirm that NGINX Gateway Fabric is running, check the pods in the `nginx-gateway` namespace:

Expand All @@ -190,7 +187,7 @@ nginx-gateway-5d4f4c7db7-xk2kq 2/2 Running 0 112s

---

### 5. Access NGINX Gateway Fabric
### Access NGINX Gateway Fabric

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

Expand All @@ -205,33 +202,21 @@ Secret before upgrading. Follow the steps in the [Before you begin](#before-you-

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

1. **Upgrade Gateway API resources:**

- Verify that your NGINX Gateway Fabric version is compatible with the Gateway API resources. Refer to the [Technical Specifications]({{< ref "/ngf/reference/technical-specifications.md" >}}) for details.
- Review the [release notes](https://github.com/kubernetes-sigs/gateway-api/releases) for any important upgrade-specific information.
- To upgrade the Gateway API resources, run:
### Upgrade Gateway API resources

```shell
kubectl kustomize "https://github.com/nginx/nginx-gateway-fabric/config/crd/gateway-api/standard?ref=v{{< version-ngf >}}" | kubectl apply -f -
```
{{< include "/ngf/installation/upgrade-api-resources.md" >}}

or, if you installed the from the experimental channel:
### Upgrade NGINX Gateway Fabric CRDs

```shell
kubectl kustomize "https://github.com/nginx/nginx-gateway-fabric/config/crd/gateway-api/experimental?ref=v{{< version-ngf >}}" | kubectl apply -f -
```
To upgrade the Custom Resource Definitions (CRDs), run:

1. **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
```
```shell
kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/crds.yaml
```

1. **Upgrade NGINX Gateway Fabric deployment:**
### Upgrade NGINX Gateway Fabric deployment

Select the deployment manifest that matches your current deployment from the table above in the [Deploy NGINX Gateway Fabric](#3-deploy-nginx-gateway-fabric) section and apply it.
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.

---

Expand Down