Upgrade nginx controller to support topology aware hints (among other reasons)
Summary
https://gitlab.com/gitlab-org/charts/gitlab/-/blob/master/charts/nginx-ingress/values.yaml#L15 shows v1.2.1 is being used.
This is almost a year behind the latest version v1.9.3
For a specific feature we find interesting: https://github.com/kubernetes/ingress-nginx/releases/tag/controller-v1.6.4 adds support for https://kubernetes.io/docs/concepts/services-networking/topology-aware-hints/ which is useful for reducing routing across AZs.
For broader impact, https://github.com/kubernetes/ingress-nginx#supported-versions-table shows v1.2.1 supports k8s versions 1.19-1.23, not 1.24+.
The current prerequisite for this chart is 1.19. https://endoflife.date/kubernetes shows 1.25 is currently the oldest supported version of k8s, 1.19 has been unmaintained for almost 2 years. Upgrading to a newer version will ensure upstream support for newer k8s releases.
Steps to reproduce
NA, clear from documentation
Configuration used
(untested) Potential workaround which bumps the version of the nginx controller without testing other aspects of the forked chart (uses values from https://github.com/kubernetes/ingress-nginx/releases/tag/controller-v1.9.3).
nginx-ingress:
controller:
image:
registry: registry.k8s.io
image: ingress-nginx/controller
tag: "v1.9.3"
digest: sha256:8fd21d59428507671ce0fb47f818b1d859c92d2ad07bb7c947268d433030ba98
Current behavior
The currently used controller version is almost a year old and doesn't support modern k8s releases (https://github.com/kubernetes/ingress-nginx/releases/tag/controller-v1.2.1)
Expected behavior
A modern of the nginx controller is used so newer features can be used and there is better compatibility with newer k8s versions.
Versions
- Chart: main
- Kubernetes: (
kubectl version
)- Server: 1.24+
Relevant logs
NA