Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
5ffae19
added view recent usage doc
travisamartin Aug 27, 2026
701664e
docs(TECHDOCS-5505): add NGF security event export and visibility
travisamartin Aug 28, 2026
d0ec8b1
Merge branch 'main' into internal/techdocs-5505-nim-ngf-sec-events
travisamartin Aug 28, 2026
1cddade
edits to ngf-security-events.md
travisamartin Aug 28, 2026
49bd67c
Merge branch 'main' into internal/nim-2.23-docs
travisamartin Aug 28, 2026
c229d86
edits, updates to tech spec guide
travisamartin Aug 31, 2026
5b5d431
Merge branch 'internal/nim-2.23-docs' of github.com:nginx/internal-do…
travisamartin Aug 31, 2026
4722195
expanded LLM acronym
travisamartin Aug 31, 2026
bc40bcc
Merge branch 'main' into internal/nim-2.23-docs
travisamartin Sep 1, 2026
3959c06
added connect-ngf.md topic, copy edits to touched topics.
travisamartin Sep 1, 2026
e01ae7c
edits
travisamartin Sep 1, 2026
b397cec
edits
travisamartin Sep 1, 2026
2604f67
docs(TECHDOCS-5505): address shaun-nx review on connect-ngf.md
travisamartin Sep 1, 2026
fe7a1a7
edits
travisamartin Sep 1, 2026
7143945
Merge branch 'internal/techdocs-5505-nim-ngf-sec-events' of github.co…
travisamartin Sep 1, 2026
d97b5bd
Merge branch 'internal/nim-2.23-docs' of github.com:nginx/internal-do…
travisamartin Sep 1, 2026
278154b
fixed broken links
travisamartin Sep 1, 2026
0cb3eb4
docs (TECHDOCS-5507): deploy NIM rootless Docker image (#317)
travisamartin Sep 2, 2026
4f1762c
docs(TECHDOCS-5505): add NGF security event export and visibility (#316)
travisamartin Sep 2, 2026
119f93e
edits per tech review
travisamartin Sep 2, 2026
46ab407
Revert "edits per tech review"
travisamartin Sep 2, 2026
00e6f98
Revert "docs (TECHDOCS-5507): deploy NIM rootless Docker image (#317)"
travisamartin Sep 2, 2026
ba0393c
docs(DOCS-805): update NIM supported distros for 2.23 (#320)
travisamartin Sep 2, 2026
0d5fdec
Merge branch 'internal/nim-2.23-docs' into internal/cherry-pick-nim-2…
travisamartin Sep 3, 2026
5db82f0
added 2.23 rns (#321)
travisamartin Sep 3, 2026
54dca9f
Merge branch 'main' into internal/cherry-pick-nim-2.23-docs
travisamartin Sep 3, 2026
aeda555
reverted regressions in policy-sources.md
travisamartin Sep 3, 2026
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
6 changes: 3 additions & 3 deletions content/includes/nim/tech-specs/supported-distros.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ The following table lists the Linux distributions supported by NGINX Instance Ma
|-----------------|----------------------------------------|------------------|-----------------------------------------------------|----------------------------------------------------|
| Debian | 11<hr>12<hr>13 | x86_64<hr>x86_64<hr>x86_64 | Supported<hr>Supported<hr>Supported | Supported<hr>Supported<hr>Supported |
| Oracle Linux | 8.0 and later in the 8.x family | x86_64 | Supported | Supported |
| RHEL and Rocky | 8.0 and later in the 8.x family<hr>9.0 and later in the 9.x family<hr>10.0 and later in the 10.x family | x86_64<hr>x86_64<hr>x86_64 | Supported<hr>Supported<hr>Supported | Supported<hr>Supported<hr>Supported |
| Ubuntu | 22.04<hr>24.04<hr>26.04 | x86_64<hr>x86_64<hr>x86_64 | Supported<hr>Supported on 2.18.0+ | Supported<hr>Supported<hr>Supported |
| RHEL | 8.0 and later in the 8.x family<hr>9.0 and later in the 9.x family<hr>10.0 and later in the 10.x family | x86_64<hr>x86_64<hr>x86_64 | Supported<hr>Supported<hr>Supported | Supported<hr>Supported<hr>Supported |
| Rocky Linux | 8.0 and later in the 8.x family<hr>9.0 and later in the 9.x family<hr>10.0 and later in the 10.x family | x86_64<hr>x86_64<hr>x86_64 | Supported (via RHEL compatibility packages)<hr>Supported (via RHEL compatibility packages)<hr>Supported (native packages on 2.23.0+) | Supported<hr>Supported<hr>Supported |
| Ubuntu | 22.04<hr>24.04<hr>26.04 LTS | x86_64<hr>x86_64<hr>x86_64 | Supported<hr>Supported on 2.18.0+<hr>Supported on 2.23.0+ | Supported<hr>Supported<hr>Supported |

{{</table >}}



3 changes: 3 additions & 0 deletions content/ngf/overview/technical-specifications.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ The following table lists the software versions NGINX Gateway Fabric supports. O
| 1.3.0 | 1.1.0 | 1.25+ | 1.27.0 | R32 | --- | --- |
| 1.2.0 | 1.0.0 | 1.23+ | 1.25.4 | R31 | --- | --- |

{{< call-out class="note" title="Note: NGINX Instance Manager integration" >}}
For version requirements to export F5 WAF for NGINX security events to NGINX Instance Manager, see [Export security logs to F5 NGINX Instance Manager]({{< ref "/ngf/waf-integration/policy-sources.md#export-security-logs-to-f5-nginx-instance-manager" >}}).{{< /call-out >}}

### OpenShift Compatibility

The following table lists the OpenShift versions and Operator versions compatible with NGINX Gateway Fabric.
Expand Down
131 changes: 101 additions & 30 deletions content/ngf/waf-integration/policy-sources.md

Large diffs are not rendered by default.

23 changes: 23 additions & 0 deletions content/ngf/waf-integration/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,29 @@ To resolve the conflict, choose one of the following approaches:

---

### Security events aren't reaching NGINX Instance Manager

F5 WAF for NGINX generates security events, but they don't appear in the NGINX Instance Manager Security Monitoring dashboard, even though the `WAFPolicy` resource shows `Programmed`.

**How to identify the problem:**

Check whether the event reached NGINX Agent inside the pod:

```shell
kubectl exec <GATEWAY_POD> -n <NAMESPACE> -c nginx -- \
tail -100 /var/log/nginx-agent/opentelemetry-collector-agent.log
```

If the event isn't in this log, F5 WAF for NGINX isn't reaching NGINX Agent. If the event is in the log but not in NGINX Instance Manager, the export from NGINX Agent is failing.

**Resolution:**

- **Event missing from the NGINX Agent log:** Confirm the `WAFPolicy` `securityLogs.destination.syslog.server` field is set to exactly `localhost:1514`. Any other value prevents the event from reaching NGINX Agent, which listens on `127.0.0.1:1514` inside the `nginx` container.
- **Event in the log but export fails:** Check the log for `Unauthenticated` errors. A JWT authentication failure between NGINX Agent and NGINX Instance Manager causes this error. This is the same NGINX Plus subscription JWT used to create the NGINX Plus Secret in [Connect NGINX Gateway Fabric to NGINX Instance Manager]({{< ref "/nim/connect-kubernetes/connect-ngf.md" >}}). If the JWT has expired or was revoked, download a new one from [MyF5](https://my.f5.com/manage/s/) and repeat the steps to recreate the Secret. NGINX Gateway Fabric doesn't pick up a rotated Secret automatically. Restart the Gateway pod after recreating it.
- **Export succeeds but NGINX Instance Manager shows nothing:** Confirm NGINX Instance Manager's embedded OpenTelemetry collector is running and reachable on port `4317`. See [Troubleshooting]({{< ref "/nim/security-monitoring/troubleshooting.md" >}}) for the NGINX Instance Manager–side checks.

---

## See also

- [F5 WAF for NGINX overview]({{< ref "/ngf/waf-integration/overview.md" >}})
Expand Down
11 changes: 11 additions & 0 deletions content/nim/connect-kubernetes/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
title: Connect Kubernetes deployments
weight: 85
url: /nginx-instance-manager/connect-kubernetes/
f5-product: NGINX Instance Manager
f5-content-type: landing-page
description: "Connect Kubernetes-based NGINX deployments, such as NGINX Gateway Fabric, to F5 NGINX Instance Manager."
f5-summary: >
Connect Kubernetes-based NGINX deployments to F5 NGINX Instance Manager.
This section covers connecting NGINX Gateway Fabric for usage and licensing reporting.
---
75 changes: 75 additions & 0 deletions content/nim/connect-kubernetes/connect-ngf.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
title: Connect NGINX Gateway Fabric to NGINX Instance Manager
weight: 100
toc: true
f5-content-type: how-to
f5-product: NGINX Instance Manager
f5-docs:
description: "Connect NGINX Gateway Fabric to F5 NGINX Instance Manager to export F5 WAF security events to the Security Dashboard."
f5-summary: >
Connect NGINX Gateway Fabric to F5 NGINX Instance Manager to export F5 WAF security events to the Security Dashboard.
This page covers the NGINX Plus JWT, the NGINX Plus Secret, and the Helm values required to configure the connection.
---

## Overview

Connect NGINX Gateway Fabric to NGINX Instance Manager to export F5 WAF security events to the Security Dashboard.

This connection supports security event export only. F5 WAF policy fetching uses a separate credential flow. See [Configure policy sources]({{< ref "/ngf/waf-integration/policy-sources.md" >}}).

---

## Before you begin

Before you begin, verify that you have:

- Administrator access to a Kubernetes cluster
- Helm and kubectl installed locally
- An NGINX Plus subscription

---

## Download your NGINX Plus JWT

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

---

## Create the NGINX Plus Secret

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

This Secret is required to run NGINX Plus, with or without F5 WAF for NGINX. It also authenticates the connection from NGINX Gateway Fabric to NGINX Instance Manager.

---

## Install Gateway API resources

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

---

## Install NGINX Gateway Fabric

This integration requires NGINX Plus with F5 WAF for NGINX. Install NGINX Gateway Fabric using the following Helm command:

```shell
helm install ngf oci://ghcr.io/nginx/charts/nginx-gateway-fabric \
--set nginx.image.repository=private-registry.nginx.com/nginx-gateway-fabric/nginx-plus \
--set nginx.plus=true \
--set nginx.config.waf.enable=true \
--set nginx.imagePullSecret=nginx-plus-registry-secret \
--set nginx.usage.secretName=nplus-license \
--set nginx.nginxInstanceManager.endpointHost=<NIM_HOSTNAME> \
-n nginx-gateway
```

Replace `<NIM_HOSTNAME>` with your NGINX Instance Manager hostname.

---

## See also

- [Deploy a Gateway for data plane instances]({{< ref "/ngf/install/deploy-data-plane.md" >}})
- [Configure policy sources]({{< ref "/ngf/waf-integration/policy-sources.md" >}})
- [View NGINX Gateway Fabric security events]({{< ref "/nim/security-monitoring/ngf-security-events.md" >}})
Loading
Loading