2.0.35

Latest release in branch 2.0
Released 2 years ago (April 05, 2024)

Software HAProxy
Branch 2.0
Status
End of life
End of life April 05, 2024
First official release version 2.0.0
First official release date 6 years ago (June 16, 2019)
Release notes https://www.haproxy.org/download/2.0/src/CHANGELOG
Source code http://git.haproxy.org/?p=haproxy-2.0.git;a=tree;h=refs/tags/v2.0.35
Download https://www.haproxy.org/download/2.0/
HAProxy 2.0 Releases View full list

What Is New in HAProxy 2.0

HAProxy 2.0 is a major release that introduces significant features focused on dynamic configuration, enhanced observability, and cloud-native integration. It fundamentally changes how you manage and monitor the load balancer.

Category Key Changes
New Features Data Plane API, Dynamic Servers, HTX & HTTP/2, Log Forwarding
Improvements Kubernetes Ingress Controller, Prometheus Metrics, Traffic Policies
Bug Fixes Numerous fixes across the codebase for stability

How does the Data Plane API change configuration management?

The new Data Plane API is a game-changer for automation. It provides a RESTful interface to dynamically manage your HAProxy configuration, eliminating the need for manual file edits and reloads for many common tasks.

You can now manage frontends, backends, and servers programmatically. This is crucial for integrating HAProxy into modern CI/CD pipelines and infrastructure-as-code workflows, making it feel like a true cloud-native service.

What are the key observability enhancements?

Observability gets a massive boost with native Prometheus support and a structured logs output format. You can now expose over 100 metrics natively in Prometheus format, making deep performance analysis straightforward.

The new log forwarding feature allows you to send logs to a ring buffer or a Unix domain socket in real-time. This matters because it enables integration with external log processors without the overhead and latency of a syslog connection.

How is Kubernetes integration improved?

The HAProxy Kubernetes Ingress Controller is now GA and comes bundled with the community edition. It uses the new Data Plane API for dynamic updates, providing a seamless way to manage ingress traffic.

This native integration means service discovery and configuration changes happen automatically as your Kubernetes services scale up and down. You get a robust, high-performance ingress solution without custom scripting.

What underlying protocol engine changes were made?

HAProxy 2.0 completes the transition to the HTX (HTTP Transformation) engine, which is now the default for all HTTP processing. This modern internal representation is the foundation for advanced HTTP handling.

With HTX, full end-to-end HTTP/2 support is now stable, including the ability to terminate HTTP/2 and proxy it as HTTP/1.1 to backends. This provides modern protocol benefits to clients while maintaining backend compatibility.

What new traffic routing capabilities exist?

New traffic policies allow for more sophisticated routing decisions based on JWT claims, OAuth tokens, and other advanced criteria. You can build more intelligent and secure routing logic directly into the load balancer.

The introduction of a new Process Manager allows for hot-swapping of certificates and seamless binary upgrades. In practice, this means you can update TLS certificates or even the HAProxy binary itself with zero downtime.

FAQ

Is the Data Plane API a separate service?
Yes, it's a separate process that runs alongside HAProxy and communicates with it over its internal runtime API. You need to run both the haproxy and haproxy-dataplaneapi binaries.

Does HTTP/2 work for both frontend and backend connections?
Frontend HTTP/2 support is fully stable. For backends, HAProxy 2.0 can speak HTTP/2 to supported servers, but it commonly converts HTTP/2 from clients to HTTP/1.1 for the backend connections.

Can I use the new Kubernetes Ingress Controller in production?
Yes, the ingress controller is now considered GA (Generally Available) with the 2.0 release, making it suitable for production use alongside the stable core.

How do I access the built-in Prometheus metrics?
You expose the metrics by defining a new frontend or backend with a mode http and using the use_backend directive with the prometheus-exporter feature.

Are there any breaking changes when upgrading to 2.0?
The main consideration is that HTX mode is now the default for HTTP. While most configurations should work, some older, obscure tuning options might behave differently and require testing.

Releases In Branch 2.0

Version Release date
2.0.35 2 years ago
(April 05, 2024)
2.0.34 2 years ago
(December 19, 2023)
2.0.33 2 years ago
(August 19, 2023)
2.0.32 2 years ago
(June 12, 2023)
2.0.31 3 years ago
(February 14, 2023)
2.0.30 3 years ago
(December 09, 2022)
2.0.29 3 years ago
(May 13, 2022)
2.0.28 4 years ago
(March 14, 2022)
2.0.27 4 years ago
(January 26, 2022)
2.0.26 4 years ago
(December 03, 2021)
2.0.25 4 years ago
(September 07, 2021)
2.0.24 4 years ago
(August 17, 2021)
2.0.23 4 years ago
(July 16, 2021)
2.0.22 5 years ago
(April 12, 2021)
2.0.21 5 years ago
(March 18, 2021)
2.0.20 5 years ago
(January 08, 2021)
2.0.19 5 years ago
(November 06, 2020)
2.0.18 5 years ago
(September 30, 2020)
2.0.17 5 years ago
(July 31, 2020)
2.0.16 5 years ago
(July 17, 2020)
2.0.15 5 years ago
(June 12, 2020)
2.0.14 6 years ago
(April 02, 2020)
2.0.13 6 years ago
(February 13, 2020)
2.0.12 6 years ago
(December 21, 2019)
2.0.11 6 years ago
(December 11, 2019)
2.0.10 6 years ago
(November 25, 2019)
2.0.9 6 years ago
(November 15, 2019)
2.0.8 6 years ago
(October 23, 2019)
2.0.7 6 years ago
(September 27, 2019)
2.0.6 6 years ago
(September 13, 2019)
2.0.5 6 years ago
(August 16, 2019)
2.0.4 6 years ago
(August 06, 2019)
2.0.3 6 years ago
(July 23, 2019)
2.0.2 6 years ago
(July 16, 2019)
2.0.1 6 years ago
(June 26, 2019)
2.0.0 6 years ago
(June 16, 2019)
2.0-dev7 6 years ago
(June 11, 2019)
2.0-dev6 6 years ago
(June 07, 2019)
2.0-dev5 6 years ago
(June 02, 2019)
2.0-dev4 6 years ago
(May 22, 2019)
2.0-dev3 6 years ago
(May 15, 2019)
2.0-dev2 7 years ago
(March 26, 2019)
2.0-dev1 7 years ago
(February 26, 2019)
2.0-dev0 7 years ago
(December 22, 2018)