Skip to content

Commit c2fe3a1

Browse files
travisamartinmjang
andauthored
docs: NIM 2.19.0 release documentation (#170)
Co-authored-by: Mike Jang <[email protected]>
1 parent 36ee197 commit c2fe3a1

30 files changed

+1263
-1110
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
docs:
3+
---
4+
5+
{{<bootstrap-table "table table-striped table-bordered">}}
6+
| Variable | Category | Description |
7+
|----------|----------|------------|
8+
| **NIM_LOG_LEVEL** | General | Sets the logging level for NGINX Instance Manager. |
9+
| **NIM_METRICS_TTL** | General | Specifies the number of days to retain metrics. |
10+
| **NIM_EVENTS_TTL** | General | Specifies the number of days to retain event logs. |
11+
| **NIM_SECURITY_TTL** | General | Specifies the number of days to retain security violation logs. |
12+
| **NIM_MAINTENANCE** | General | Enables maintenance mode for backup, restore, and troubleshooting (`true` or `false`). |
13+
| **NIM_WATCHDOG_TIMEOUT** | General | Sets the timeout (in seconds) for the Data Plane Monitoring (DPM) watchdog. |
14+
| **NIM_LICENSE_MODE_OF_OPERATION** | General | Sets the license mode to either `connected` (default) or `disconnected`. |
15+
| **PROXY_ENABLE** | Forward Proxy | Enables or disables the use of a forward proxy (`true` or `false`). |
16+
| **PROXY_HOST** | Forward Proxy | The IP address or hostname of the proxy server. |
17+
| **PROXY_PORT** | Forward Proxy | The port number of the proxy server. |
18+
| **PROXY_PROTOCOL** | Forward Proxy | The proxy protocol (`http` or `https`). |
19+
| **PROXY_AUTH_REQUIRED** | Forward Proxy | Specifies whether authentication is required for the proxy (`true` or `false`). |
20+
| **PROXY_USERNAME** | Forward Proxy | (Required if `PROXY_AUTH_REQUIRED=true`) The username for proxy authentication. |
21+
| **PROXY_PASSWORD** | Forward Proxy | (Required if `PROXY_AUTH_REQUIRED=true`) The password for proxy authentication. |
22+
| **PROXY_SSL_VERIFY** | Forward Proxy | Enables or disables SSL verification when `PROXY_PROTOCOL=https`. Default is `true`, meaning the proxy must have a valid certificate issued by a trusted Certificate Authority (CA). Set to `false` to allow self-signed or untrusted certificates (not recommended). |
23+
24+
{{</bootstrap-table>}}
25+
26+
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
docs:
3+
---
4+
5+
1. Copy the proxy CA certificate into the system’s trusted certificate directory, for example **/usr/local/share/ca-certificates/** or **/etc/ssl/certs/** (path varies by distribution).
6+
1. Run the appropriate command to update the system’s trusted certificates:
7+
8+
- **Debian/Ubuntu**:
9+
10+
```bash
11+
sudo update-ca-certificates
12+
```
13+
14+
- **RHEL/CentOS**:
15+
16+
```shell
17+
sudo update-ca-trust
18+
```

content/nap-waf/v4/admin-guide/install-nms.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ weight: 100
2121

2222
[NGINX Management Suite Security Monitoring]({{< relref "/nms/about.md#security-monitoring" >}}) provides a centralized visualization tool that lets you analyze threats, view protection insights, and identify areas for policy tuning.
2323

24-
- For more information on how to configure Security Monitoring, see [Set Up App Protect Instances for Security Monitoring]({{< relref "/nim/monitoring/security-monitoring/configure/set-up-app-protect-instances.md" >}}).
24+
- For more information on how to configure Security Monitoring, see [Set Up App Protect Instances for Security Monitoring]({{< relref "/nim/nginx-app-protect/security-monitoring/set-up-app-protect-instances.md" >}}).
2525

2626
---
2727

content/nim/admin-guide/authentication/oidc/getting-started.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ NGINX Instance Manager’s implementation of OIDC is designed to work with any I
1818

1919
{{<call-out "tip" "Do you need to configure a specific IdP?">}}To learn how to configure OIDC with a specific identity provider, refer to the linked topics in the [Set up specific IdPs for OIDC](#oidc-specific-idps) section at the bottom of this page.{{</call-out>}}
2020

21+
{{<call-out "important" "OIDC is not supported in forward-proxy mode" "fa-solid fa-triangle-exclamation" >}}OpenID Connect (OIDC) authentication is not supported when NGINX Instance Manager is running in [forward-proxy mode]({{< relref "nim/system-configuration/configure-forward-proxy.md" >}}). OIDC is configured on the NGINX Plus layer and cannot pass authentication requests through a forward proxy.{{</call-out>}}
22+
2123
## Create roles and user groups in NGINX Instance Manager {#configure-nim}
2224

2325
When using OIDC for authentication, administrators don't need to create and manage users in NGINX Instance Manager. Instead, they create user groups in NGINX Instance Manager that match groups in their IdP. The roles assigned to the user group set the access level and permissions for users based on their group membership. Users who aren't in a group with an assigned role won't have access to NGINX Instance Manager.

content/nim/deploy/docker/deploy-nginx-instance-manager-docker-compose.md

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -52,32 +52,41 @@ To set up Docker to communicate with the NGINX container registry located at `pr
5252

5353
### Compose deployment
5454

55-
Navigate to the directory where you downloaded `docker-compose.yaml`. With the following commands, use docker to log in to private-registry.nginx.com and then run `docker compose up -d`.
55+
{{<call-out "note" "Configuring a forward proxy:" "" >}}
56+
57+
If you are configuring a **forward proxy**, follow the steps in the [Forward Proxy Configuration Guide]({{< relref "nim/system-configuration/configure-forward-proxy.md" >}}) to modify `docker-compose.yaml` with the correct proxy settings **before** deploying NGINX Instance Manager.
58+
59+
{{</call-out>}}
60+
61+
Go to the directory where you downloaded `docker-compose.yaml`. Use the following commands to log in to `private-registry.nginx.com` and deploy NGINX Instance Manager.
5662

5763
```shell
58-
~$ docker login private-registry.nginx.com --username=<JWT_CONTENTS> --password=none
59-
~$ echo "admin" > admin_password.txt
60-
~$ docker compose up -d
64+
docker login private-registry.nginx.com --username=<JWT_CONTENTS> --password=none
65+
echo "admin" > admin_password.txt
66+
docker compose up -d
67+
```
68+
69+
If the deployment succeeds, you’ll see output similar to this:
70+
71+
```text
6172
[+] Running 6/6
6273
✔ Network nim_clickhouse Created 0.1s
6374
✔ Network nim_external_network Created 0.2s
6475
✔ Network nim_default Created 0.2s
6576
✔ Container nim-precheck-1 Started 0.8s
6677
✔ Container nim-clickhouse-1 Healthy 6.7s
6778
✔ Container nim-nim-1 Started 7.4s
68-
```
79+
```
6980

7081
### Supported environment variables
7182

72-
You may modify the following variables in the `docker-compose.yaml` file:
83+
{{< include "nim/docker/docker-compose-env-vars.md" >}}
84+
85+
<br>
7386

74-
- `NIM_LOG_LEVEL` - set the NGINX Instance Manager logging level.
75-
- `NIM_METRICS_TTL` - set a custom time-to-live in days value for metrics retention.
76-
- `NIM_EVENTS_TTL` - set a custom time-to-live in days value for events retention.
77-
- `NIM_SECURITY_TTL` - set a custom time-to-live in days value for security violation retention.
78-
- `NIM_MAINTENANCE` - enable maintenance mode to preform backup, restore and troubleshooting.
79-
- `NIM_WATCHDOG_TIMEOUT` - set a custom dpm watchdog timeout in seconds.
80-
- `NIM_LICENSE_MODE_OF_OPERATION` - set the NGINX Instance Manager license mode of operation to either connected or disconnected. Default is connected.
87+
{{<call-out "tip" "See also:" "" >}}
88+
For details on configuring a forward proxy, see the [Forward Proxy Configuration Guide]({{< relref "nim/system-configuration/configure-forward-proxy.md" >}}).
89+
{{</call-out>}}
8190

8291
### Compose stop or tear down
8392

content/nim/deploy/kubernetes/deploy-using-helm.md

Lines changed: 97 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,14 @@ tags:
1313

1414
{{< include "/nim/decoupling/note-legacy-nms-references.md" >}}
1515

16-
This guide provides a step-by-step tutorial on how to set up F5 NGINX Instance Manager on a Kubernetes cluster using Helm. You'll learn how to download and use Docker images and customize your deployment.
16+
This guide explains how to deploy F5 NGINX Instance Manager on a Kubernetes or OpenShift cluster using Helm. Youll learn how to download and use Docker images and customize your deployment.
1717

1818
### About Helm
1919

2020
Helm charts are pre-configured packages of Kubernetes resources deployed with a single command. They let you define, install, and upgrade Kubernetes applications easily.
2121

2222
Helm charts consist of files that describe a group of related Kubernetes resources, like deployments, services, and ingress. They also allow you to manage dependencies between applications, making it easier to deploy multi-tier or complex applications.
2323

24-
{{< call-out "important" "Supportability considerations" >}} NGINX Instance Manager **does not** support [OpenShift](https://www.redhat.com/en/technologies/cloud-computing/openshift). For better compatibility, use [NGINX Ingress Controller](https://docs.nginx.com/nginx-ingress-controller/). {{< /call-out >}}
25-
2624
---
2725

2826
## Before you begin
@@ -41,8 +39,6 @@ To deploy NGINX Instance Manager using a Helm chart, you need:
4139

4240
{{< /bootstrap-table >}}
4341

44-
45-
4642
---
4743

4844
## Get the NGINX Instance Manager images
@@ -57,12 +53,23 @@ Create a Docker registry secret on the cluster, using the JWT token as the usern
5753

5854
{{< note >}} Make sure there are no extra characters or spaces when copying the JWT token. They can invalidate the token and cause 401 errors during authentication. {{< /note >}}
5955

60-
```shell
61-
kubectl create secret docker-registry regcred \
62-
--docker-server=private-registry.nginx.com \
63-
--docker-username=<JWT Token> \
64-
--docker-password=none
65-
```
56+
- **Kubernetes**:
57+
58+
```shell
59+
kubectl create secret docker-registry regcred \
60+
--docker-server=private-registry.nginx.com \
61+
--docker-username=<JWT Token> \
62+
--docker-password=none
63+
```
64+
65+
- **OpenShift**:
66+
67+
```shell
68+
oc create secret docker-registry regcred \
69+
--docker-server=private-registry.nginx.com \
70+
--docker-username=<JWT Token> \
71+
--docker-password=none
72+
```
6673

6774
{{< warning >}}
6875

@@ -74,9 +81,18 @@ This can be ignored (since no password is used), but if others have access to th
7481

7582
To confirm the secret is created:
7683

77-
```shell
78-
kubectl get secret regcred --output=yaml
79-
```
84+
- **Kubernetes**:
85+
86+
```shell
87+
kubectl get secret regcred --output=yaml
88+
```
89+
90+
- **OpenShift**:
91+
92+
```shell
93+
oc get secret regcred --output=yaml
94+
```
95+
8096

8197
You can now use this secret for Helm deployments and point the charts to the public registry.
8298

@@ -99,14 +115,16 @@ The first command adds the `nginx-stable` repository to your local Helm repo lis
99115

100116
## Create a Helm deployment values.yaml file
101117

102-
The `values.yaml` file customizes the Helm chart installation without editing the chart itself. You can specify image repositories, environment variables, resource requests, and more.
118+
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.
103119

104120
1. Create a `values.yaml` file similar to this example:
105121

106122
- In the `imagePullSecrets` section, add the credentials for your private Docker registry.
107123
- Change the version tag to the version of NGINX Instance Manager you would like to install. See "Install the chart" below for versions.
124+
- Replace `<my-docker-registry:port>` with your private Docker registry and port (if applicable).
125+
- If deploying on OpenShift, add the `openshift.enabled: true` setting.
108126

109-
{{< see-also >}} For more 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/). {{</ see-also >}}
127+
{{< 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/). {{</ see-also >}}
110128

111129
```yaml
112130
nms-hybrid:
@@ -138,13 +156,74 @@ The `values.yaml` file customizes the Helm chart installation without editing th
138156
tag: <version>
139157
```
140158
141-
This file specifies the Docker images for `apigw`, `core`, `dpm`, `ingestion`, `integrations`, and `utility`. It also indicates that a secret called `regcred` should be used for pulling images.
159+
2. Save and close the `values.yaml` file.
160+
161+
---
162+
163+
## Enabling OpenShift
164+
165+
If deploying on OpenShift, include this setting in the `values.yaml` file:
166+
167+
```yaml
168+
nms-hybrid:
169+
openshift:
170+
enabled: true
171+
```
172+
173+
### How OpenShift handles security constraints
174+
175+
When `openshift.enabled: true` is set in the `values.yaml` file, the NGINX Instance Manager deployment automatically creates a **custom Security Context Constraint (SCC)** and links it to the Service Account used by all pods.
176+
177+
By default, OpenShift enforces strict security policies that require containers to run as **non-root** users. The NGINX Instance Manager deployment needs specific user IDs (UIDs) for certain services, such as **1000** for `nms` and **101** for `nginx` and `clickhouse`. Since the default SCCs do not allow these UIDs, a **custom SCC** is created. This ensures that the deployment can run with the necessary permissions while maintaining OpenShift’s security standards.
178+
179+
The custom SCC allows these UIDs by setting the `runAsUser` field, which controls which users can run containers. To verify that the SCC has been created, run:
180+
181+
```shell
182+
oc get scc nms-restricted-v2-scc --output=yaml
183+
```
142184

143-
1. Save and close the `values.yaml` file.
144185

145186
---
146187

147188

189+
To apply network policies for NGINX Instance Manager, ensure Kubernetes has a [network plugin](https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/) installed before the Helm chart installation.
190+
191+
By default, the following network policies will be created in the release namespace:
192+
193+
- **Kubernetes**:
194+
195+
```shell
196+
kubectl get netpol -n nms
197+
```
198+
199+
- **OpenShift**:
200+
201+
```shell
202+
oc get netpol -n nms
203+
```
204+
205+
**Output**
206+
207+
```text
208+
NAME POD-SELECTOR AGE
209+
apigw app.kubernetes.io/name=apigw 4m47s
210+
clickhouse app.kubernetes.io/name=clickhouse 4m47s
211+
core app.kubernetes.io/name=core 4m47s
212+
dpm app.kubernetes.io/name=dpm 4m47s
213+
ingestion app.kubernetes.io/name=ingestion 4m47s
214+
integrations app.kubernetes.io/name=integrations 4m47s
215+
utility app.kubernetes.io/name=integrations 4m47s
216+
```
217+
218+
To disable network policies, update the `values.yaml` file:
219+
220+
```yaml
221+
networkPolicies:
222+
# Set this to true to enable network policies for NGINX Instance Manager.
223+
enabled: false
224+
```
225+
226+
---
148227

149228
## Install the chart
150229

content/nim/monitoring/security-monitoring/configure/_index.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

content/nim/monitoring/security-monitoring/configure/create-role-security-monitoring.md

Lines changed: 0 additions & 68 deletions
This file was deleted.

0 commit comments

Comments
 (0)