Repository navigation
Labels
area/networkingIssues or PRs related to networking (ingress, gateway, vpn, metallb, kube-ovn)Issues or PRs related to networking (ingress, gateway, vpn, metallb, kube-ovn)kind/bugCategorizes issue or PR as related to a bugCategorizes issue or PR as related to a buglifecycle/staleDenotes an issue or PR has remained open with no activity and has become staleDenotes an issue or PR has remained open with no activity and has become stalepriority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next releaseMust be staffed and worked on either currently, or very soon, ideally in time for the next releasetriage/acceptedIndicates an issue is ready to be actively worked onIndicates an issue is ready to be actively worked on
Description
Problem
The tcp-balancer app fails to start after HAProxy was updated to version 3.3. The app uses haproxy:latest which now pulls a version that no longer supports having frontend and backend with identical names.
Error Message
[ALERT] (8) : config : Parsing [/usr/local/etc/haproxy/haproxy.cfg:18]: backend 'http' has the same name as frontend 'http' declared at /usr/local/etc/haproxy/haproxy.cfg:12. This is no longer supported as of 3.3. Please rename one or the other.
Root Cause
The configmap template in packages/apps/tcp-balancer/templates/configmap.yaml creates frontend/backend pairs with matching names:
frontend http/backend httpfrontend https/backend httpsfrontend kubernetes/backend kubernetesfrontend talos/backend talos
This was valid in HAProxy < 3.3 but is now a breaking error.
Suggested Fix
- Rename backends to use a suffix (e.g.,
backend http_backend,backend https_backend, etc.) - Pin the image version to avoid unexpected breakage from
:latest(e.g.,haproxy:2.9orhaproxy:3.2)
Option 2 is recommended as a best practice regardless—using :latest in production workloads can lead to unexpected breakage like this.
Affected Files
packages/apps/tcp-balancer/templates/configmap.yaml- HAProxy config templatepackages/apps/tcp-balancer/templates/deployment.yaml- Image reference (haproxy:latest)
Reacted by dosubot and Jiri Jezek
Metadata
Metadata
Assignees
Labels
area/networkingIssues or PRs related to networking (ingress, gateway, vpn, metallb, kube-ovn)Issues or PRs related to networking (ingress, gateway, vpn, metallb, kube-ovn)kind/bugCategorizes issue or PR as related to a bugCategorizes issue or PR as related to a buglifecycle/staleDenotes an issue or PR has remained open with no activity and has become staleDenotes an issue or PR has remained open with no activity and has become stalepriority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next releaseMust be staffed and worked on either currently, or very soon, ideally in time for the next releasetriage/acceptedIndicates an issue is ready to be actively worked onIndicates an issue is ready to be actively worked on
Activity
dosubot commentedon Feb 3, 2026
The tcp-balancer app fails with HAProxy 3.3 because the config template defines frontend/backend pairs with identical names (like
frontend http/backend http), which is no longer allowed in HAProxy 3.3+ and causes a startup error. The relevant config is inpackages/apps/tcp-balancer/templates/configmap.yamland the image is set tohaproxy:latestindeployment.yaml, so the latest (breaking) version is always pulled.To fix this, rename each backend to use a unique name (for example,
backend http_backendinstead ofbackend http) in the configmap template, and update the correspondingdefault_backendreferences in the frontend sections. Also, pin the HAProxy image in the deployment template to a known working version (such ashaproxy:2.9orhaproxy:3.2) instead of using:latestto avoid future unexpected breakage. This approach is supported by both the code and a relevant GitHub issue discussing explicit version pinning for HAProxy in managed apps like tcp-balancer (source, config example, deployment example).To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
yankawai commentedon Sep 22, 2026
We hit the same failure on Cozystack 1.6.1: haproxy:latest resolves to 3.4.4 now and the pod dies at config parse on the frontend/backend name collision. #2321 has the right rename but has been idle since July, so #4366 carries it forward with the image pinned to the chart appVersion, the empty-whitelist guard and the unittest suite from that review.
fix(tcp-balancer): rename backends and pin HAProxy so the chart start…
fix(tcp-balancer): rename backends and pin HAProxy so the chart start…
fix(tcp-balancer): rename backends and pin HAProxy so the chart start…