-
-
Notifications
You must be signed in to change notification settings - Fork 9
Description
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