From ae3e590e9e2796db365929e02ca9c18e614911b1 Mon Sep 17 00:00:00 2001 From: salonichf5 <146118978+salonichf5@users.noreply.github.com> Date: Wed, 21 May 2025 11:13:41 -0600 Subject: [PATCH 1/2] docs: upgrade NGF from v1.x to v2.x --- content/ngf/how-to/_index.md | 2 +- .../installing-ngf/control-plane-certs.md | 6 +- content/ngf/reference/_index.md | 2 +- content/ngf/releases.md | 2 +- content/ngf/support.md | 2 +- content/ngf/upgrading-ngf.md | 101 ++++++++++++++++++ 6 files changed, 110 insertions(+), 5 deletions(-) create mode 100644 content/ngf/upgrading-ngf.md diff --git a/content/ngf/how-to/_index.md b/content/ngf/how-to/_index.md index b48bf630e..3d0b4588a 100644 --- a/content/ngf/how-to/_index.md +++ b/content/ngf/how-to/_index.md @@ -1,5 +1,5 @@ --- title: "How-to guides" url: /nginx-gateway-fabric/how-to/ -weight: 400 +weight: 500 --- diff --git a/content/ngf/installation/installing-ngf/control-plane-certs.md b/content/ngf/installation/installing-ngf/control-plane-certs.md index 4a34e24d9..763405e94 100644 --- a/content/ngf/installation/installing-ngf/control-plane-certs.md +++ b/content/ngf/installation/installing-ngf/control-plane-certs.md @@ -13,6 +13,8 @@ By default, NGINX Gateway Fabric installs self-signed certificates to secure the This guide will step through how to install and use `cert-manager` to secure this connection. **This should be done _before_ you install NGINX Gateway Fabric.** +--- + ## Before you begin You need: @@ -27,6 +29,7 @@ Add the Helm repository: ```shell helm repo add jetstack https://charts.jetstack.io helm repo update +``` Install cert-manager: @@ -39,8 +42,9 @@ helm install \ --set config.kind="ControllerConfiguration" \ --set config.enableGatewayAPI=true \ --set crds.enabled=true +``` - This also enables Gateway API features for cert-manager, which can be useful for [securing your workload traffic]({{< ref "/ngf/how-to/traffic-security/integrating-cert-manager.md" >}}). +This also enables Gateway API features for cert-manager, which can be useful for [securing your workload traffic]({{< ref "/ngf/how-to/traffic-security/integrating-cert-manager.md" >}}). ## Create the CA issuer diff --git a/content/ngf/reference/_index.md b/content/ngf/reference/_index.md index 7fad2be4f..075c35741 100644 --- a/content/ngf/reference/_index.md +++ b/content/ngf/reference/_index.md @@ -1,5 +1,5 @@ --- title: "Reference" -weight: 500 +weight: 600 url: /nginx-gateway-fabric/reference/ --- diff --git a/content/ngf/releases.md b/content/ngf/releases.md index f371d7a96..2dabcd11e 100644 --- a/content/ngf/releases.md +++ b/content/ngf/releases.md @@ -1,7 +1,7 @@ --- title: Releases description: "NGINX Gateway Fabric releases." -weight: 700 +weight: 800 toc: true type: reference product: NGF diff --git a/content/ngf/support.md b/content/ngf/support.md index c6f28eed2..198f88f3a 100644 --- a/content/ngf/support.md +++ b/content/ngf/support.md @@ -1,6 +1,6 @@ --- title: Support -weight: 600 +weight: 700 toc: true type: reference product: NGF diff --git a/content/ngf/upgrading-ngf.md b/content/ngf/upgrading-ngf.md new file mode 100644 index 000000000..e4790dea7 --- /dev/null +++ b/content/ngf/upgrading-ngf.md @@ -0,0 +1,101 @@ +--- +title: Upgrade NGINX Gateway Fabric to version 2.x +weight: 400 +toc: true +type: how-to +product: NGF +docs: DOCS-0000 +--- + +This guide provides step-by-step instructions for upgrading NGINX Gateway Fabric from version 1.x to 2.x, highlighting key architectural changes, expected downtime, and important considerations for custom resource definitions (CRDs). + + +### Upgrade from v1.x to v2.x + +To upgrade NGINX Gateway Fabric from version 1.x to the new architecture in version 2.x, you must uninstall the existing NGINX Gateway Fabric CRDs and deployment, and perform a fresh installation. This will cause brief downtime during the upgrade process. + +{{}} You do not need to uninstall the Gateway API CRDs during the upgrade. These resources are compatible with the new NGINX Gateway Fabric version. {{}} + +#### Uninstall NGINX Gateway Fabric v1.x + +To remove the previous version 1.x of NGINX Gateway Fabric, follow these steps: + +First, run the following command to uninstall NGINX Gateway Fabric from the `nginx-gateway` namespace, and update `ngf` to your release name if it is different: + +```shell +helm uninstall ngf -n nginx-gateway +``` + +Afterwards, remove CRDs associated with NGINX Gateway Fabric version 1.x with the following command: + +```shell +kubectl delete -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/crds.yaml +``` + +{{}} + +{{%tab name="Helm"%}} + +Follow these steps to install NGINX Gateway Fabric v2.x using Helm: + +Apply the new CRDs with the following command: + +```shell +kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/crds.yaml +``` + +Next, install the latest stable release of NGINX Gateway Fabric in the `nginx-gateway` namespace with the following command: + +```shell +helm install ngf oci://ghcr.io/nginx/charts/nginx-gateway-fabric --create-namespace -n nginx-gateway +``` + +For additional customization options during the helm installation process, take a look at [Installation with Helm]({{< ref "/ngf/installation/installing-ngf/helm.md" >}}). + +{{% /tab %}} + +{{%tab name="Manifests"%}} + +Follow these steps to install NGINX Gateway Fabric v2.x using Manifests: + +Apply the new CRDs with the following command: + +```shell +kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/crds.yaml +``` + +Next, install the latest stable release of NGINX Gateway Fabric in the `nginx-gateway` namespace with the following command: + +```shell +kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/default/deploy.yaml +``` + +For additional customization options during the installation process using manifests, take a look at [Installation with Manifests]({{< ref "/ngf/installation/installing-ngf/manifests.md" >}}). + +{{% /tab %}} + +{{}} + + +### Architecture changes + +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. + +The control plane is a Kubernetes controller that watches Gateway API and Kubernetes resources (e.g., Services, Endpoints, Secrets) and dynamically provisions NGINX data plane deployments for each Gateway. + +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`. + +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. + +New fields have been added to the `NginxProxy` resource to configure infrastructure-related settings for data plane deployments. The `NginxProxy` resource is now a namespaced-scoped resource, instead of a cluster-scoped resource, and can be modified at either the Gateway or GatewayClass level. These new fields provide the flexibility to customize deployment and service configurations. + +For detailed instructions on how to modify these settings, refer to the [Configure infrastructure-related settings]({{< ref "/ngf/how-to/data-plane-configuration.md#configure-infrastructure-related-settings" >}}) guide. + + +### Key links for the version 2.x update + +- To read more on [modifying data plane configuration]({{< ref "/ngf/how-to/data-plane-configuration.md" >}}). +- To learn more about [deploying a Gateway for data plane instances]({{< ref "/ngf/installation/installing-ngf/deploy-data-plane.md" >}}). +- To adding secure [authentication to control plane and data planes]({{< ref "/ngf/installation/installing-ngf/control-plane-certs.md" >}}). +- To read more about [architecture changes]({{< ref "/ngf/overview/gateway-architecture.md" >}}). +- For detailed [API reference]({{< ref "/ngf/reference/api.md" >}}). From 41689e606f16c3855f545f5f0dd99e9665811a2e Mon Sep 17 00:00:00 2001 From: salonichf5 <146118978+salonichf5@users.noreply.github.com> Date: Wed, 21 May 2025 11:34:49 -0600 Subject: [PATCH 2/2] improve instructions for install --- content/ngf/upgrading-ngf.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/content/ngf/upgrading-ngf.md b/content/ngf/upgrading-ngf.md index e4790dea7..d19aebed7 100644 --- a/content/ngf/upgrading-ngf.md +++ b/content/ngf/upgrading-ngf.md @@ -29,7 +29,7 @@ helm uninstall ngf -n nginx-gateway Afterwards, remove CRDs associated with NGINX Gateway Fabric version 1.x with the following command: ```shell -kubectl delete -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/crds.yaml +kubectl delete -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v1.6.2/deploy/crds.yaml ``` {{}} @@ -38,13 +38,7 @@ kubectl delete -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v Follow these steps to install NGINX Gateway Fabric v2.x using Helm: -Apply the new CRDs with the following command: - -```shell -kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/crds.yaml -``` - -Next, install the latest stable release of NGINX Gateway Fabric in the `nginx-gateway` namespace with the following command: +Next, install the latest stable release of NGINX Gateway Fabric in the `nginx-gateway` namespace. The following `helm install` command will install the NGINX Gateway Fabric release along with the necessary CRDs required for the deployment: ```shell helm install ngf oci://ghcr.io/nginx/charts/nginx-gateway-fabric --create-namespace -n nginx-gateway