You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/6.x/admin-en/configure-kubernetes-en.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,6 +3,15 @@
3
3
4
4
# Fine‑tuning of NGINX-based Wallarm Ingress Controller
5
5
6
+
!!! warning "Community-based NGINX Ingress Controller — end of support"
7
+
Official support of the Community-based NGINX Ingress Controller ends in **April 2026**. This controller will remain functional but will no longer receive updates, bug fixes, or security patches.
8
+
9
+
Wallarm has released a **new Ingress Controller** based on the [F5 NGINX Ingress Controller](https://docs.wallarm.com/7.x/admin-en/installation-kubernetes-en/). We strongly recommend migrating to this version for continued support and security updates.
10
+
11
+
[Deploy the new F5-based Ingress Controller →](https://docs.wallarm.com/7.x/admin-en/installation-kubernetes-en/)
Copy file name to clipboardExpand all lines: docs/6.x/admin-en/installation-kubernetes-en.md
+8-6Lines changed: 8 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,16 +18,18 @@
18
18
19
19
# Deploying NGINX Ingress Controller with Integrated Wallarm Services
20
20
21
-
These instructions provide you with the steps to deploy the Wallarm NGINX-based Ingress controller to your K8s cluster. The solution is deployed from the Wallarm Helm chart.
21
+
!!! warning "Community-based NGINX Ingress Controller — end of support"
22
+
Official support of the Community-based NGINX Ingress Controller ends in **April 2026**. This controller will remain functional but will no longer receive updates, bug fixes, or security patches.
22
23
23
-
The solution is built on the [Community Ingress NGINX Controller](https://github.com/kubernetes/ingress-nginx) with integrated Wallarm services. The latest version uses Community Ingress NGINX Controller 1.15.0 with NGINX stable 1.27.1, the upstream Helm chart 4.15.0, and Alpine Linux 3.23.3 as the base image.
24
+
Wallarm has released a **new Ingress Controller** based on the [F5 NGINX Ingress Controller](https://docs.wallarm.com/7.x/admin-en/installation-kubernetes-en/). We strongly recommend migrating to this version for continued support and security updates.
24
25
25
-
!!! warning
26
-
The Kubernetes community will [retire the Community Ingress NGINX in March 2026](https://blog.nginx.org/blog/the-ingress-nginx-alternative-open-source-nginx-ingress-controller-for-the-long-term). The Wallarm NGINX Ingress Controller based on this project will be supported through the same date. You can continue using it until then, and it will remain fully functional during the support window.
26
+
[Deploy the new F5-based Ingress Controller →](https://docs.wallarm.com/7.x/admin-en/installation-kubernetes-en/)
27
27
28
-
Wallarm will provide alternative deployment options and migration guidance as they become available. [Details][nginx-ingress-retirement-plan]
An [Envoy/Istio-based connector][envoy-connector] is also available today for environments already using Envoy.
30
+
These instructions provide you with the steps to deploy the Wallarm NGINX-based Ingress controller to your K8s cluster. The solution is deployed from the Wallarm Helm chart.
31
+
32
+
The solution is built on the [Community Ingress NGINX Controller](https://github.com/kubernetes/ingress-nginx) with integrated Wallarm services. The latest version uses Community Ingress NGINX Controller 1.15.0 with NGINX stable 1.27.1, the upstream Helm chart 4.15.0, and Alpine Linux 3.23.3 as the base image.
@@ -671,6 +686,12 @@ Controls [fallback behavior][fallback] when Wallarm data (for example, [`proton.
671
686
672
687
**Default value**: `"on"`
673
688
689
+
#### config.wallarm.wstoreMaxConns
690
+
691
+
Maximum number of simultaneous connections to the wstore upstream. Do not change unless advised by Wallarm support.
692
+
693
+
**Default value**: `2`
694
+
674
695
### Wallarm wcli parameters
675
696
676
697
#### config.wcliPostanalytics.logLevel
@@ -1111,13 +1132,63 @@ postanalytics:
1111
1132
| `mutualTLS.enabled` | Enables mutual TLS (mTLS), where both the Filtering Node and the postanalytics module verify each other's identity via certificates. By default, `false` (disabled). | No |
1112
1133
| `mutualTLS.clientCACertFile` | Specifies the path to a trusted Certificate Authority (CA) certificate used to validate the TLS certificate presented by the Filtering Node. | Yes if using a custom CA |
1113
1134
1114
-
### Other parameters
1135
+
### Controller parameters
1136
+
1137
+
#### controller.nginxReloadTimeout
1138
+
1139
+
Timeout in milliseconds which the Ingress Controller will wait for a successful NGINX reload after a configuration change or at the initial start. Increase this value if you have a large number of Ingress resources that cause slow reloads.
1140
+
1141
+
**Default value**: `60000`
1142
+
1143
+
#### controller.enableConfigSafety
1144
+
1145
+
Enables NGINX configuration validation before applying a reload. When enabled, the controller verifies the generated config with `nginx -t` prior to reloading, preventing broken configurations from being applied.
1146
+
1147
+
**Default value**: `false`
1148
+
1149
+
### API Specification Enforcement container parameters
1150
+
1151
+
#### controller.wallarm.apiFirewall.resources
1152
+
1153
+
Kubernetes resource requests and limits for the [API Specification Enforcement][api-firewall] container running in the `controller` pod. Set these to ensure proper resource allocation in production.
Enables the liveness probe for the [API Specification Enforcement][api-firewall] container. When enabled, Kubernetes periodically checks the health endpoint and restarts the container if it becomes unresponsive.
1166
+
1167
+
**Default value**: `false`
1117
1168
1118
-
Additional environment variables to pass to the init container.
Enables the readiness probe for the [API Specification Enforcement][api-firewall] container. When enabled, the container is only marked as ready after passing the readiness check.
1172
+
1173
+
**Default value**: `false`
1119
1174
1120
-
The example below shows how to pass the `https_proxy` and `no_proxy` variables. This setup directs outgoing HTTPS traffic through a designated proxy, while local traffic bypasses it. This configuration is important when external traffic, such as to the Wallarm API, must go through a proxy for security reasons.
1175
+
### Extra environment variables for containers
1176
+
1177
+
You can pass additional environment variables to any Wallarm container. This is useful for configuring proxy settings, custom logging, or injecting secrets.
1178
+
1179
+
The following containers support the `extraEnvs` parameter:
1180
+
1181
+
| Parameter | Container |
1182
+
| --------- | --------- |
1183
+
| `controller.wallarm.initContainer.extraEnvs` | Init container (node registration) in the controller pod |
1184
+
| `controller.wallarm.wcli.extraEnvs` | Wallarm CLI container in the controller pod |
1185
+
| `controller.wallarm.apiFirewall.extraEnvs` | API Specification Enforcement container in the controller pod |
1186
+
| `postanalytics.extraEnvs` | Wstore container in the postanalytics pod |
1187
+
| `postanalytics.initContainer.extraEnvs` | Init container in the postanalytics pod |
1188
+
| `postanalytics.wcli.extraEnvs` | Wallarm CLI container in the postanalytics pod |
1189
+
| `postanalytics.appstructure.extraEnvs` | Appstructure container in the postanalytics pod |
1190
+
1191
+
Example — passing proxy settings to the init container:
1121
1192
1122
1193
```yaml
1123
1194
controller:
@@ -1129,6 +1200,32 @@ controller:
1129
1200
value: https://1.1.1.1:3128
1130
1201
```
1131
1202
1203
+
### Postanalytics security context
1204
+
1205
+
#### postanalytics.securityContext
1206
+
1207
+
Kubernetes security context for the wstore container. Use this to configure security constraints in restricted environments (e.g., OpenShift, Pod Security Standards).
1208
+
1209
+
**Default value**: `{}`
1210
+
1211
+
### Extended Prometheus metrics parameters
1212
+
1213
+
#### prometheusExtended.shmSize
1214
+
1215
+
Shared memory zone size for the VTS (Virtual Host Traffic Status) module. Controls how much data can be stored for extended metrics collection. Increase this if you have a large number of virtual hosts or upstreams and see VTS-related errors in NGINX logs.
1216
+
1217
+
Examples: `"1m"`, `"10m"`, `"32m"`.
1218
+
1219
+
**Default value**: `"10m"` (if not set)
1220
+
1221
+
#### prometheusExtended.detailedCodes
1222
+
1223
+
Specifies which HTTP status codes to track in detail. By default, VTS aggregates response codes into classes (2xx, 3xx, etc.). This parameter allows tracking individual status codes.
**Default value**: not set (codes are aggregated by class)
1228
+
1132
1229
### Annotation validation
1133
1230
1134
1231
NGINX Ingress Controller validates annotations by itself. If an Ingress has invalid annotation values, the controller rejects/ignores that Ingress configuration and reports it via Kubernetes Events (for example, a Rejected event). [See "Advanced configuration with Annotations"](https://docs.nginx.com/nginx-ingress-controller/configuration/ingress-resources/advanced-configuration-with-annotations/).
@@ -1166,18 +1263,18 @@ Besides the Wallarm-specific annotations described below, [standard NGINX Ingres
1166
1263
!!! info "Annotation prefix"
1167
1264
In the F5-based controller, annotations use the `nginx.org/*` prefix instead of `nginx.ingress.kubernetes.io/*`. This applies to both general NGINX annotations and Wallarm-specific annotations. [See more details][new-annotations].
| `nginx.org/wallarm-mode-allow-override` | Manages the [ability to override the `wallarm_mode values` via settings in the Cloud](../admin-en/configure-wallarm-mode.md#prioritization-of-methods): `on` (default), `off` or `strict`. |
| `nginx.org/wallarm-mode-allow-override` | Manages the [ability to override the `wallarm_mode values` via settings in the Cloud](../admin-en/configure-wallarm-mode.md#prioritization-of-methods): `on` (default), `off` or `strict`. |
| `nginx.org/wallarm-block-page` | [Blocking page and error code](../admin-en/configuration-guides/configure-block-page-and-code.md) to return to blocked requests. |
1176
1273
| `nginx.org/wallarm-unpack-response` | Whether to decompress compressed data returned in the application response: `on`(default) or `off`. |
1177
1274
| `nginx.org/wallarm-parse-response` | Whether to analyze the application responses for attacks: `on`(default) or `off`. Response analysis is required for vulnerability detection during [passive detection](../about-wallarm/detecting-vulnerabilities.md#passive-detection) and [threat replay testing](../about-wallarm/detecting-vulnerabilities.md#threat-replay-testing-trt). |
1178
1275
| `nginx.org/wallarm-parse-websocket` | Wallarm has full WebSockets support. By default, the WebSockets' messages are not analyzed for attacks. To force the feature, activate the API Security [subscription plan](../about-wallarm/subscription-plans.md#core-subscription-plans) and use this annotation: `on` or `off` (default). |
1179
1276
| `nginx.org/wallarm-parser-disable` | Allows to disable [parsers](../user-guides/rules/request-processing.md). The directive values correspond to the name of the parser to be disabled, e.g. `json`. Multiple parsers can be specified, dividing by semicolon, e.g. `json;base64`. |
1180
-
| `nginx.org/wallarm-partner-client-uuid` | Partner client [UUID](../updating-migrating/older-versions/multi-tenant.md#get-uuids-of-your-tenants) for multi-tenant setups. |
1277
+
| `nginx.org/wallarm-partner-client-uuid` | Partner client [UUID](../updating-migrating/older-versions/multi-tenant.md#get-uuids-of-your-tenants) for multi-tenant setups. |
1181
1278
1182
1279
### Applying annotation to the Ingress resource
1183
1280
@@ -1226,7 +1323,7 @@ You can control the [**libdetection**](../admin-en/configure-parameters-en.md#wa
1226
1323
* (Cluster‑wide) Uses the controller `ConfigMap` (via `controller.config.entries`) to apply the setting globally to the Ingress Controller:
The F5-based controller supports [Custom Resource Definitions](https://docs.nginx.com/nginx-ingress-controller/configuration/virtualserver-and-virtualserverroute-resources/) as an alternative to standard Ingress resources for advanced routing (canary deployments, traffic splitting, header-based routing).
1335
+
The F5-based controller supports [Custom Resource Definitions](https://docs.nginx.com/nginx-ingress-controller/configuration/virtualserver-and-virtualserverroute-resources/) as an alternative to standard Ingress resources for advanced routing (canary deployments, traffic splitting, header-based routing). All [standard F5 NGINX Ingress Controller CRDs](https://docs.nginx.com/nginx-ingress-controller/configuration/global-configuration/custom-resources/) are available.
1239
1336
1240
1337
When using CRDs, Wallarm settings are configured via the **Policy** resource instead of annotations. Wallarm patches the upstream Policy CRD to add an optional `spec.wallarm` block — an alternative to Wallarm annotations that provides the same set of settings through a dedicated resource. The Policy is then referenced from `VirtualServer` or `VirtualServerRoute` routes.
Copy file name to clipboardExpand all lines: docs/latest/admin-en/installation-kubernetes-en.md
+2-6Lines changed: 2 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@
20
20
21
21
These instructions provide you with the steps to deploy the Wallarm NGINX-based Ingress controller to your K8s cluster. The solution is deployed from the Wallarm Helm chart.
22
22
23
-
The solution is based on the [F5 NGINX Ingress Controller][new-ic] with integrated Wallarm services. It uses the NGINX Ingress Controller image version 5.3.3. The Wallarm controller image is built on NGINX stable 1.29.x and uses Alpine Linux 3.23 as the base image.
23
+
The solution is based on the [F5 NGINX Ingress Controller][new-ic] with integrated Wallarm services. It uses the NGINX Ingress Controller image version 5.4.0. The Wallarm controller image is built on NGINX stable 1.29.x and uses Alpine Linux 3.23 as the base image.
24
24
25
25
!!! info "Migrating from Community-based solution"
26
26
If you currently have the Wallarm NGINX Ingress Controller based on the Community NGINX Ingress Controller, refer to the [migration guide][migration-doc] for instructions on migrating to this F5-based solution.
@@ -48,10 +48,6 @@ Among all supported [Wallarm deployment options][deployment-platform-docs], this
0 commit comments