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: https://blueprints.launchpad.net/heat/+spec/heat-standalone https://blueprints.launchpad.net/heat/+spec/heat-multicloud
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.
_______________________________________________ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp