Skip to content

Commit 201fb04

Browse files
committed
docs: upgrade NGF from 1.6.x to 2.0.x
1 parent c589ea7 commit 201fb04

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
---
2+
title: Upgrade NGINX Gateway Fabric to version 2.0.0
3+
weight: 400
4+
toc: true
5+
type: how-to
6+
product: NGF
7+
docs: DOCS-0000
8+
---
9+
10+
This guide provides step-by-step instructions for upgrading NGINX Gateway Fabric from version 1.6.x to 2.0.x, highlighting key architectural changes, expected downtime, and important considerations for custom resource definitions.
11+
12+
---
13+
14+
### Upgrade from v1.6.x to v2.0.x
15+
16+
To upgrade NGINX Gateway Fabric from version 1.6.2 to the latest version 2.0.0, you must uninstall the existing CRDs and perform a fresh installation with the new CRDs. This upgrade involves uninstalling the existing NGINX Gateway Fabric deployment making it a breaking change and will lead to application downtime during the process.
17+
18+
{{<note>}} You do not need to uninstall the Gateway API CRDs during the upgrade. These standard Kubernetes resources are compatible with the new NGINX Gateway Fabric version. {{</note>}}
19+
20+
#### Uninstalling previous NGINX Gateway Fabric v1.6.x
21+
22+
To remove the previous version 1.6.x of NGINX Gateway Fabric, follow these steps:
23+
24+
1. Run the following command to uninstall NGINX Gateway Fabric from the `nginx-gateway` namespace:
25+
26+
```shell
27+
helm uninstall ngf -n nginx-gateway
28+
```
29+
30+
2. To remove the CRDs associated with NGINX Gateway Fabric version 1.6.x, run the following command:
31+
32+
```shell
33+
kubectl delete -k "github.com/nginxinc/nginx-gateway-fabric/config/crd?ref=<ngf-version-1.6.x>"
34+
```
35+
36+
#### Install using Helm
37+
38+
Follow these steps to install NGINX Gateway Fabric v2.0.0 using helm:
39+
40+
1. First, apply the new CRDs with the following command:
41+
42+
```shell
43+
kubectl apply -k "github.com/nginxinc/nginx-gateway-fabric/config/crd?ref=<ngf-version-2.0.x>"
44+
```
45+
46+
2. Next, to install the latest stable release of NGINX Gateway Fabric in the `nginx-gateway` namespace, run the following command:
47+
48+
```shell
49+
helm install ngf oci://ghcr.io/nginx/charts/nginx-gateway-fabric --create-namespace -n nginx-gateway
50+
```
51+
52+
For additional customization options during the helm installation process, take a look at [Installation with Helm](../../installation/installing-ngf/helm.md).
53+
54+
#### Install using Manifests
55+
56+
Follow these steps to install NGINX Gateway Fabric v2.0.0 using manifests:
57+
58+
1. First, apply the new CRDs with the following command:
59+
60+
```shell
61+
kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf-2.0.x >}}/deploy/crds.yaml
62+
```
63+
64+
2. Next, to install the latest stable release of NGINX Gateway Fabric in the `nginx-gateway` namespace, run the following command:
65+
66+
```shell
67+
kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/default/deploy.yaml
68+
```
69+
70+
For additional customization options during the installation process using manifests, take a look at [Installation with Manifests](../../installation/installing-ngf/manifests.md)
71+
72+
---
73+
74+
### Architecture changes
75+
76+
With this release, NGINX Gateway Fabric adopts a new architecture that separates the control plane and data plane into independent deployments. This separation improves scalability, security, and operational clarity.
77+
78+
The control plane is a Kubernetes controller built with `controller-runtime`. It watches Gateway API and Kubernetes resources (e.g., Services, Endpoints, Secrets) and dynamically provisions NGINX data plane deployments for each Gateway.
79+
80+
NGINX configurations are generated by the control plane and securely delivered to the data planes via gRPC, using the NGINX Agent. TLS is enabled by default, with optional integration with `cert-manager`.
81+
82+
Each data plane pod runs NGINX alongside the Agent, which applies config updates and handles reloads without shared volumes or signals. This design ensures dynamic, per-Gateway traffic management and operational isolation.
83+
84+
New fields have been added to the `NginxProxy` resource to configure infrastructure-related settings for data plane deployments. You can modify the `NginxProxy` resource at either the Gateway or GatewayClass level. These new fields provide the flexibility to customize deployment and service configurations.
85+
86+
For detailed instructions on how to modify these settings, refer to the [Configure infrastructure-related settings](../../how-to/data-plane-configuration.md#configure-infrastructure-related-settings) guide.
87+
88+
---
89+
90+
### Key links for the version 2.0.0 update
91+
92+
- To read more on [modifying data plane configuration](../../how-to/data-plane-configuration.md)
93+
- To read more on [modifying control plane configuration](../../how-to/control-plane-configuration.md)
94+
- To adding secure [authentication to control plane and data planes](./control-plane-certs.md)
95+
- For detailed information on [architecture changes](../../overview//gateway-architecture.md)
96+
- For detailed [API reference](../../reference/api.md)

0 commit comments

Comments
 (0)