What's Changed
๐ฃ Breaking Changes
- Add LogLevel & LogFormat flags by @AlexFenlon in #6520
- Deprecate v1alpha1 CRDs for GlobalConfiguration, Policy & TransportServer by @pdabelf5 in #6800
- Add license secret and mgmt config map for r33 by @AlexFenlon in #6903
๐ Features
- Add glog slog handler by @pdabelf5 in #6474
- TransportServer SNI by @j1m-ryan in #6605
- Add events to configmap by @j1m-ryan in #6819
- Add events when special secrets update by @AlexFenlon in #6878
- Add additional mgmt config parameters by @pdabelf5 in #6921
๐ Bug Fixes
- Generate valid yaml for readOnly fs by @jjngx in #6583
- UpstreamServer Fields Logs Displayed as Memory Addresses by @AlexFenlon in #6635
- Revert to original main-template without pod downtime by @jjngx in #6661
- Add nil check to apikey suppliedIn by @j1m-ryan in #6733
- Use default VS and TS templates when CfgMap obj is deleted by @jjngx in #6780
๐ฆ Helm Chart
- Helm schema examples by @pdabelf5 in #6667
- Update kubernetes version to v1.32.0 in helm schema by @nginx-bot in #6998
- Release 4.0.0 by @nginx-bot in #6986
๐งช Tests
- Remove unnecessary type assertion by @j1m-ryan in #6479
- Add marker to conftest by @vepatel in #6491
- Add separate config to skip v5 tests by @vepatel in #6493
- Add support for readonlyrootfilesystem test for wafv5 by @vepatel in #6708
- Helm unit tests by @pdabelf5 in #6895
- Add wait in scaled rate-limit test by @vepatel in #6940
- Add mgmt configmap tests by @nginx-bot in #6965
๐จ Maintenance
- Add wafv5 tests to regression matrix by @vepatel in #6478
- Refactor to prepare for structured logs by @AlexFenlon in #6501
- Prevent final result from succeeding if any image builds fail by @pdabelf5 in #6509
- Grafana template update that works with grafana v11.2.0 by @sdutta9 in #6511
- Simplify bug report form by @shaun-nx in #6550
- Add ubi8 images patching workflow by @pdabelf5 in #6555
- Remove deprecated log level parameters by @AlexFenlon in #6620
- Replace glog in healthcheck.go & remove glog dependency by @AlexFenlon in #6628
- Fix
make staticcheck
, (use NewInformerWithOptions and TypedRateLimitingInterface) by @j1m-ryan in #6647 - Add static check action to CI by @j1m-ryan in #6649
- Update python to 3.13 and disable pytest-profiling by @AlexFenlon in #6651
- Update helm schema examples by @pdabelf5 in #6665
- Renew expired certificate used in tests by @pdabelf5 in #6736
- Add plus mgmt deployment context process by @j1m-ryan in #6309
- Remove unused functions by @pdabelf5 in #6806
- Refactor special secret input and validation by @pdabelf5 in #6808
- Allow k8s events in initial validation by @pdabelf5 in #6814
- Refactor resolver in template by @j1m-ryan in #6832
- Build UBI s390x nginx package for OSS images by @pdabelf5 in #6846
- Rename TLSSecretFileMode to ReadWriteOnlyFileMode by @pdabelf5 in #6854
- Add ubi-9 container image tag by @pdabelf5 in #6874
- Refactor namespace/name logic by @pdabelf5 in #6871
- Refactor, set staticSSLPath to a variable for reuse by @AlexFenlon in #6872
- Refactor configmap.go for extensability by @j1m-ryan in #6873
- Add secret type for getAndValidateSecret() by @pdabelf5 in #6877
- Refactor handleSpecialSecretUpdate by @j1m-ryan in #6875
- Refactor lbc to add metadata struct by @j1m-ryan in #6885
- Add license expiry checks by @pdabelf5 in #6917
- Prevent auto publishing docs on push to release branch by @pdabelf5 in #6926
- Update secrets when mgmt configmap changes by @pdabelf5 in #6947
- Fix Makefile Bug by @saedx1 in #6809
- Re-add FIPs images to tests, image patching & release by @nginx-bot in #6972
- Update regression matrix to include old k8s by @nginx-bot in #6977
- Trim UBI python packages by @pdabelf5 in #6993
๐ Documentation
- Update community call dates by @AlexFenlon in #6506
- Added Support page by @mrajagopal in #6467
- Fix external url links by @nginx-aoife in #6519
- Add hugo version check and theme update to Makefile by @nginx-jack in #6518
- Update documentation folder, dependencies and deployment action by @ADubhlaoich in #6554
- Migrate access control example to documentation website by @ADubhlaoich in #6572
- Update community call information by @danielnginx in #6766
- Updates to WAF v5 docs by @jjngx in #6694
- Update NMS references by @Jcahilltorre in #6802
- Add endpoint to product telemetry doc by @j1m-ryan in #6855
- Update README.md by @danielnginx in #6870
- Updates to usage-reporting page by @vepatel in #6899
- Remove marketplace plus images from docs for 4.0.0 by @pdabelf5 in #6928
- Add upgrading to 4.x docs by @nginx-bot in #6985
โฌ๏ธ Dependencies
65 changes
- Docker image update c30328bf by @nginx-bot in #6485
- Bump the go group with 2 updates by @dependabot in #6483
- Bump the go group with 2 updates by @dependabot in #6496
- Docker image update e58c873f by @nginx-bot in #6497
- Docker image update e000531c by @nginx-bot in #6512
- Bump the go group with 2 updates by @dependabot in #6522
- Docker image update 46d483c1 by @nginx-bot in #6533
- Docker image update 31e5a443 by @nginx-bot in #6543
- Bump the go group with 2 updates by @dependabot in #6540
- Docker image update 40274c4b by @nginx-bot in #6557
- Bump Go version by @jjngx in #6559
- Docker image update b31cdb28 by @nginx-bot in #6580
- Bump the go group with 2 updates by @dependabot in #6589
- Bump the go group across 1 directory with 3 updates by @dependabot in #6614
- Bump the docker-images group across 1 directory with 3 updates by @dependabot in #6607
- Docker image update 556fd680 by @nginx-bot in #6638
- Bump the go group across 1 directory with 6 updates by @dependabot in #6643
- Bump nginxinc/dependencies/nginx-ot from
0f5479b
to8604f87
in /build by @dependabot in #6654 - Docker image update 2749b484 by @nginx-bot in #6657
- chore(deps): bump github.com/prometheus/client_golang from 1.20.4 to 1.20.5 in the go group by @dependabot in #6669
- Docker image update 6bc1d808 by @nginx-bot in #6676
- Docker image update 0772406c by @nginx-bot in #6685
- chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.43 to 1.28.0 in the go group by @dependabot in #6683
- Docker image update 3c3e619d by @nginx-bot in #6699
- chore(deps): bump nginxinc/dependencies/nginx-ot from
8604f87
to4962146
in /build by @dependabot in #6697 - chore(deps): bump the go group with 4 updates by @dependabot in #6704
- Docker image update e6c0a4ef by @nginx-bot in #6719
- chore(deps): bump nginxinc/dependencies/nginx-ot from
4962146
to57c83e2
in /build by @dependabot in #6717 - remove external golang dependencies by @pdabelf5 in #6712
- chore(deps): bump the go group across 1 directory with 3 updates by @dependabot in #6728
- chore(deps): bump github.com/golang-jwt/jwt/v4 from 4.5.0 to 4.5.1 in the go group by @dependabot in #6745
- Docker image update 52a62c5c by @nginx-bot in #6747
- chore(deps): bump nginxinc/dependencies/nginx-ot from
57c83e2
to35d74b7
in /build by @dependabot in #6743 - Docker image update 5808b65f by @nginx-bot in #6775
- Upgrade Go to 1.23.3 by @jjngx in #6767
- Docker image update 215948ef by @nginx-bot in #6789
- Docker image update eca79946 by @nginx-bot in #6762
- chore(deps): bump nginxinc/dependencies/nginx-ot from
35d74b7
to022d9c1
in /build by @dependabot in #6786 - chore(deps): bump the go group across 1 directory with 4 updates by @dependabot in #6782
- chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.28.3 to 1.28.4 in the go group by @dependabot in #6815
- chore(deps): bump the go group with 2 updates by @dependabot in #6826
- chore(deps): bump github.com/cert-manager/cert-manager from 1.16.1 to 1.16.2 in the go_modules group by @dependabot in #6835
- chore(deps): bump the go group with 4 updates by @dependabot in #6842
- Docker image update 9ca30b62 by @nginx-bot in #6845
- Docker image update 85cd2307 by @nginx-bot in #6864
- chore(deps): bump nginx from 1.27.2 to 1.27.3 in /build in the docker-images group by @dependabot in #6880
- chore(deps): bump nginxinc/dependencies/nginx-ot from
df0ccc2
tod49a019
in /build by @dependabot in #6862 - chore(deps): bump github.com/stretchr/testify from 1.9.0 to 1.10.0 in the go group by @dependabot in #6861
- Update nginx to 1.27.3 by @pdabelf5 in #6897
- Docker image update 6b4ab783 by @nginx-bot in #6890
- chore(deps): bump the docker-images group in /build with 2 updates by @dependabot in #6905
- chore(deps): bump nginx from
5acf10c
to4152318
in /build by @dependabot in #6906 - Docker image update 573aba6c by @nginx-bot in #6909
- upgrade go client and prometheus exporter by @AlexFenlon in #6916
- Docker image update d6c1de0a by @nginx-bot in #6919
- chore(deps): bump the go group with 2 updates by @dependabot in #6908
- Update Go version by @jjngx in #6931
- Docker image update 4f7e6a61 by @nginx-bot in #6936
- Docker image update f94419e4 by @nginx-bot in #6945
- Security update for Go crypto pkg by @nginx-bot in #6969
- Docker image update 17dfefdb by @nginx-bot in #6971
- Bump up 3rd party deps for K8s by @nginx-bot in #6973
- Docker image update af97676a by @nginx-bot in #6982
- Bump the go group across 1 directory with 2 updates by @nginx-bot in #6988
- Bump the go group with 2 updates by @nginx-bot in #6994
Other Changes
- Expand mgmt configmap tests by @nginx-bot in #7000
New Contributors
Full Changelog: v3.7.2...v4.0.0
Upgrade
- For NGINX, use the v4.0.0 images from our DockerHub, GitHub Container, Amazon ECR Public Gallery or Quay.io.
- For NGINX Plus, use the v4.0.0 images from the F5 Container registry or build your own image using the v4.0.0 source code.
- For Helm, use version 2.0.0 of the chart.
Resources
- Documentation -- https://docs.nginx.com/nginx-ingress-controller/
- Configuration examples -- https://github.com/nginxinc/kubernetes-ingress/tree/v4.0.0/examples
- Helm Chart -- https://github.com/nginxinc/kubernetes-ingress/tree/v4.0.0/deployments/helm-chart
- Operator -- https://github.com/nginxinc/nginx-ingress-helm-operator