Tim Fletcher wrote: > Hi folks, > > I've been trying to add support for the [Brightbox load balancer > API][1] to libcloud, and there's a bit of a mismatch between the two > models. > > [1]: https://api.gb1.brightbox.com/1.0/#load_balancer > > From what I can tell from reading through the code, the libcloud model > is that a load balancer has a public IP, a single port number, and it > balances traffic between multiple "members" (i.e. servers), each of > which has a public IP and a single port number. Is that correct?
Yes, this is correct. > There are several key differences between this and the Brightbox > model: a Brightbox load balancer can have multiple ports open; > Brightbox servers don't necessarily have a public IP (they can be > attached to a load balancer without one); and the ports for Brightbox > servers behind a load balancer have to be the same (the port mapping > is specified on the load balancer). > > I'm unsure how to tackle this. Is it possible to generalise the > libcloud load balancer abstraction to support the Brightbox API > somehow? I think it's possible to fit that into libcloud model. It's not a problem that servers (or 'members' in libcloud terms) don't have public IPs, as when you add a new member you pass a member object to load balancer, not an IP address. As for multiple ports per balancer it's a little bit harder, but doesn't seem to be hard to solve as well. We have to options: - keep current API and represent single Brightbox load balancer with multiple ports as a set of load balancers for every single port (that's how things are represented for Rackspace balancers for example) - modify API to support multiple ports for a single load balancer, need to look if it's possible to do with keeping API backwards compatible. Roman Bogorodskiy
signature.asc
Description: Digital signature
