Skip to content

Commit 81bae7d

Browse files
authored
Release 4.0.0 (#6986)
1 parent 16ed0fd commit 81bae7d

File tree

16 files changed

+100
-37
lines changed

16 files changed

+100
-37
lines changed

Diff for: README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ In the case of NGINX, the Ingress Controller is deployed in a pod along with the
125125
We publish NGINX Ingress Controller releases on GitHub. See our [releases
126126
page](https://github.com/nginxinc/kubernetes-ingress/releases).
127127

128-
The latest stable release is [3.7.2](https://github.com/nginxinc/kubernetes-ingress/releases/tag/v3.7.2). For production
128+
The latest stable release is [4.0.0](https://github.com/nginxinc/kubernetes-ingress/releases/tag/v4.0.0). For production
129129
use, we recommend that you choose the latest stable release.
130130

131131
The edge version is useful for experimenting with new features that are not yet published in a stable release. To use
@@ -145,7 +145,7 @@ your links to the correct versions:
145145

146146
| Version | Description | Image for NGINX | Image for NGINX Plus | Installation Manifests and Helm Chart | Documentation and Examples |
147147
| ------- | ----------- | --------------- | -------------------- | ---------------------------------------| -------------------------- |
148-
| Latest stable release | For production use | Use the 3.7.2 images from [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress/), [GitHub Container](https://github.com/nginxinc/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) or [build your own image](https://docs.nginx.com/nginx-ingress-controller/installation/build-ingress-controller-image/). | Use the 3.7.2 images from the [F5 Container Registry](https://docs.nginx.com/nginx-ingress-controller/installation/pulling-ingress-controller-image/) or [Build your own image](https://docs.nginx.com/nginx-ingress-controller/installation/build-nginx-ingress-controller/). | [Manifests](https://github.com/nginxinc/kubernetes-ingress/tree/v3.7.2/deployments). [Helm chart](https://github.com/nginxinc/kubernetes-ingress/tree/v3.7.2/charts/nginx-ingress). | [Documentation](https://docs.nginx.com/nginx-ingress-controller/). [Examples](https://docs.nginx.com/nginx-ingress-controller/configuration/configuration-examples/). |
148+
| Latest stable release | For production use | Use the 4.0.0 images from [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress/), [GitHub Container](https://github.com/nginxinc/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) or [build your own image](https://docs.nginx.com/nginx-ingress-controller/installation/build-ingress-controller-image/). | Use the 4.0.0 images from the [F5 Container Registry](https://docs.nginx.com/nginx-ingress-controller/installation/pulling-ingress-controller-image/) or [Build your own image](https://docs.nginx.com/nginx-ingress-controller/installation/build-nginx-ingress-controller/). | [Manifests](https://github.com/nginxinc/kubernetes-ingress/tree/v4.0.0/deployments). [Helm chart](https://github.com/nginxinc/kubernetes-ingress/tree/v4.0.0/charts/nginx-ingress). | [Documentation](https://docs.nginx.com/nginx-ingress-controller/). [Examples](https://docs.nginx.com/nginx-ingress-controller/configuration/configuration-examples/). |
149149
| Edge/Nightly | For testing and experimenting | Use the edge or nightly images from [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress/), [GitHub Container](https://github.com/nginxinc/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) or [build your own image](https://docs.nginx.com/nginx-ingress-controller/installation/build-nginx-ingress-controller/). | [Build your own image](https://docs.nginx.com/nginx-ingress-controller/installation/build-nginx-ingress-controller/). | [Manifests](https://github.com/nginxinc/kubernetes-ingress/tree/main/deployments). [Helm chart](https://github.com/nginxinc/kubernetes-ingress/tree/main/charts/nginx-ingress). | [Documentation](https://github.com/nginxinc/kubernetes-ingress/tree/main/site/content). [Examples](https://github.com/nginxinc/kubernetes-ingress/tree/main/examples). |
150150

151151
## SBOM (Software Bill of Materials)

Diff for: charts/nginx-ingress/Chart.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ appVersion: 4.0.0
55
kubeVersion: ">= 1.23.0-0"
66
type: application
77
description: NGINX Ingress Controller
8-
icon: https://raw.githubusercontent.com/nginxinc/kubernetes-ingress/v3.7.2/charts/nginx-ingress/chart-icon.png
8+
icon: https://raw.githubusercontent.com/nginxinc/kubernetes-ingress/v4.0.0/charts/nginx-ingress/chart-icon.png
99
home: https://github.com/nginxinc/kubernetes-ingress
1010
sources:
11-
- https://github.com/nginxinc/kubernetes-ingress/tree/v3.7.2/charts/nginx-ingress
11+
- https://github.com/nginxinc/kubernetes-ingress/tree/v4.0.0/charts/nginx-ingress
1212
keywords:
1313
- ingress
1414
- nginx

Diff for: charts/nginx-ingress/values-icp.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ controller:
44
nginxplus: true
55
image:
66
repository: mycluster.icp:8500/kube-system/nginx-plus-ingress
7-
tag: "3.7.2"
7+
tag: "4.0.0"
88
nodeSelector:
99
beta.kubernetes.io/arch: "amd64"
1010
proxy: true

Diff for: charts/nginx-ingress/values-plus.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ controller:
33
nginxplus: true
44
image:
55
repository: nginx-plus-ingress
6-
tag: "3.7.2"
6+
tag: "4.0.0"

Diff for: charts/nginx-ingress/values.schema.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -674,10 +674,10 @@
674674
},
675675
"tag": {
676676
"type": "string",
677-
"default": "3.7.2",
677+
"default": "4.0.0",
678678
"title": "The tag of the Ingress Controller image",
679679
"examples": [
680-
"3.7.2"
680+
"4.0.0"
681681
]
682682
},
683683
"digest": {
@@ -714,7 +714,7 @@
714714
"examples": [
715715
{
716716
"repository": "nginx/nginx-ingress",
717-
"tag": "3.7.2",
717+
"tag": "4.0.0",
718718
"pullPolicy": "IfNotPresent"
719719
}
720720
]
@@ -1865,7 +1865,7 @@
18651865
"customPorts": [],
18661866
"image": {
18671867
"repository": "nginx/nginx-ingress",
1868-
"tag": "3.7.2",
1868+
"tag": "4.0.0",
18691869
"digest": "",
18701870
"pullPolicy": "IfNotPresent"
18711871
},
@@ -2479,7 +2479,7 @@
24792479
"customPorts": [],
24802480
"image": {
24812481
"repository": "nginx/nginx-ingress",
2482-
"tag": "3.7.2",
2482+
"tag": "4.0.0",
24832483
"digest": "",
24842484
"pullPolicy": "IfNotPresent"
24852485
},

Diff for: charts/nginx-ingress/values.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ controller:
170170
repository: nginx/nginx-ingress
171171

172172
## The tag of the Ingress Controller image. If not specified the appVersion from Chart.yaml is used as a tag.
173-
# tag: "3.7.2"
173+
# tag: "4.0.0"
174174
## The digest of the Ingress Controller image.
175175
## If digest is specified it has precedence over tag and will be used instead
176176
# digest: "sha256:CHANGEME"

Diff for: deployments/daemon-set/nginx-ingress.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ spec:
3232
# - name: nginx-log
3333
# emptyDir: {}
3434
containers:
35-
- image: nginx/nginx-ingress:3.7.2
35+
- image: nginx/nginx-ingress:4.0.0
3636
imagePullPolicy: IfNotPresent
3737
name: nginx-ingress
3838
ports:
@@ -96,7 +96,7 @@ spec:
9696
#- -enable-prometheus-metrics
9797
#- -global-configuration=$(POD_NAMESPACE)/nginx-configuration
9898
# initContainers:
99-
# - image: nginx/nginx-ingress:3.7.2
99+
# - image: nginx/nginx-ingress:4.0.0
100100
# imagePullPolicy: IfNotPresent
101101
# name: init-nginx-ingress
102102
# command: ['cp', '-vdR', '/etc/nginx/.', '/mnt/etc']

Diff for: deployments/daemon-set/nginx-plus-ingress.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ spec:
3232
# - name: nginx-log
3333
# emptyDir: {}
3434
containers:
35-
- image: nginx-plus-ingress:3.7.2
35+
- image: nginx-plus-ingress:4.0.0
3636
imagePullPolicy: IfNotPresent
3737
name: nginx-plus-ingress
3838
ports:
@@ -100,7 +100,7 @@ spec:
100100
#- -enable-prometheus-metrics
101101
#- -global-configuration=$(POD_NAMESPACE)/nginx-configuration
102102
# initContainers:
103-
# - image: nginx/nginx-ingress:3.7.2
103+
# - image: nginx/nginx-ingress:4.0.0
104104
# imagePullPolicy: IfNotPresent
105105
# name: init-nginx-ingress
106106
# command: ['cp', '-vdR', '/etc/nginx/.', '/mnt/etc']

Diff for: deployments/deployment/nginx-ingress.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ spec:
3333
# - name: nginx-log
3434
# emptyDir: {}
3535
containers:
36-
- image: nginx/nginx-ingress:3.7.2
36+
- image: nginx/nginx-ingress:4.0.0
3737
imagePullPolicy: IfNotPresent
3838
name: nginx-ingress
3939
ports:
@@ -97,7 +97,7 @@ spec:
9797
#- -enable-prometheus-metrics
9898
#- -global-configuration=$(POD_NAMESPACE)/nginx-configuration
9999
# initContainers:
100-
# - image: nginx/nginx-ingress:3.7.2
100+
# - image: nginx/nginx-ingress:4.0.0
101101
# imagePullPolicy: IfNotPresent
102102
# name: init-nginx-ingress
103103
# command: ['cp', '-vdR', '/etc/nginx/.', '/mnt/etc']

Diff for: deployments/deployment/nginx-plus-ingress.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ spec:
3333
# - name: nginx-log
3434
# emptyDir: {}
3535
containers:
36-
- image: nginx-plus-ingress:3.7.2
36+
- image: nginx-plus-ingress:4.0.0
3737
imagePullPolicy: IfNotPresent
3838
name: nginx-plus-ingress
3939
ports:
@@ -104,7 +104,7 @@ spec:
104104
#- -enable-service-insight
105105
#- -global-configuration=$(POD_NAMESPACE)/nginx-configuration
106106
# initContainers:
107-
# - image: nginx/nginx-ingress:3.7.2
107+
# - image: nginx/nginx-ingress:4.0.0
108108
# imagePullPolicy: IfNotPresent
109109
# name: init-nginx-ingress
110110
# command: ['cp', '-vdR', '/etc/nginx/.', '/mnt/etc']

Diff for: examples/custom-resources/service-insight/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ spec:
3232
securityContext:
3333
...
3434
containers:
35-
- image: nginx-plus-ingress:3.7.2
35+
- image: nginx-plus-ingress:4.0.0
3636
imagePullPolicy: IfNotPresent
3737
name: nginx-plus-ingress
3838
ports:
@@ -321,7 +321,7 @@ spec:
321321
securityContext:
322322
...
323323
containers:
324-
- image: nginx-plus-ingress:3.7.2
324+
- image: nginx-plus-ingress:4.0.0
325325
imagePullPolicy: IfNotPresent
326326
name: nginx-plus-ingress
327327
ports:

Diff for: site/content/releases.md

+66-4
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,72 @@ toc: true
88
weight: 2100
99

1010
---
11+
## 4.0.0
12+
13+
16 Dec 2024
14+
15+
With added support for [NGINX R33](https://docs.nginx.com/nginx/releases/#nginxplusrelease-33-r33), deployments of F5 NGINX Ingress Controller using NGINX Plus now require a valid JSON Web Token to run.
16+
Please see the [Upgrading to v4]({{< relref "installation/installing-nic/upgrade-to-v4#create-license-secret" >}}) for full details on setting up your license `Secret`.
17+
18+
API Version `v1alpha1` of `GlobalConfiguration`, `Policy` and `TransportServer` resources are now deprecated.
19+
Please see [Update custom resource apiVersion]({{< relref "installation/installing-nic/upgrade-to-v4#update-custom-resource-apiversion" >}}) for full details on updating your resources.
20+
21+
Updates have been made to our logging library. For a while, F5 NGINX Ingress Controller has been using the [golang/glog](https://github.com/golang/glog). For this release, we have moved to the native golang library [log/slog](https://pkg.go.dev/log/slog).
22+
This change was made for these reasons:
23+
1. By using a standard library, we ensure that updates are more consistent, and any known vulnerabilities are more likely to be addressed in a timely manner.
24+
2. By moving to `log/slog`, we enable support for a wider range of logging formats, as well as allowing log outputs to be displayed in a Structured format, and for faster log parsing.
25+
26+
Layer 4 applications got some love this release, with added support for SNI based routing with our TransportServer resource!
27+
In scenarios where you have multiple applications hosted on a single node, this feature enables routing to those applications through the host header.
28+
For more details on what this feature does, and how to configure it yourself, please look to our [examples section in Github](https://github.com/nginxinc/kubernetes-ingress/tree/v4.0.0/examples/custom-resources/transport-server-sni#transportserver-sni)
29+
30+
### <i class="fa-solid fa-bomb"></i> Breaking Changes
31+
- [6903](https://github.com/nginxinc/kubernetes-ingress/pull/6903) & [6921](https://github.com/nginxinc/kubernetes-ingress/pull/6921) Add support for NGINX Plus R33
32+
- [6800](https://github.com/nginxinc/kubernetes-ingress/pull/6800) Deprecate v1alpha1 CRDs for GlobalConfiguration, Policy & TransportServer
33+
- [6520](https://github.com/nginxinc/kubernetes-ingress/pull/6520) & [6474](https://github.com/nginxinc/kubernetes-ingress/pull/6474) Add structured logging
34+
35+
### <i class="fa-solid fa-rocket"></i> Features
36+
- [6605](https://github.com/nginxinc/kubernetes-ingress/pull/6605) TransportServer SNI
37+
- [6819](https://github.com/nginxinc/kubernetes-ingress/pull/6819) Add events to configmap
38+
- [6878](https://github.com/nginxinc/kubernetes-ingress/pull/6878) Add events when special secrets update
39+
40+
### <i class="fa-solid fa-bug-slash"></i> Fixes
41+
- [6583](https://github.com/nginxinc/kubernetes-ingress/pull/6583) Generate valid yaml for ReadOnly FS
42+
- [6635](https://github.com/nginxinc/kubernetes-ingress/pull/6635) UpstreamServer Fields Logs Displayed as Memory Addresses
43+
- [6661](https://github.com/nginxinc/kubernetes-ingress/pull/6661) Revert to original main-template without pod downtime
44+
- [6733](https://github.com/nginxinc/kubernetes-ingress/pull/6733) Add nil check to apikey suppliedIn
45+
- [6780](https://github.com/nginxinc/kubernetes-ingress/pull/6780) Use default VS and TS templates when CfgMap obj is deleted
46+
47+
### <i class="fa-solid fa-box"></i> Helm Chart
48+
- [6667](https://github.com/nginxinc/kubernetes-ingress/pull/6667) Helm schema examples
49+
- [6998](https://github.com/nginxinc/kubernetes-ingress/pull/6998) Update kubernetes version to v1.32.0 in helm schema
50+
51+
### <i class="fa-solid fa-upload"></i> Dependencies
52+
- [6485](https://github.com/nginxinc/kubernetes-ingress/pull/6485), [6497](https://github.com/nginxinc/kubernetes-ingress/pull/6497), [6512](https://github.com/nginxinc/kubernetes-ingress/pull/6512), [6533](https://github.com/nginxinc/kubernetes-ingress/pull/6533), [6543](https://github.com/nginxinc/kubernetes-ingress/pull/6543), [6557](https://github.com/nginxinc/kubernetes-ingress/pull/6557), [6580](https://github.com/nginxinc/kubernetes-ingress/pull/6580), [6607](https://github.com/nginxinc/kubernetes-ingress/pull/6607), [6638](https://github.com/nginxinc/kubernetes-ingress/pull/6638), [6654](https://github.com/nginxinc/kubernetes-ingress/pull/6654), [6657](https://github.com/nginxinc/kubernetes-ingress/pull/6657), [6676](https://github.com/nginxinc/kubernetes-ingress/pull/6676), [6685](https://github.com/nginxinc/kubernetes-ingress/pull/6685), [6699](https://github.com/nginxinc/kubernetes-ingress/pull/6699), [6697](https://github.com/nginxinc/kubernetes-ingress/pull/6697), [6719](https://github.com/nginxinc/kubernetes-ingress/pull/6719), [6717](https://github.com/nginxinc/kubernetes-ingress/pull/6717), [6747](https://github.com/nginxinc/kubernetes-ingress/pull/6747), [6743](https://github.com/nginxinc/kubernetes-ingress/pull/6743), [6775](https://github.com/nginxinc/kubernetes-ingress/pull/6775), [6789](https://github.com/nginxinc/kubernetes-ingress/pull/6789), [6762](https://github.com/nginxinc/kubernetes-ingress/pull/6762), [6786](https://github.com/nginxinc/kubernetes-ingress/pull/6786), [6845](https://github.com/nginxinc/kubernetes-ingress/pull/6845), [6864](https://github.com/nginxinc/kubernetes-ingress/pull/6864), [6880](https://github.com/nginxinc/kubernetes-ingress/pull/6880), [6862](https://github.com/nginxinc/kubernetes-ingress/pull/6862), [6897](https://github.com/nginxinc/kubernetes-ingress/pull/6897), [6890](https://github.com/nginxinc/kubernetes-ingress/pull/6890), [6905](https://github.com/nginxinc/kubernetes-ingress/pull/6905), [6906](https://github.com/nginxinc/kubernetes-ingress/pull/6906), [6909](https://github.com/nginxinc/kubernetes-ingress/pull/6909), [6919](https://github.com/nginxinc/kubernetes-ingress/pull/6919), [6936](https://github.com/nginxinc/kubernetes-ingress/pull/6936), [6945](https://github.com/nginxinc/kubernetes-ingress/pull/6945), [6971](https://github.com/nginxinc/kubernetes-ingress/pull/6971) & [6982](https://github.com/nginxinc/kubernetes-ingress/pull/6982) Bump the Docker dependencies
53+
- [6483](https://github.com/nginxinc/kubernetes-ingress/pull/6483), [6496](https://github.com/nginxinc/kubernetes-ingress/pull/6496), [6522](https://github.com/nginxinc/kubernetes-ingress/pull/6522), [6540](https://github.com/nginxinc/kubernetes-ingress/pull/6540), [6559](https://github.com/nginxinc/kubernetes-ingress/pull/6559), [6589](https://github.com/nginxinc/kubernetes-ingress/pull/6589), [6614](https://github.com/nginxinc/kubernetes-ingress/pull/6614), [6643](https://github.com/nginxinc/kubernetes-ingress/pull/6643), [6669](https://github.com/nginxinc/kubernetes-ingress/pull/6669), [6683](https://github.com/nginxinc/kubernetes-ingress/pull/6683), [6704](https://github.com/nginxinc/kubernetes-ingress/pull/6704), [6712](https://github.com/nginxinc/kubernetes-ingress/pull/6712), [6728](https://github.com/nginxinc/kubernetes-ingress/pull/6728), [6745](https://github.com/nginxinc/kubernetes-ingress/pull/6745), [6767](https://github.com/nginxinc/kubernetes-ingress/pull/6767), [6782](https://github.com/nginxinc/kubernetes-ingress/pull/6782), [6815](https://github.com/nginxinc/kubernetes-ingress/pull/6815), [6826](https://github.com/nginxinc/kubernetes-ingress/pull/6826), [6835](https://github.com/nginxinc/kubernetes-ingress/pull/6835), [6842](https://github.com/nginxinc/kubernetes-ingress/pull/6842), [6861](https://github.com/nginxinc/kubernetes-ingress/pull/6861), [6916](https://github.com/nginxinc/kubernetes-ingress/pull/6916), [6908](https://github.com/nginxinc/kubernetes-ingress/pull/6908), [6931](https://github.com/nginxinc/kubernetes-ingress/pull/6931), [6969](https://github.com/nginxinc/kubernetes-ingress/pull/6969), [6973](https://github.com/nginxinc/kubernetes-ingress/pull/6973), [6988](https://github.com/nginxinc/kubernetes-ingress/pull/6988) & [6994](https://github.com/nginxinc/kubernetes-ingress/pull/6994) Bump the go dependencies
54+
55+
### <i class="fa-solid fa-download"></i> Upgrade
56+
57+
- For NGINX, use the 4.0.0 images from our
58+
[DockerHub](https://hub.docker.com/r/nginx/nginx-ingress/tags?page=1&ordering=last_updated&name=4.0.0),
59+
[GitHub Container](https://github.com/nginxinc/kubernetes-ingress/pkgs/container/kubernetes-ingress),
60+
[Amazon ECR Public Gallery](https://gallery.ecr.aws/nginx/nginx-ingress) or [Quay.io](https://quay.io/repository/nginx/nginx-ingress).
61+
- For NGINX Plus, use the 4.0.0 images from the F5 Container registry or build your own image using the 4.0.0 source code
62+
- For Helm, use version 2.0.0 of the chart.
63+
- [Upgrading to v4]({{< relref "installation/installing-nic/upgrade-to-v4" >}})
64+
65+
### <i class="fa-solid fa-life-ring"></i> Supported Platforms
66+
67+
We will provide technical support for NGINX Ingress Controller on any Kubernetes platform that is currently supported by
68+
its provider and that passes the Kubernetes conformance tests. This release was fully tested on the following Kubernetes
69+
versions: 1.25-1.32.
70+
71+
72+
---
73+
## 3.7.2
74+
75+
25 Nov 2024
76+
1177
{{< note >}}
1278
In our next major release, `v4.0.0`, the default log library for NGINX Ingress Controller will be changed from `golang/glog` to `log/slog`.
1379
This will mean that logs generated by NGINX Ingress Controller will be in a structured format with the option to choose a `string` or `json` output.
@@ -28,10 +94,6 @@ If a resource of `kind: GlobalConfiguration`, `kind: Policy` or `kind: Transport
2894
When `v4.0.0` is released, the release notes will contain the required upgrade steps to go from `v3.X.X` to `v4.X.X`
2995
{{< /important >}}
3096

31-
## 3.7.2
32-
33-
25 Nov 2024
34-
3597
### <i class="fa-solid fa-bug-slash"></i> Fixes
3698
- [6838](https://github.com/nginxinc/kubernetes-ingress/pull/6838) Update oidc_template and conf
3799

0 commit comments

Comments
 (0)