Skip to content

[Feature] HaProxy DataPlane API 3 Support #398

@CrAazZyMaN21

Description

@CrAazZyMaN21

Hi,

I would really like to use this Operator with HaProxy DataPlane API 3 but this is currently not possible due an incompatability issue. Currently only HaProxy DataPlane API 2 is supported which is hardcoded in haproxy_controller.go#L102. Furthermore probably HaProxy 3 DataPlane API changed and the code needs to be adapated also.

If testers are needed for these feature I would he happy to help. I would also like to help with the code but I am sadly too inexperieced for this.

transport := httptransport.New(host, "/v2", []string{c.Scheme})

Here is the log of the error I got:

{"code":404,"message":"path /v2/services/haproxy/sites was not found"}
2025-01-06T01:10:11Z ERROR	Reconciler error {"controller": "externalloadbalancer", "controllerGroup": "lb.lbconfig.carlosedp.com", "controllerKind": "ExternalLoadBalancer", "ExternalLoadBalancer": {"name":"elb-haproxy-master-kubeapi","namespace":"elb-operator"}, "namespace": "elb-operator", "name": "elb-haproxy-master-kubeapi", "reconcileID": "efbc4eb5-da30-47a1-8f8f-c0cdb7a62222", "error": "[GET /services/haproxy/sites][404] getSites default &{Code:0xc000e6eb78 Message:0xc00097ae30 Error:map[]}"}
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).reconcileHandler
/Users/cdepaula/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.19.0/pkg/internal/controller/controller.go:316
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).processNextWorkItem
/Users/cdepaula/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.19.0/pkg/internal/controller/controller.go:263
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func2.2
/Users/cdepaula/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.19.0/pkg/internal/controller/controller.go:224

The new HaProxy 3 API URL is http://HOSTNAME/v3/services/haproxy/sites

Thanks for this Operator ❤️

Edit:
I found out that the DataPlane API 2 Binary is still available in the haproxytech/haproxy-alpine image but available under a different path /usr/bin/dataplaneapi-v2. The DataPlane API 3 Binary is used with this path /usr/bin/dataplaneapi

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions