Announcing HAProxy Kubernetes Ingress Controller 3.1

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

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.

tcp-custom-resource

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 the ingress.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).

Warning

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-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.