Skip to content

Commit 44dbe35

Browse files
authored
Merge branch 'main' into Update-docs-issue147
2 parents 9dbb634 + 90f5e08 commit 44dbe35

File tree

225 files changed

+25821
-2261
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

225 files changed

+25821
-2261
lines changed

.github/CODEOWNERS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ content/includes/nginxaas-azure/* @nginx/n4a-docs-approvers
3737
content/ngf/* @nginx/nginx-gateway-fabric
3838
content/includes/ngf/* @nginx/nginx-gateway-fabric
3939

40+
# NGINX Ingress Controller
41+
content/nic/* @nginx/kic
42+
content/includes/nic/* @nginx/kic
43+
4044
# NGINX Instance Manager
4145
content/nms/nim/* @nginx/nim-docs-approvers
4246
content/nim/* @nginx/nim-docs-approvers

.github/workflows/build-push.yml

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ jobs:
5858
5959
call-docs-build-push:
6060
needs: prod-check-branch
61-
uses: nginxinc/docs-actions/.github/workflows/docs-build-push.yml@9c59fab05a8131f4d691ba6ea2b6a119f3ef832a # v1.0.7
61+
uses: nginxinc/docs-actions/.github/workflows/docs-build-push.yml@bc2ae667727ba02b3d70dacee231ce04f7d94344 # v1.0.8
6262
with:
6363
production_url_path: ""
6464
preview_url_path: "${{ vars.PREVIEW_URL_PATH }}"
@@ -79,16 +79,37 @@ jobs:
7979
runs-on: ubuntu-latest
8080
permissions: read-all
8181
steps:
82-
- name: Trigger 'Slack notification for new theme release' workflow in 'nginx-hugo-theme' repo.
83-
run: |
84-
curl -L \
85-
-X POST \
86-
-H "Accept: application/vnd.github+json" \
87-
-H "Authorization: Bearer ${{ secrets.THEME_SLACK_FLOW_PAT }}" \
88-
-H "X-GitHub-Api-Version: 2022-11-28" \
89-
"https://api.github.com/repos/${{ secrets.OWNER }}/${{ secrets.REPO }}/dispatches" \
90-
-d "{\"event_type\": \"trigger-slack-notification\", \"client_payload\": {\"previewURL\": \"${{ env.PREVIEW_URL }}\", \"author\": \"${{ github.event.client_payload.author}}\", \"tag_name\": \"${{ github.event.client_payload.tag_name }}\", \"release_name\": \"${{ github.event.client_payload.release_name }}\"}}"
82+
- name: Send notification
83+
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e # v3.18.0
84+
with:
85+
status: custom
86+
custom_payload: |
87+
{
88+
username: 'Github',
89+
mention: 'channel',
90+
attachments: [{
91+
title: `New theme release - ${{ github.event.client_payload.release_name }}`,
92+
color: '#009223',
93+
fields: [
94+
{
95+
title: 'Tag',
96+
value: `${{ github.event.client_payload.tag_name }}`,
97+
short: true
98+
},
99+
{
100+
title: 'Author',
101+
value: `${{ github.event.client_payload.author }}`,
102+
short: true
103+
},
104+
{
105+
title: 'Preview URL',
106+
value: `${{ env.PREVIEW_URL }}`,
107+
short: true
108+
}]
109+
}]
110+
}
91111
env:
112+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_FRIENDS_OF_DOCS }}
92113
PREVIEW_URL: ${{ needs.call-docs-build-push.outputs.PREVIEW_URL }}
93114

94115

.github/workflows/notification.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,4 +75,4 @@ jobs:
7575
}]
7676
}
7777
env:
78-
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
78+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_DOCS_INCIDENT }}

.github/workflows/ossf_scorecard.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,6 @@ jobs:
5656

5757
# Upload the results to GitHub's code scanning dashboard.
5858
- name: Upload SARIF results to code scanning
59-
uses: github/codeql-action/upload-sarif@fca7ace96b7d713c7035871441bd52efbe39e27e # v3.28.19
59+
uses: github/codeql-action/upload-sarif@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
6060
with:
6161
sarif_file: results.sarif

_banners/agent-v3-release.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{{< banner "notice" "NGINX Agent 3.0 is now available" >}}
2+
3+
4+
F5 NGINX One Console does not currently support Agent 3.x. If you are using NGINX One Console in your environment, upgrade to the latest Agent 2.x version by following the [Upgrade NGINX Agent](/nginx-agent/installation-upgrade/upgrade/) guide.
5+
6+
Please see the [Technical specifications](/nginx-agent/technical-specifications/) for product compatibility.
7+
8+
9+
{{< /banner >}}

cleanup_log.txt

Lines changed: 929 additions & 0 deletions
Large diffs are not rendered by default.

config/_default/config.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,19 @@ pygmentsUseClasses = true
77
enableGitInfo = true
88

99
[permalinks]
10+
agent = '/nginx-agent/:sections[1:]/:filename'
1011
amplify = '/nginx-amplify/:sections[1:]/:filename'
1112
controller = '/nginx-controller/:sections[1:]/:filename'
1213
mesh = '/nginx-service-mesh/:sections[1:]/:filename'
1314
modsec-waf = '/nginx-waf/:sections[1:]/:filename'
1415
nap-dos = '/nginx-app-protect-dos/:sections[1:]/:filename'
1516
nap-waf = '/nginx-app-protect-waf/:sections[1:]/:filename'
17+
nginxaas = '/nginxaas/azure/:sections[1:]/:filename'
1618
ngf = '/nginx-gateway-fabric/:sections[1:]/:filename'
19+
nic = '/nginx-ingress-controller/:sections[1:]/:filename'
1720
nim = '/nginx-instance-manager/:sections[1:]/:filename'
1821
nms = '/nginx-management-suite/:sections[1:]/:filename'
1922
unit = '/nginx-unit/:sections[1:]/:filename'
20-
agent = '/nginx-agent/:sections[1:]/:filename'
21-
nginxaas = '/nginxaas/azure/:sections[1:]/:filename'
2223

2324
[caches]
2425
[caches.modules]

content/agent/_index.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
---
22
title: NGINX Agent
3-
description: NGINX Agent is a companion daemon for your NGINX Open Source or NGINX
4-
Plus instance.
53
url: /nginx-agent/
64
cascade:
75
logo: NGINX-product-icon.png
6+
banner:
7+
enabled: true
8+
type: deprecation
9+
start-date: 2025-05-29
10+
end-date: 2025-09-09
11+
md: /_banners/agent-v3-release.md
812
---

content/agent/technical-specifications.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,17 @@ type:
1212

1313
This document provides technical specifications for NGINX Agent. It includes information on supported distributions, deployment environments, NGINX versions, sizing recommendations, and logging.
1414

15+
## NGINX Agent v3.0 Compatibility
16+
{{< bootstrap-table "table table-striped table-bordered" >}}
17+
| NGINX Product | Agent Version |
18+
|------------------------------|----------------|
19+
| **NGINX One Console** | 2.x |
20+
| **NGINX Gateway Fabric** | 3.x |
21+
| **NGINX Plus** | 2.x, 3.x |
22+
| **NGINX Ingress Controller** | 2.x |
23+
| **NGINX Instance Manager** | 2.x |
24+
{{< /bootstrap-table >}}
25+
1526
## Supported Distributions
1627

1728
NGINX Agent can run in most environments. We support the following distributions:

content/includes/installation/add-nms-repo.md

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,23 +36,39 @@ Add the NGINX Instance Manager repository:
3636

3737
{{%tab name="Debian, Ubuntu, Deb-Based"%}}
3838

39-
Add the NGINX Instance Manager repository:
40-
41-
- **Debian**
39+
1. Add the NGINX signing key:
4240

4341
```shell
44-
printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://pkgs.nginx.com/nms/debian `lsb_release -cs` nginx-plus\n" | sudo tee /etc/apt/sources.list.d/nms.list
45-
sudo wget -q -O /etc/apt/apt.conf.d/90pkgs-nginx https://cs.nginx.com/static/files/90pkgs-nginx
42+
wget -qO - https://cs.nginx.com/static/keys/nginx_signing.key \
43+
| gpg --dearmor \
44+
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
4645
```
4746

48-
<br>
47+
2. Add the NGINX Instance Manager repository:
4948

50-
- **Ubuntu**
49+
- **Debian**
5150

52-
```shell
53-
printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://pkgs.nginx.com/nms/ubuntu `lsb_release -cs` nginx-plus\n" | sudo tee /etc/apt/sources.list.d/nms.list
54-
sudo wget -q -O /etc/apt/apt.conf.d/90pkgs-nginx https://cs.nginx.com/static/files/90pkgs-nginx
55-
```
51+
```shell
52+
printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
53+
https://pkgs.nginx.com/nms/debian $(lsb_release -cs) nginx-plus\n" | \
54+
sudo tee /etc/apt/sources.list.d/nms.list
55+
56+
sudo wget -q -O /etc/apt/apt.conf.d/90pkgs-nginx \
57+
https://cs.nginx.com/static/files/90pkgs-nginx
58+
```
59+
60+
<br>
61+
62+
- **Ubuntu**
63+
64+
```shell
65+
printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
66+
https://pkgs.nginx.com/nms/ubuntu $(lsb_release -cs) nginx-plus\n" | \
67+
sudo tee /etc/apt/sources.list.d/nms.list
68+
69+
sudo wget -q -O /etc/apt/apt.conf.d/90pkgs-nginx \
70+
https://cs.nginx.com/static/files/90pkgs-nginx
71+
```
5672

5773
{{%/tab%}}
5874
{{</tabs>}}

content/includes/installation/clickhouse-defaults.md

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

content/includes/ngf/installation/expose-nginx-gateway-fabric.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,4 @@ There are two options for accessing NGINX Gateway Fabric depending on the type o
5050

5151
NGINX Gateway Fabric uses the created service to update the **Addresses** field in the **Gateway Status** resource. Using a **LoadBalancer** service sets this field to the IP address and/or hostname of that service. Without a service, the pod IP address is used.
5252

53-
This gateway is associated with the NGINX Gateway Fabric through the **gatewayClassName** field. The default installation of NGINX Gateway Fabric creates a **GatewayClass** with the name **nginx**. NGINX Gateway Fabric will only configure gateways with a **gatewayClassName** of **nginx** unless you change the name via the `--gatewayclass` [command-line flag]({{< ref "/ngf/reference/cli-help.md#static-mode">}}).
53+
This gateway is associated with the NGINX Gateway Fabric through the **gatewayClassName** field. The default installation of NGINX Gateway Fabric creates a **GatewayClass** with the name **nginx**. NGINX Gateway Fabric will only configure gateways with a **gatewayClassName** of **nginx** unless you change the name via the `--gatewayclass` [command-line flag]({{< ref "/ngf/reference/cli-help.md#controller">}}).

content/includes/ngf/installation/nginx-plus/docker-registry-secret.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
docs: "DOCS-000"
33
---
44

5-
{{< note >}} If you would rather pull the NGINX Plus image and push to a private registry, you can skip this specific step and instead follow [this step]({{< ref "/ngf/install/nginx-plus.md#pulling-an-image-for-local-use" >}}). {{< /note >}}
5+
{{< note >}} If you would rather pull the NGINX Plus image and push to a private registry, you can skip this specific step and instead follow [this step]({{< ref "/ngf/install/nginx-plus.md#pull-an-image-for-local-use" >}}). {{< /note >}}
66

77
If the `nginx-gateway` namespace does not yet exist, create it:
88

content/includes/nginx-plus/usage-tracking/overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ Start by installing NGINX Instance Manager on a dedicated host. Then, configure
66

77

88
{{<call-out tip "Tip for Automated Reporting">}}
9-
To set up automatic reporting, [add your JWT-based license to NGINX Instance Manager]({{< ref "/nim/admin-guide/license/add-license.md#apply-jwt-license" >}}). This license can be downloaded from [MyF5](https://account.f5.com/myf5) if needed.
9+
To set up automatic reporting, [add your JWT-based license to NGINX Instance Manager]({{< ref "/nim/admin-guide/add-license.md#apply-jwt-license" >}}). This license can be downloaded from [MyF5](https://account.f5.com/myf5) if needed.
1010
{{</call-out>}}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
The following table shows compatibility between NGINX Ingress Controller (NIC) and NGINX App Protect WAF (NAP-WAF) versions:
2+
3+
{{< bootstrap-table "table table-striped table-responsive" >}}
4+
| NIC Version | NAP-WAF Version | Config Manager | Enforcer |
5+
| ------------------- | --------------- | -------------- | -------- |
6+
| {{< nic-version >}} | 34+5.332 | 5.6.0 | 5.6.0 |
7+
| 4.0.1 | 33+5.264 | 5.5.0 | 5.5.0 |
8+
| 3.7.2 | 32+5.1 | 5.3.0 | 5.3.0 |
9+
| 3.6.2 | 32+5.48 | 5.2.0 | 5.2.0 |
10+
{{% /bootstrap-table %}}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
title: Configuration
3+
description:
4+
weight: 1400
5+
menu:
6+
docs:
7+
parent: NGINX Ingress Controller
8+
---
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
---
2+
title: Deploy a Policy for access control
3+
weight: 900
4+
toc: true
5+
docs: DOCS-000
6+
---
7+
8+
This topic describes how to use F5 NGINX Ingress Controller to apply and update a Policy for access control. It demonstrates it using an example application and a [VirtualServer custom resource]({{< ref "/configuration/virtualserver-and-virtualserverroute-resources.md" >}}).
9+
10+
---
11+
12+
## Before you begin
13+
14+
You should have a [working NGINX Ingress Controller]({{< ref "/installation/installing-nic/installation-with-helm.md" >}}) instance.
15+
16+
For ease of use in shell commands, set two shell variables:
17+
18+
1. The public IP address for your NGINX Ingress Controller instance.
19+
20+
```shell
21+
IC_IP=<ip-address>
22+
```
23+
24+
2. The HTTP port of the same instance.
25+
26+
```shell
27+
IC_HTTP_PORT=<port number>
28+
```
29+
30+
---
31+
32+
## Deploy the example application
33+
34+
Create the file _webapp.yaml_ with the following contents:
35+
36+
{{< ghcode "https://raw.githubusercontent.com/nginx/kubernetes-ingress/refs/heads/main/examples/custom-resources/access-control/webapp.yaml" >}}
37+
38+
Apply it using `kubectl`:
39+
40+
```shell
41+
kubectl apply -f webapp.yaml
42+
```
43+
44+
---
45+
46+
## Deploy a Policy to create a deny rule
47+
48+
Create a file named _access-control-policy-deny.yaml_. The highlighted _deny_ field will be used by the example application, and should be changed to the subnet of your machine.
49+
50+
{{< ghcode "https://raw.githubusercontent.com/nginx/kubernetes-ingress/refs/heads/main/examples/custom-resources/access-control/access-control-policy-deny.yaml" "hl_lines=7-8" >}}
51+
52+
Apply the policy:
53+
54+
```shell
55+
kubectl apply -f access-control-policy-deny.yaml
56+
```
57+
58+
---
59+
60+
## Configure load balancing
61+
62+
Create a file named _virtual-server.yaml_ for the VirtualServer resource. The _policies_ field references the access control Policy created in the previous section.
63+
64+
{{< ghcode "https://raw.githubusercontent.com/nginx/kubernetes-ingress/refs/heads/main/examples/custom-resources/access-control/virtual-server.yaml" "hl_lines=7-8" >}}
65+
66+
Apply the policy:
67+
68+
```shell
69+
kubectl apply -f virtual-server.yaml
70+
```
71+
72+
---
73+
74+
## Test the example application
75+
76+
Use `curl` to attempt to access the application:
77+
78+
```shell
79+
curl --resolve webapp.example.com:$IC_HTTP_PORT:$IC_IP http://webapp.example.com:$IC_HTTP_PORT
80+
```
81+
```text
82+
<html>
83+
<head><title>403 Forbidden</title></head>
84+
<body>
85+
<center><h1>403 Forbidden</h1></center>
86+
</body>
87+
</html>
88+
```
89+
90+
The *403* response is expected, successfully blocking your machine.
91+
92+
---
93+
94+
## Update the Policy to create an allow rule
95+
96+
Update the Policy with the file _access-control-policy-allow.yaml_, setting the _allow_ field to the subnet of your machine.
97+
98+
{{< ghcode "https://raw.githubusercontent.com/nginx/kubernetes-ingress/refs/heads/main/examples/custom-resources/access-control/access-control-policy-allow.yaml" "hl_lines=7-8" >}}
99+
100+
Apply the Policy:
101+
102+
```shell
103+
kubectl apply -f access-control-policy-allow.yaml
104+
```
105+
106+
----
107+
108+
## Verify the Policy update
109+
110+
Attempt to access the application again:
111+
112+
```shell
113+
curl --resolve webapp.example.com:$IC_HTTP_PORT:$IC_IP http://webapp.example.com:$IC_HTTP_PORT
114+
```
115+
```text
116+
Server address: 10.64.0.13:8080
117+
Server name: webapp-5cbbc7bd78-wf85w
118+
```
119+
120+
The successful response demonstrates that the policy has been updated.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
docs: DOCS-584
3+
doctypes:
4+
- ''
5+
title: Configuration examples
6+
toc: true
7+
weight: 400
8+
---
9+
10+
Our [GitHub repo](https://github.com/nginx/kubernetes-ingress) includes a number of configuration examples:
11+
12+
- [*Examples of Custom Resources*](https://github.com/nginx/kubernetes-ingress/tree/v{{< nic-version >}}/examples/custom-resources) show how to advanced NGINX features by using VirtualServer, VirtualServerRoute, TransportServer and Policy Custom Resources.
13+
- [*Examples of Ingress Resources*](https://github.com/nginx/kubernetes-ingress/tree/v{{< nic-version >}}/examples/ingress-resources) show how to use advanced NGINX features in Ingress resources with annotations.

0 commit comments

Comments
 (0)