cloudbridge icon indicating copy to clipboard operation
cloudbridge copied to clipboard

Make it easier to connect to cloud providers/regions and handle OpenStack differences

Open nuwang opened this issue 6 years ago • 0 comments

Just noting this here as something we could discuss.

Currently, it's a one-liner to connect to the default AWS/GCE/Azure region, but not that easy to connect to different regions. OpenStack is worse, because you also have to define provider specific settings, including endpoint.

Perhaps it would be a good idea to instead treat each cloud/region as a distinct provider, and have a one liner to connect. This could potentially be done without an interface change, just something that's layered on top.

Something along the lines of:

factory.create_provider(OPENSTACK, NECTAR)
factory.create_provider(OPENSTACK, JETSTREAM)
factory.create_provider(AWS, US-WEST)

or something similar.

The main advantage would be that you wouldn't have to provide connecting settings per cloud/region other than username/password/project.

Along with this, it may also be an idea to treat each openstack cloud as a distinct entity, and maybe have the NeCTAR provider inherit from a Generic openstack provider. In particular, we may be able to move logic relating to unavailability of floating IPs, and complications related to external networks out of the base provider and into the NeCTAR specific provider.

The negative is that this will complicate the backend in some aspects, while simplifying things in other aspects.

nuwang avatar Mar 12 '18 07:03 nuwang