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

Attachment: signature.asc
Description: Digital signature

Reply via email to