Difference between revisions of "Heat/Blueprints/Multi Region Support for Heat"
Line 72: | Line 72: | ||
[[File:Template flow.png|800x419px|framed|center|Template flow]] | [[File:Template flow.png|800x419px|framed|center|Template flow]] | ||
+ | |||
+ | ==== Challenges & Solutions ==== | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Challenge !! First step !! Future work | ||
+ | |- | ||
+ | | Dependencies between resources from different regions. || || | ||
+ | |} | ||
+ | |||
+ | == What needs to be done == | ||
+ | === Heat === | ||
+ | ==== Engine ==== | ||
+ | |||
+ | ===== VPN support ===== | ||
+ | [[Heat/Blueprints/VPaaS_Support|Blueprint for VPaaS support]] | ||
==== Context as Resource ==== | ==== Context as Resource ==== | ||
Line 151: | Line 167: | ||
... | ... | ||
</nowiki></pre> | </nowiki></pre> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==== UI ==== | ==== UI ==== | ||
Line 181: | Line 178: | ||
** [https://wiki.openstack.org/wiki/File:Heat_ui_stack_detail_events_tab.png Events Tab] | ** [https://wiki.openstack.org/wiki/File:Heat_ui_stack_detail_events_tab.png Events Tab] | ||
* [https://wiki.openstack.org/wiki/File:Heat_ui_resource_detail.png Resource Details] | * [https://wiki.openstack.org/wiki/File:Heat_ui_resource_detail.png Resource Details] | ||
+ | |||
+ | What about views for nested stack? | ||
=== Horizon support for multi regions === | === Horizon support for multi regions === |
Revision as of 12:28, 31 July 2013
--bartosz-gorski (talk) 23:51, 15 July 2013 (UTC)
Overview
Introduction
Most of enterprises are focusing on Multi-cloud (using both private and public clouds) as enterprise cloud strategy. They will not completely migrate to Service Provider's cloud (public cloud). They will still keep their mission critical information assets to their premise or collocation space (private cloud).
Our goal is to create Hybrid-cloud (combination of public and private cloud). Creating Hybrid-cloud requires:
- Seamless operation among heterogeneous environment
- End-to-end automatic provisioning based on system template (VM, network, topology)
- Unified control and monitoring
- Multi-Hypervisor including bare-metal
- Multi-Region control
- Secure network access via Internet (VPN connection)
Requirements & Challenges
Requirements for Heat:
- Mapping between Regions and API endpoints
- Mapping between Regions and Images
- Specifying Region for each resource
- Support for VPN as resource
- Horizon interface for Heat with multi regions
Challenges:
- dealing with dependencies between resources in different regions
- minimizing number of single region templates for which multi region template will be split
- figure out efficient way to update multi region stack
Goal
First Use Case Scenario (no dependencies)
We have two regions (East and West) with separate OpenStack installations. We want to use Heat with multi region support to create in both regions:
- Quantum Network
- Quantum Subnet
- 10.1.0.0/24 in East
- 10.2.0.0/24 in West
- Router
- Router Interface for created subnet
- Router Gateway for external network
- VPN Service for created router
- IKE Policy
- IPsec Policy
- VPN Connection
- Server connected to created subnet
Template file example in appendix (Multiregion.template).
Second Use Case Scenario (with dependencies)
TBD
Architecture
Overview
Description:
- More than one region (for example two: East and West)
- Separate OpenStack installation (Nova, Glance, Swift, Neutron and Cinder) in each region
- One Keystone service for all regions
- One Horizon with multi region support
Stack Launch Flow
Multi region template (master template) is the main template file that is sent to the heat engine in one of the available regions. It consists of two types of resources:
- local resource (resource without specified context) - can be a single resource or nested stack and it will be created with default context (with the same region, project and user credentails that master template was launched).
- remote resource (with specified context) - can be only a nested stack and it will be created by sending the template to appopriate heat engine in specified region.
Challenges & Solutions
Challenge | First step | Future work |
---|---|---|
Dependencies between resources from different regions. |
What needs to be done
Heat
Engine
VPN support
Context as Resource
Property | Description |
---|---|
name | User friendly name of the context |
description | Context description. |
project_name | Name of the keystone project. |
region_name | Name of the region. |
heat_endpoint | URL to the Heat API in specified region. If not provided Heat will query keystone service to get it. |
username | Username of the keystone account. |
password | Password for provided username. |
... "Resources" : { ... "MyContext": { "Type": "OS::Cloud::Context", "Properties": { "name": "My context", "descirption": "My new context description", "project_name" : "demo", "region_name" : "RegionOne", "username" : { "Ref" : "Username" }, "password" : { "Ref" : "Password" } } }, ... } ...
Nested Stack
Property | Description | Implementation |
---|---|---|
Context | Context which will be used to create nested stack | Not started |
TemplateURL | Url address to nested stack tempalte file | Done |
TimeoutInMinutes | Creation timeout in minutes | Done |
Parameters | Values for nested stack parameters | Done |
... "Resources" : { ... "NewStackTemplate": { "Type": "AWS::CloudFormation::Stack", "Properties": { "TemplateURL": "https://raw.github.com/openstack/heat-templates/master/cfn/NestedStack.template", "Parameters": { "ParameterName1" : "Value1", "ParameterName2" : "Value2", "ParameterName3" : "Value3", ... } } }, ... } ...
UI
Existing UI views:
- Stack List for Tenant
- Launch new Stack
- Stack Details
- Resource Details
What about views for nested stack?
Horizon support for multi regions
Dropbox will appear only if more than one region is available in keystone catalog.
- Project Tab
- Dropbox to choose one of the available regions (Horizon Multi Region Project Tab)
- Admin Tab
- Dropbox to choose one of the available regions (Horizon Multi Region Admin Tab)
Dependencies & References
- BL: Implement a Heat UI for managing stacks (MERGED)
- BL: Support multiple endpoints for the same service (MERGED)
- BL: VPN as a Service providing IPsec VPN with Static routing (UNDER REVIEW)
Appendix
Templates
- Multiregion.template