Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
d014b72
nic: add docs for sslVerify in JWT policy (#1198)
vepatel Sep 30, 2025
d718d30
nic: add ssl cipher annotations (#1353)
vepatel Oct 23, 2025
30991bc
feat: helm HorizontalPodAutoscaler creation flag (#1355)
pdabelf5 Nov 3, 2025
3735ffb
feat: add OIDC timeout config options to NIC ConfigMap (#1413)
AlexFenlon Nov 7, 2025
8853b37
feat: add documentation for new ingress annotation(#1415)
vepatel Nov 7, 2025
df3490f
Merge branch 'main' into nic-release-5.3
ADubhlaoich Nov 14, 2025
ec13f84
update docs for upstream service in foreign namespace (#1419)
haywoodsh Nov 17, 2025
5348a6e
feat: Add client-body-buffer-size directive to NIC Ingress Annotation…
AlexFenlon Nov 25, 2025
92fe573
Merge branch 'main' into nic-release-5.3
ADubhlaoich Nov 25, 2025
47d13db
Merge branch 'main' into nic-release-5.3
ADubhlaoich Nov 26, 2025
6f0ad96
feat: Add OIDC Policy sslVerify parameters (#1479)
pdabelf5 Nov 26, 2025
94d397c
nic: update policy resource with new fields (#1495)
vepatel Nov 28, 2025
77ef1b8
Merge branch 'main' into nic-release-5.3
ADubhlaoich Dec 1, 2025
3a0e6e7
Merge branch 'main' into nic-release-5.3
ADubhlaoich Dec 3, 2025
47c7076
Update release notes for 5.3.0
javorszky Dec 4, 2025
bf3e908
Merge branch 'main' into nic-release-5.3
vepatel Dec 5, 2025
7a466d3
Delete content/includes/nic/configuration/virtualserver-and-virtualse…
AlexFenlon Dec 5, 2025
51c9fda
Delete content/includes/nic/configuration/ingress-resources/advanced-…
AlexFenlon Dec 5, 2025
b1fe0af
fix: remove includes/ files that were previously removed.
AlexFenlon Dec 5, 2025
399725c
Update release notes for 5.3.0
javorszky Dec 5, 2025
2bf24ec
Update release notes for 5.3.0
javorszky Dec 5, 2025
1e2d751
Update release notes for 5.3.0
javorszky Dec 5, 2025
550ebda
Manually fix up nic release 5.3 docs
javorszky Dec 5, 2025
6ad0aeb
Undo table formatting
javorszky Dec 5, 2025
13af17f
Undo empty line fixes
javorszky Dec 5, 2025
e4e7425
Update release notes for 5.3.0
javorszky Dec 5, 2025
a4d101c
Tweak changelog for 5.3.0
javorszky Dec 5, 2025
56d45bc
Merge branch 'main' into nic-release-5.3
AlexFenlon Dec 8, 2025
8a23cde
remove duplicate PR
vepatel Dec 8, 2025
817005e
Merge branch 'main' into nic-release-5.3
vepatel Dec 8, 2025
f0605c6
Merge branch 'main' into nic-release-5.3
AlexFenlon Dec 8, 2025
1d2d472
Merge branch 'main' into nic-release-5.3
vepatel Dec 8, 2025
3eb3b64
Update Release Date
AlexFenlon Dec 9, 2025
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
3 changes: 2 additions & 1 deletion content/includes/nic/compatibility-tables/nic-k8s.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ NGINX Ingress Controller supports the following versions of [NGINX Plus]({{< ref

| NIC version | Kubernetes versions tested | NIC Helm Chart version | NIC Operator version | NGINX / NGINX Plus version | End of Technical Support |
| --- | --- | --- | --- | --- | --- |
| {{< nic-version >}} | 1.27 - 1.34 | {{< nic-helm-version >}} | {{< nic-operator-version >}} | 1.29.1 / R35 | - |
| {{< nic-version >}} | 1.27 - 1.34 | {{< nic-helm-version >}} | {{< nic-operator-version >}} | 1.29.3 / R36 | - |
| 5.2.1 | 1.27 - 1.34 | 2.3.1 | 3.3.1 | 1.29.1 / R35 | Oct 10, 2027 |
| 5.1.1 | 1.25 - 1.33 | 2.2.2 | 3.2.3 | 1.29.1 / R35 | Aug 15, 2027 |
| 5.0.0 | 1.25 - 1.32 | 2.1.0 | 3.1.0 | 1.27.4 / R34 | Apr 16, 2027 |
| 4.0.1 | 1.25 - 1.32 | 2.0.1 | 3.0.1 | 1.27.4 / R33 P2 | Feb 7, 2027 |
Expand Down
3 changes: 2 additions & 1 deletion content/includes/nic/compatibility-tables/nic-nap.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ NGINX Ingress Controller supports the following versions of [F5 WAF for NGINX](h

| NIC Version | NAP-WAF Version | Config Manager | Enforcer |
| ------------------- | --------------- | -------------- | -------- |
| {{< nic-version >}} | 35+{{< appprotect-compiler-version>}} | {{< nic-waf-release-version >}} | {{< nic-waf-release-version >}} |
| {{< nic-version >}} | 36+{{< appprotect-compiler-version>}} | {{< nic-waf-release-version >}} | {{< nic-waf-release-version >}} |
| 5.2.1 | 35+5.527.0 | 5.9.0 | 5.9.0 |
| 5.1.1 | 35+5.498 | 5.8.0 | 5.8.0 |
| 5.0.0 | 34+5.342 | 5.6.0 | 5.6.0 |
| 4.0.1 | 33+5.264 | 5.5.0 | 5.5.0 |
Expand Down
39 changes: 39 additions & 0 deletions content/nic/changelog/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,45 @@ For older releases, check the changelogs for previous years: [2024]({{< ref "/ni

{{< /details >}}


## 5.3.0

09 Dec 2025

### {{% icon rocket %}} Features
- [8292](https://github.com/nginx/kubernetes-ingress/pull/8292) Add sslverify for jwksuri
- [8447](https://github.com/nginx/kubernetes-ingress/pull/8447) Add support for ssl ciphers related annotations
- [8340](https://github.com/nginx/kubernetes-ingress/pull/8340) Implement oidc front channel logout nginx directives
- [8495](https://github.com/nginx/kubernetes-ingress/pull/8495) Add oidc timeout customization to configmap
- [8453](https://github.com/nginx/kubernetes-ingress/pull/8453) Support namespaced upstream service reference in virtualserver
- [8508](https://github.com/nginx/kubernetes-ingress/pull/8508) Add rewrite-target annotation
- [8548](https://github.com/nginx/kubernetes-ingress/pull/8548) Add `client-body-buffer-size` directive to ingress annotations & configmap
- [8557](https://github.com/nginx/kubernetes-ingress/pull/8557) Add client-body-buffer-size directive to virtualserver
- [8556](https://github.com/nginx/kubernetes-ingress/pull/8556) Add oidc policy idp tls validation
- [8533](https://github.com/nginx/kubernetes-ingress/pull/8533) Extend cache policy for more configurable parameters

### {{% icon bug %}} Fixes
- [8299](https://github.com/nginx/kubernetes-ingress/pull/8299) Remove type field for objects with schema ref
- [8455](https://github.com/nginx/kubernetes-ingress/pull/8455) Cleanup stale socket files on startup

### {{% icon arrow-up %}} Dependencies
- [8553](https://github.com/nginx/kubernetes-ingress/pull/8553) Bump Go dependencies
- [8244](https://github.com/nginx/kubernetes-ingress/pull/8244), [8279](https://github.com/nginx/kubernetes-ingress/pull/8279), [8284](https://github.com/nginx/kubernetes-ingress/pull/8284), [8595](https://github.com/nginx/kubernetes-ingress/pull/8595), [8584](https://github.com/nginx/kubernetes-ingress/pull/8584), [8315](https://github.com/nginx/kubernetes-ingress/pull/8315), [8324](https://github.com/nginx/kubernetes-ingress/pull/8324), [8334](https://github.com/nginx/kubernetes-ingress/pull/8334), [8466](https://github.com/nginx/kubernetes-ingress/pull/8466), [8384](https://github.com/nginx/kubernetes-ingress/pull/8384), [8502](https://github.com/nginx/kubernetes-ingress/pull/8502), [8406](https://github.com/nginx/kubernetes-ingress/pull/8406), [8588](https://github.com/nginx/kubernetes-ingress/pull/8588), [8589](https://github.com/nginx/kubernetes-ingress/pull/8589), [8598](https://github.com/nginx/kubernetes-ingress/pull/8598), [8575](https://github.com/nginx/kubernetes-ingress/pull/8575), [8542](https://github.com/nginx/kubernetes-ingress/pull/8542), [8543](https://github.com/nginx/kubernetes-ingress/pull/8543), [8599](https://github.com/nginx/kubernetes-ingress/pull/8599), [8551](https://github.com/nginx/kubernetes-ingress/pull/8551), [8484](https://github.com/nginx/kubernetes-ingress/pull/8484), [8475](https://github.com/nginx/kubernetes-ingress/pull/8475), [8497](https://github.com/nginx/kubernetes-ingress/pull/8497), [8498](https://github.com/nginx/kubernetes-ingress/pull/8498), [8499](https://github.com/nginx/kubernetes-ingress/pull/8499), [8596](https://github.com/nginx/kubernetes-ingress/pull/8596), [8511](https://github.com/nginx/kubernetes-ingress/pull/8511) & [8581](https://github.com/nginx/kubernetes-ingress/pull/8581) Bump Docker dependencies
- [8616](https://github.com/nginx/kubernetes-ingress/pull/8616) Update dependency go to v1.25.5 (main)
- [8611](https://github.com/nginx/kubernetes-ingress/pull/8611) Bump waf version to 5.10.0
- [8494](https://github.com/nginx/kubernetes-ingress/pull/8494) Update nginx to 1.29.3, nginx agent to 3.5
- [8600](https://github.com/nginx/kubernetes-ingress/pull/8600) Update nginx plus waf pkg and alpine base version



### {{% icon download %}} Upgrade
- For NGINX, use the 5.3.0 images from our [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress/tags?page=1&ordering=last_updated&name=5.3.0), [GitHub Container](https://github.com/nginx/kubernetes-ingress/pkgs/container/kubernetes-ingress), [Amazon ECR Public Gallery](https://gallery.ecr.aws/nginx/nginx-ingress) or [Quay.io](https://quay.io/repository/nginx/nginx-ingress).
- For NGINX Plus, use the 5.3.0 images from the F5 Container registry or build your own image using the 5.3.0 source code.
- For Helm, use version 2.4.0 of the chart.

### {{% icon life-buoy %}} Supported Platforms
We will provide technical support for NGINX Ingress Controller on any Kubernetes platform that is currently supported by its provider and that passes the Kubernetes conformance tests. This release was fully tested on the following Kubernetes versions: 1.27-1.34.

## 5.2.1

10 Oct 2025
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ For more information, view the [VirtualServer and VirtualServerRoute resources](
|*proxy-read-timeout* | Sets the value of the [proxy_read_timeout](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_read_timeout) and [grpc_read_timeout](https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_read_timeout) directive. | *60s* | |
|*proxy-send-timeout* | Sets the value of the [proxy_send_timeout](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_send_timeout) and [grpc_send_timeout](https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_send_timeout) directive. | *60s* | |
|*client-max-body-size* | Sets the value of the [client_max_body_size](https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size) directive. | *1m* | |
|*client-body-buffer-size* | Sets the value of the [client_body_buffer_size](https://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_buffer_size) directive. | N/A | |
|*proxy-buffering* | Enables or disables [buffering of responses](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffering) from the proxied server. | *True* | |
|*proxy-buffers* | Sets the value of the [proxy_buffers](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffers) directive. | Depends on the platform. | |
|*proxy-buffer-size* | Sets the value of the [proxy_buffer_size](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffer_size) and [grpc_buffer_size](https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_buffer_size) directives. | Depends on the platform. | |
Expand Down Expand Up @@ -171,6 +172,18 @@ If you encounter the error `error [emerg] 13#13: "zone_sync" directive is duplic
|*zone-sync-resolver-ipv6* | Configures whether the optional [resolver](https://nginx.org/en/docs/http/ngx_http_core_module.html#resolver) directive for zone-sync will look up IPv6 addresses. NGINX Plus & `zone-sync` Required | `true` |
|*zone-sync-resolver-valid* | Configures an [NGINX time](https://nginx.org/en/docs/syntax.html) that the optional [resolver](https://nginx.org/en/docs/http/ngx_http_core_module.html#resolver) directive for zone-sync will override the TTL value of responses from nameservers with. NGINX Plus & `zone-sync` Required | `5s` |

### OIDC (OpenID Connect) Timeouts

For more information on timeouts, see [here](https://github.com/nginxinc/nginx-openid-connect?tab=readme-ov-file#configuring-the-key-value-store)

| ConfigMap Key | Description | Default |
| ------------- | ------------| ------- |
| *oidc-pkce-timeout* | Sets the timeout for PKCE (Proof Key for Code Exchange) in OIDC. | `90s` |
| *oidc-id-tokens-timeout* | Sets the timeout for ID tokens in OIDC. | `1h` |
| *oidc-access-tokens-timeout* | Sets the timeout for access tokens in OIDC. | `1h` |
| *oidc-refresh-tokens-timeout* | Sets the timeout for refresh tokens in OIDC. | `24h` |
| *oidc-sids-timeout* | Sets the timeout for session IDs in OIDC. | `24h` |

### Snippets and custom templates

|ConfigMap Key | Description | Default | Example |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ The table below summarizes the available annotations.
| *nginx.org/proxy-read-timeout* | *proxy-read-timeout* | Sets the value of the [proxy_read_timeout](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_read_timeout) and [grpc_read_timeout](https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_read_timeout) directive. | *60s* | |
| *nginx.org/proxy-send-timeout* | *proxy-send-timeout* | Sets the value of the [proxy_send_timeout](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_send_timeout) and [grpc_send_timeout](https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_send_timeout) directive. | *60s* | |
| *nginx.org/client-max-body-size* | *client-max-body-size* | Sets the value of the [client_max_body_size](https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size) directive. | *1m* | |
| *nginx.org/client-body-buffer-size* | *client-body-buffer-size* | Sets the value of the [client_body_buffer_size](https://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_buffer_size) directive. | N/A | |
| *nginx.org/proxy-buffering* | *proxy-buffering* | Enables or disables [buffering of responses](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffering) from the proxied server. | *True* | |
| *nginx.org/proxy-buffers* | *proxy-buffers* | Sets the value of the [proxy_buffers](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffers) directive. | Depends on the platform. | |
| *nginx.org/proxy-buffer-size* | *proxy-buffer-size* | Sets the value of the [proxy_buffer_size](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffer_size) and [grpc_buffer_size](https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_buffer_size) directives. | Depends on the platform. | |
Expand All @@ -127,6 +128,7 @@ The table below summarizes the available annotations.
| *nginx.org/proxy-hide-headers* | *proxy-hide-headers* | Sets the value of one or more [proxy_hide_header](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_hide_header) directives. Example: `"nginx.org/proxy-hide-headers": "header-a,header-b"` | N/A | |
| *nginx.org/proxy-pass-headers* | *proxy-pass-headers* | Sets the value of one or more [proxy_pass_header](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass_header) directives. Example: `"nginx.org/proxy-pass-headers": "header-a,header-b"` | N/A | |
| *nginx.org/rewrites* | N/A | Configures URI rewriting using [proxy_pass](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass) directive. | N/A | [rewrites](https://github.com/nginx/kubernetes-ingress/tree/v{{< nic-version >}}/examples/ingress-resources/rewrites) |
| *nginx.org/rewrite-target* | N/A | Configures URI rewriting using the [rewrite](https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite) directive. The annotation value specifies the target path that requests should be rewritten to. Supports regex capture groups (`$1`, `$2`, etc.) when used with `nginx.org/path-regex`. Mutually exclusive with `nginx.org/rewrites`. | N/A | [rewrite-target](https://github.com/nginx/kubernetes-ingress/tree/v{{< nic-version >}}/examples/ingress-resources/rewrite-target) |
|*nginx.org/proxy-set-headers* | N/A | Enables customization of proxy headers and values using the [proxy_set_header](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_set_header) directive. Example: `"nginx.org/proxy-set-headers": "header-a: valueA,header-b: valueB,header-c: valueC"` | N/A | [Proxy Set Headers](https://github.com/nginx/kubernetes-ingress/tree/v{{< nic-version >}}/examples/ingress-resources/proxy-set-headers). |

{{< /table >}}
Expand All @@ -145,6 +147,8 @@ The table below summarizes the available annotations.
| *nginx.org/hsts-behind-proxy* | *hsts-behind-proxy* | Enables HSTS based on the value of the `http_x_forwarded_proto` request header. Should only be used when TLS termination is configured in a load balancer (proxy) in front of NGINX Ingress Controller. Note: to control redirection from HTTP to HTTPS configure the `nginx.org/redirect-to-https` annotation. | *False* | |
| *nginx.org/basic-auth-secret* | N/A | Specifies a Secret resource with a user list for HTTP Basic authentication. | N/A | |
| *nginx.org/basic-auth-realm* | N/A | Specifies a realm. | N/A | |
| *nginx.org/ssl-ciphers* | *ssl-ciphers* | Sets the value of the [ssl_ciphers](https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_ciphers) directive. | N/A | *HIGH:!aNULL:!MD5* |
| *nginx.org/ssl-prefer-server-ciphers* | *ssl-prefer-server-ciphers* | Enables or disables the [ssl_prefer_server_ciphers](https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_prefer_server_ciphers) directive. | *False* | |
| *nginx.com/jwt-key* | N/A | Specifies a Secret resource with keys for validating JSON Web Tokens (JWTs). | N/A | [Support for JSON Web Tokens (JWTs)](https://github.com/nginx/kubernetes-ingress/tree/v{{< nic-version >}}/examples/ingress-resources/jwt). |
| *nginx.com/jwt-realm* | N/A | Specifies a realm. | N/A | [Support for JSON Web Tokens (JWTs)](https://github.com/nginx/kubernetes-ingress/tree/v{{< nic-version >}}/examples/ingress-resources/jwt). |
| *nginx.com/jwt-token* | N/A | Specifies a variable that contains a JSON Web Token. | By default, a JWT is expected in the `Authorization` header as a Bearer Token. | [Support for JSON Web Tokens (JWTs)](https://github.com/nginx/kubernetes-ingress/tree/v{{< nic-version >}}/examples/ingress-resources/jwt). |
Expand Down
Loading