Support multiple Heat stack for application
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
- Status:
- Not started
- Approver:
- Serg Melikyan
- Priority:
- Medium
- Drafter:
- Georgy Okrokvertskhov
- Direction:
- Approved
- Assignee:
- Stan Lagun
- Definition:
- Drafting
- Series goal:
- Accepted for future
- Implementation:
-
Not started
- Milestone target:
- None
- Started by
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Adds ability to have multi-cloud environments
1) https:/
2) Rebase and test main commit https:/
Work Items
Dependency tree

* Blueprints in grey have been implemented.