We’re excited to announce the release of HAProxy Kubernetes Ingress Controller 3.1!
This release introduces expanded support for TCP custom resource definitions (CRDs), runtime improvements, and parallelization when writing maps.
Version compatibility with HAProxy
As announced with the previous version, HAProxy Kubernetes Ingress Controller's version number now matches the version of HAProxy it uses. HAProxy Kubernetes Ingress Controller 3.1 is built with HAProxy version 3.1.
Lifecycle of versions
To enhance transparency about supported versions, we’ve introduced an End-of-Life table that outlines which versions are supported in parallel.
Additionally, we’ve published a list of tested Kubernetes versions. Among the versions supported we have Kubernetes 1.32 released in December 2024. While HAProxy Kubernetes Ingress Controller is expected to work with versions beyond those listed, only tested versions are explicitly documented.
Ready to Upgrade?
When you are ready to start the upgrade procedure, go to the upgrade instructions for HAProxy Kubernetes Ingress Controller.
Updating certificates through the Runtime API
In this release, HAProxy Kubernetes Ingress Controller now uses HAProxy's Runtime API to update certificates without requiring a reload. Previously, certificate updates required an HAProxy reload, but this new approach streamlines the process and reduces resource use.
Parallelization in writing maps
Both HAProxy and the file system can handle writing maps in parallel. With version 3.1, HAProxy Kubernetes Ingress Controller parallelizes writing maps both to HAProxy and to the file system. To maintain I/O efficiency and reduce latency, a maximum of 10 maps can be written in parallel.
ingress.class annotation in TCP custom resource
TCP Custom Resources managed by HAProxy Kubernetes Ingress Controller can now be filtered using the ingress.class
annotation, aligning behavior with an Ingress object.
Breaking Change
If you’re upgrading from version 3.0 to 3.1, take note of the following regarding the ingress.class
annotation:
For TCP CRs deployed with HAProxy Kubernetes Ingress Controller versions ≤ 3.0, if the ingress controller has an
ingress.class
flag, you must set the same value for theingress.class
annotation in the TCP CR.If the annotation is not set, the corresponding backends and frontends in the HAProxy configuration will be deleted, except if the controller
empty-ingress-class
flag is set (the same behavior as the Ingress object).
Setting the ingress.class
to the TCP CRs should be done prior to upgrading to v3.1. While this annotation is not used in version 3.0, the annotation must be present when starting version 3.1.
Support thread pinning on http/https/stats/healthz
You can pin threads using the following new arguments for HAProxy Kubernetes Ingress Controller:
http-bind-thread
https-bind-thread
healthz-bind-thread
stats-bind-thread
These arguments offer advanced optimization for specific use cases.
Contributions
HAProxy Kubernetes Ingress Controller's development thrives on community feedback and feature input. We’d like to thank the code contributors who helped make this version possible!
Contributor | Area |
Ivan Matmati | FEATURE, BUG, TEST |
Hélène Durand | FEATURE, BUG, TEST |
Dinko Korunić | FEATURE, BUILD, OPTIM |
Nicholas Ramirez | DOC |
Daniel Skrba | DOC |
Andjelko Iharos | DOC |
Olivier Doucet | FEATURE |
Xuefeng Chen | FEATURE |
Will Weber | BUG |
Ali Afsharzadeh | BUILD |
Zlatko Bratković | BUILD, FEATURE, DOC, CLEANUP |
Conclusion
HAProxy Kubernetes Ingress Controller 3.1 introduces features that enhance flexibility and efficiency for managing ingress traffic. With expanded support for TCP CRDs, enhanced certificate updates through the Runtime API, and improved parallelization when writing maps, this release empowers users to handle more complex Kubernetes environments.
To learn more about HAProxy Kubernetes Ingress Controller, follow our blog and browse our Ingress Controller documentation. If you want to see how HAProxy Technologies also provides external load balancing and multi-cluster routing alongside our ingress controller, check out our Kubernetes solutions and our webinar.
Subscribe to our blog. Get the latest release updates, tutorials, and deep-dives from HAProxy experts.