| .. |
| This work is licensed under a Creative Commons Attribution 4.0 |
| International License. |
| Copyright (c) 2017-2018 Wind River Systems, Inc. |
| |
| =============================== |
| MultiCloud Multi-Region support |
| =============================== |
| |
| This proposal describes how MultiCloud plugin automates the on-boarding of tens or hundreds of cloud regions by leveraging multi-region feature |
| |
| Problems Statement |
| ================== |
| |
| The ONAP functional requirement for Edge Automation aims to automate the VNF orchestration across edge stacks. |
| .. |
| https://wiki.onap.org/display/DW/Edge+Automation+through+ONAP |
| |
| Before VNF can be orchestrated over these edge stacks, these edge stacks must be on-boarded into ONAP. This can be a very big challenge in case of tens of or hundred of edge stacks. Fortunately, With OpenStack multi-region feature, the OpenStack primary region will expose |
| all secondary regions' endpoints. Hence MultiCloud plugins could automate the discovery and registry |
| of all OpenStack secondary regions. |
| |
| |
| Proposed Design and Workflow |
| ============================ |
| |
| This automation assumes: |
| - ONAP could use the same set of credentials (project, user/password) to access all OpenStack regions for orchestration. |
| - ONAP user will explicitly enable the automation of discovery OpenStack secondary regions during manually on-boarding the OpenStack primary region. |
| - ONAP users could manually manage the cloud regions representing those secondary regions just like a normal cloud region |
| |
| |
| With OpenStack primary region, the ONAP user will: |
| .. |
| https://wiki.onap.org/pages/viewpage.action?pageId=25431491 |
| |
| - Manually on-board this primary region with ESR VIM registration portal. |
| - Input the {cloud-owner} and {cloud-region-id} as the ID of cloud region which is unique. |
| - Specify the location id |
| - Specify the intention of automation of OpenStack secondary regions managed by this primary region. This intention is specified with key-value pair {"multi-region-discovery":"true"} populated to cloud region's property "cloud-extra-info" |
| |
| |
| **With OpenStack primary region, the corresponding MultiCloud plugin will**: |
| - Discover all OpenStack secondary regions in case being explicitly indicated with key-value pair {"multi-region-discovery":"true"} |
| - Register each of discovered OpenStack regions as a new cloud region into AAI. |
| - Duplicate the credentials and location relationship from primary region. |
| - Duplicate all or part of the cloud region's property "cloud-extra-info", |
| - Add one more key-value pair to cloud region's property "cloud-extra-info": {"primary-region":["{cloud-owner}","{cloud-region-id}"]} |
| - Add relationship to the cloud region of primary region: to be checked. |
| - Generate the ID of cloud region representing the OpenStack secondary region with following rules: |
| - {cloud-owner} should be {cloud-owner of primary region}. |
| - {cloud-region-id} will be the concatenated string with format: {cloud-region-id of primary region}.{OpenStack Region ID}. |
| - The composite keys {cloud-owner},{cloud-region-id of primary region}.{OpenStack Region ID} will be unique since the composite key of primary region: {cloud-owner},{cloud-region-id} is unique. |
| |
| |
| **With generated cloud region representing the OpenStack secondary region, the ONAP user could**: |
| - update the credentials so that the ONAP could use updated credentials to orchestrate VNF to this cloud region |
| - update the location of the cloud region by associating it to different complex object other than the one same to primary region. |
| - Update cloud region's property "cloud-extra-info". |
| - Decommission or delete the cloud region |
| |
| |
| Appendix: |
| ========= |
| |
| There is a property of cloud region object named "cloud-extra-info" |
| .. |
| https://wiki.onap.org/display/DW/AAI+REST+API+Documentation+-+Beijing |
| |
| :: |
| |
| cloud-extra-info: string |
| ESR inputs extra information about the VIM or Cloud which will be decoded by MultiVIM. |
| |
| the intention of this property is to enable the extending of cloud region object without impact AAI's schema. How and when to use this property is up to each multicloud |
| plugin respectively. This property can be populated by ONAP users through ESR VIM registration GUI Portal (the input field label: "Cloud Extra Info"). The best practice to utilize this "cloud-extra-info" property is that ONAP users to input format json string, with |
| which extra configuration data can be serialized as {"key":"value"} into this json string. And the corresponding MultiCloud plugin decode and utilize the input key-value pairs. |