[Openstack] [HEAT] orchestration on multiple external Cloud providers

Steve Baker sbaker at redhat.com
Fri Jul 19 01:44:58 UTC 2013

On 07/11/2013 10:04 PM, Geoffroy wrote:
> I am trying to use Heat as an provisioning tool on multiple Cloud
> providers, lets say HpCloud and Rackspace. I got local keystone,
> heat-api and heat-engine servers. My scenario is: if i submit a
> template with 2 compute instances, i want them to be distributed on
> each providers.
> It's a little difficult, because heat-engine reuses my local keystone
> to retrieve the endpoint and credentials, which are different for each
> external providers.
> My guess was to use the Environment to store every external
> credentials in the parameters, and precise in the resource_registry a
> binding for every instances:
> parameters:
>   HpCloudUserName: foo
>   HpCloudPassword: foo
>   HpCloudAuthUrl: http://foo.org
>   RackspaceUserName: bar
>   RackspacePassword: bar
>   RackspaceAuthUrl: http://bar.org
> resource_registry:
>   resources:
>     my_instance_1:
>       "AWS::EC2::Instance" : "HpCloud::Nova::Compute"
>     my_instance_2:
>       "AWS::EC2::Instance" : "Rackspace::Compute::Server"
> Then, i code some new python plugins, that will handle this 2 new
> type, take the corresponding credentials in the environment, and call
> the novaclient with the correct arguments.
> But my problem is that this solution seems overkill, as i  will have
> to add a new python class for every type i want to use, multiply by
> the number of externals providers. Even if i can factorize the code,
> in the end i just want to customize the credentials and auth endpoint.
> Do you known if there is a better way to achieve this goal, or simply
> if Heat shouldn't be use for this ?.
There are a few interim steps required before we can handle your
scenario of multiple clouds in a single template. The first steps are to
change API middleware behaviour to not assume heat is installed in a
single integrated openstack:

When they are ready, the HOT template concepts of Environments and
Providers should allow you to implement your HpCloud::Nova::Compute and
Rackspace::Compute::Server as nested stacks so you won't need to code
these in python.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20130719/5b3bb77e/attachment.html>

More information about the Openstack mailing list