From 93c303527b7b4fe563beadadadbc5369eefa8225 Mon Sep 17 00:00:00 2001 From: Balakoteswara Panchakshari Date: Thu, 6 Mar 2025 00:51:12 +0530 Subject: [PATCH 1/3] fix: update helm doc with NIM 2.18 and fix broken links --- .../deploy/kubernetes/deploy-using-helm.md | 108 +++++++++++++++++- .../setup-waf-config-management.md | 4 +- 2 files changed, 106 insertions(+), 6 deletions(-) diff --git a/content/nim/deploy/kubernetes/deploy-using-helm.md b/content/nim/deploy/kubernetes/deploy-using-helm.md index 585c7d28e..04de43de8 100644 --- a/content/nim/deploy/kubernetes/deploy-using-helm.md +++ b/content/nim/deploy/kubernetes/deploy-using-helm.md @@ -15,6 +15,8 @@ tags: This guide explains how to deploy F5 NGINX Instance Manager on a Kubernetes or OpenShift cluster using Helm. You’ll learn how to download and use Docker images and customize your deployment. +{{< note >}} Starting from NGINX Instance Manager 2.19, deploying NIM on the OpenShift cluster using Helm is supported. {{< /note >}} + ### About Helm Helm charts are pre-configured packages of Kubernetes resources deployed with a single command. They let you define, install, and upgrade Kubernetes applications easily. @@ -169,6 +171,8 @@ The `values.yaml` file customizes the Helm chart installation without modifying tag: ``` + {{< note >}} Starting from NGINX Instance Manager 2.19, `secmon` pod is added to the NIM deployment. {{< /note >}} + 2. Save and close the `values.yaml` file. --- @@ -221,10 +225,6 @@ nms nginx-stable/nms-hybrid \ --wait ``` -To help you choose the right NGINX Instance Manager chart version, see the following table (through version v2.18.0): - -{{< include "nim/kubernetes/nms-chart-supported-module-versions.md" >}} - --- ## Validate the deployment @@ -334,6 +334,106 @@ networkPolicies: --- +## Helm Deployment for NGINX Instance Manager 2.18 or lower + +### Create a Helm deployment values.yaml file + +The `values.yaml` file customizes the Helm chart installation without modifying the chart itself. You can use it to specify image repositories, environment variables, resource requests, and other settings. + +1. Create a `values.yaml` file similar to this example: + + - In the `imagePullSecrets` section, add the credentials for your private Docker registry. + - Change the version tag to the version of NGINX Instance Manager you would like to install. See "Install the chart" below for versions. + - Replace `` with your private Docker registry and port (if applicable). + + {{< see-also >}} For details on creating a secret, see Kubernetes [Pull an Image from a Private Registry](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/). {{}} + + ```yaml + nms-hybrid: + imagePullSecrets: + - name: regcred + apigw: + image: + repository: private-registry.nginx.com/nms/apigw + tag: + core: + image: + repository: private-registry.nginx.com/nms/core + tag: + dpm: + image: + repository: private-registry.nginx.com/nms/dpm + tag: + ingestion: + image: + repository: private-registry.nginx.com/nms/ingestion + tag: + integrations: + image: + repository: private-registry.nginx.com/nms/integrations + tag: + utility: + image: + repository: private-registry.nginx.com/nms/utility + tag: + ``` + +2. Save and close the `values.yaml` file. + +--- + +### Install the chart + +Run the `helm install` command to deploy NGINX Instance Manager: + +1. Replace `` with the path to your `values.yaml` file. +2. Replace `YourPassword123#` with a secure password (containing a mix of uppercase, lowercase letters, numbers, and special characters). + + {{< important >}} Remember to save the password for future use. Only the encrypted password is stored, and there's no way to recover or reset it if lost. {{< /important >}} + +3. Replace `` with the desired chart version 1.15.0 or lower. If omitted, it will lead to an unsuccessful deployment as it will try to install the latest vesrion 1.16.0 or later. + +```shell +helm install -n nms \ +--set nms-hybrid.adminPasswordHash=$(openssl passwd -6 'YourPassword123#') \ +nms nginx-stable/nms \ +--create-namespace \ +-f \ +--version \ +--wait +``` + +To help you choose the right NGINX Instance Manager chart version, see the table in: + +{{< include "nim/kubernetes/nms-chart-supported-module-versions.md" >}} + +--- + +### Upgrade NGINX Instance Manager + +To upgrade: + +1. [Update the Helm repository list](#add-helm-repository). +2. [Adjust your `values.yaml` file](#create-a-helm-deployment-values.yaml-file) if needed. +3. To upgrade the NGINX Instance Manager deployment, run the following command. This command updates the `nms` deployment with a new version from the `nginx-stable/nms` repository. It also hashes the provided password and uses the `values.yaml` file at the path you specify. +4. Replace `` with the desired chart version 1.15.0 or lower. If omitted, it will lead to an unsuccessful deployment as it will try to upgrade to the latest vesrion 1.16.0 or later. + + ```bash + helm upgrade -n nms \ + --set nms-hybrid.adminPasswordHash=$(openssl passwd -6 'YourPassword123#') \ + nms nginx-stable/nms \ + -f \ + --version \ + --wait + ``` + + - Replace `` with the path to the `values.yaml` file you created]({{< relref "/nim/deploy/kubernetes/deploy-using-helm.md#configure-chart" >}}). + - Replace `YourPassword123#` with a secure password that includes uppercase and lowercase letters, numbers, and special characters. + + {{}} Save this password for future use. Only the encrypted password is stored in Kubernetes, and you can’t recover or reset it later. {{}} + +--- + ## Troubleshooting For instructions on creating a support package to share with NGINX Customer Support, see [Create a Support Package from a Helm Installation]({{< relref "/nms/support/k8s-support-package.md" >}}). diff --git a/content/nim/nginx-app-protect/setup-waf-config-management.md b/content/nim/nginx-app-protect/setup-waf-config-management.md index 71e3ec064..06e1dca21 100644 --- a/content/nim/nginx-app-protect/setup-waf-config-management.md +++ b/content/nim/nginx-app-protect/setup-waf-config-management.md @@ -32,8 +32,8 @@ Complete the following prerequisites before proceeding with this guide. Instance Manager does not support the following NGINX App Protect features: -- [Policies with external references](https://docs.nginx.com/nginx-app-protect/configuration-guide/configuration/#external-references) -- [Policies with modifications](https://docs.nginx.com/nginx-app-protect/configuration-guide/configuration/#modifying-configurations) +- [Policies with external references](https://docs.nginx.com/nginx-app-protect-waf/v4/configuration-guide/configuration/#external-references) +- [Policies with modifications](https://docs.nginx.com/nginx-app-protect-waf/v4/configuration-guide/configuration/#modifying-configurations) - Custom signatures --- From 132bb0002105368210340050111363209bcf42ae Mon Sep 17 00:00:00 2001 From: Balakoteswara Panchakshari Date: Thu, 6 Mar 2025 09:40:04 +0530 Subject: [PATCH 2/3] fix: Update content/nim/deploy/kubernetes/deploy-using-helm.md Co-authored-by: Travis Martin <33876974+travisamartin@users.noreply.github.com> --- content/nim/deploy/kubernetes/deploy-using-helm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/nim/deploy/kubernetes/deploy-using-helm.md b/content/nim/deploy/kubernetes/deploy-using-helm.md index 04de43de8..05adab779 100644 --- a/content/nim/deploy/kubernetes/deploy-using-helm.md +++ b/content/nim/deploy/kubernetes/deploy-using-helm.md @@ -15,7 +15,7 @@ tags: This guide explains how to deploy F5 NGINX Instance Manager on a Kubernetes or OpenShift cluster using Helm. You’ll learn how to download and use Docker images and customize your deployment. -{{< note >}} Starting from NGINX Instance Manager 2.19, deploying NIM on the OpenShift cluster using Helm is supported. {{< /note >}} +{{< note >}} Starting in NGINX Instance Manager 2.19, you can deploy NGINX Instance Manager on an OpenShift cluster using Helm. {{< /note >}} ### About Helm From f731880a6ece3b34dee63ac04bc12c7705c0c91c Mon Sep 17 00:00:00 2001 From: Balakoteswara Panchakshari Date: Thu, 6 Mar 2025 09:41:02 +0530 Subject: [PATCH 3/3] fix: Update content/nim/deploy/kubernetes/deploy-using-helm.md Co-authored-by: Travis Martin <33876974+travisamartin@users.noreply.github.com> --- content/nim/deploy/kubernetes/deploy-using-helm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/nim/deploy/kubernetes/deploy-using-helm.md b/content/nim/deploy/kubernetes/deploy-using-helm.md index 05adab779..71eadbaa7 100644 --- a/content/nim/deploy/kubernetes/deploy-using-helm.md +++ b/content/nim/deploy/kubernetes/deploy-using-helm.md @@ -171,7 +171,7 @@ The `values.yaml` file customizes the Helm chart installation without modifying tag: ``` - {{< note >}} Starting from NGINX Instance Manager 2.19, `secmon` pod is added to the NIM deployment. {{< /note >}} + {{< note >}} Starting in NGINX Instance Manager 2.19, the `secmon` pod is included in the NGINX Instance Manager deployment. {{< /note >}} 2. Save and close the `values.yaml` file.