Support multiple Heat stack for application

Registered by Georgy Okrokvertskhov on 2014-08-20

In order to support deployments that involve multiple clouds (regions) it is necessary to support multiple Heat stacks in single Environment. It is impossible with current design because "stack" property belongs to Environment property which is a singleton.
The proposed solution is to introduce another class "Cloud" that would represent OpenStack partition (initially region) and move Heat stack related code there. Then make Environment inherit Cloud for backward compatibility. Because Cloud is a separate class additional instances of it can be created. We can also create a class that would inherit both Cloud and Application so that it would be possible to create them in dashboard. Then each cloud entity (resources, applications) need to have optional reference to the Cloud. This can be achieved by introducing yet another class CloudObject that would be base class for all resources and Application class. That class would provide optional "cloud" property and getCloud() method that inheritors could use to get the
Cloud they belong to. getCloud() would check the "cloud" property and if it is equal to null then use owner's object cloud. If there is both no Cloud and no parent object then use Environment. Thus setting "cloud" affects all objects down the object model tree. Because Environment is a common
root for all objects in Object Model default Heat stack (that is inherited by Environment) would be used if no object has "cloud" set or if application was written prior to CloudObject introduction.

Blueprint information

Not started
Serg Melikyan
Georgy Okrokvertskhov
Stan Lagun
Series goal:
Accepted for future
Not started
Milestone target:

Related branches



Gerrit topic:,topic:multi-region-cloud,n,z

Addressed by:
    Adds ability to have multi-cloud environments

1) need to fix and test this commit, so both Nova network and neutrone will be supported

2) Rebase and test main commit


Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.


No subscribers.