← Back to all sparks
H

HAProxy Kubernetes Ingress Controller

INFRA · APIS
Velocity6.3

Ingress controller bringing HAProxy load balancing to Kubernetes

HAProxy's ingress controller jumps to 3.4, drops Gateway API and config snippets.

ingress-controllerhaproxykubernetescustom-resourcesbreaking-changesruntime-api
◆Current state
After nineteen 3.2 patches, the controller released v3.4.0 on 12 November on top of HAProxy 3.4. It removes Gateway API support and config snippet annotations, announces further annotation deprecations, and retires the server-slot annotations by creating and deleting backend servers through HAProxy's runtime API. Custom resources that HAProxy rejects are now set aside and counted in a metric instead of breaking the config.
◆Where it's heading
The project is narrowing its configuration surface to its own custom resources: snippets and Gateway API are gone, annotations are being deprecated, and the 3.2 line had already added Frontend amendments through a custom resource. Runtime API server changes and the rejected-resource handling point to fewer reloads and fewer config-wide failures.
◆Prediction
Expect 3.4 patch releases fixing migration problems for users who relied on snippets or deprecated annotations, and a published removal schedule for the annotations announced as deprecated.

◆Recent moves

  1. 1d ago

    v3.4.0: HAProxy 3.4, no Gateway API, no config snippets

    ⚡ SPARK

    The first release after nineteen 3.2 patches is a break, not a bump. It removes Gateway API support and config snippets, deprecates more annotations and moves backend servers to the runtime API, completing the shift toward custom resources that the 3.2 line started.

    View source ↗
  2. 14d ago

    v3.2.19: reload flag data race fix and x/ package bumps

    A golang.org/x bump and a minor fix for a data race on the pending reload flag. Routine upkeep on the patch line.

    View source ↗
  3. 24d ago

    v3.2.18: keeps all TLS secrets per host, CRD panic fix

    Keeps every TLS secret of an ingress for the same host and stops a panic on unparseable CRD version annotations. The TLS fix is the one change in recent patches that operators could notice directly.

    View source ↗
  4. 1mo ago

    v3.2.17: k8s.io, x/ and client-native dependency updates

    Dependency updates for k8s.io, golang.org/x and client-native, plus a small snippet cleanup. No user-facing change is described.

    View source ↗
  5. 1mo ago

    v3.2.16: dependency, CI and test maintenance

    Dependency, CI and end-to-end test maintenance, including the tested Kubernetes range. Nothing here changes behavior for operators.

    View source ↗
  6. 2mo ago

    v3.2.15: IngressClass ingestion fix, status rework, Go 1.27

    Stops filtering ingresses on IngressClass name at ingestion, reworks status publishing, allows amending the SSL frontend through a custom resource and moves to Go 1.27. This is the largest patch in the recent run, and it marks the shift away from passthrough fixes.

    View source ↗