HAProxy Ingress¶
With the introduction of the Kubernetes Gateway API it is now possible to use Argo Rollouts with all compliant implementations that support it. The integration is available with the Argo Rollouts Gateway API plugin currently hosted in Argo Labs.
Note
There are two projects that call themselves an HAProxy ingress controller. The one described here is the community HAProxy Ingress controller, which is the Gateway API conformant HAProxy implementation. Gateway API conformance arrived in v0.17. Earlier versions have only partial Gateway API support and will not work with the plugin.
Useful resources:
- The Gateway API specification
- Support of the Gateway API in HAProxy Ingress
- Argo Rollouts Plugin capabilities
- Plugin for the Gateway API
The process involves the following steps:
- Installing the Gateway API CRDs in your cluster
- Installing HAProxy Ingress (v0.17 or later) with Gateway API support
- Creating a GatewayClass and Gateway resources
- Installing Argo Rollouts + gateway API plugin in the cluster
- Defining a Rollout that takes advantage of the plugin
Note that HAProxy Ingress does not implement GRPCRoute or UDPRoute, so the gRPC routing capabilities of the plugin cannot be used with this provider. HAProxy Ingress also runs a single shared HAProxy deployment instead of creating one Service per Gateway, so all Gateway traffic enters through the chart's own haproxy-ingress Service.
For a full application that includes all manifests see the plugin example.