| .. |
| This work is licensed under a Creative Commons Attribution 4.0 |
| International License. |
| |
| ===================================================== |
| MultiCloud HPA information discovery and registration |
| ===================================================== |
| |
| To support Beijing Release Use Case: "Hardware Platform Enablement In ONAP" |
| (https://wiki.onap.org/display/DW/Hardware+Platform+Enablement+In+ONAP), |
| MultiCloud services play a very key role to discover all available Hardware |
| Platform capabilities and capacities (referred as HPA: Hardware Platform |
| Awareness) from underylying VIMs/Clouds and represent them into AAI, so that |
| ONAP OOF service could match the requirement of HPA from VNF vendors as well |
| as ONAP policy to the HPA information of underylying VIMs/Clouds to decide |
| which VIM/Cloud is the best candidate to place VNFs. |
| |
| |
| Overall process |
| ================ |
| |
| The trigger to invoke such discovery and representation process will usually |
| be ESR (External System Registration service). Whenever the ONAP user is |
| onboarding a VIM instance or a cloud, he/she will fill in VIM/Cloud access |
| information including but not limited to : authentication url, user/password, |
| tenant name, cloud owner and region id, and cloud extra information pertaining |
| to this VIM/Cloud. |
| |
| Given these access information for a VIM instance, ESR will request MultiCloud |
| to perform VIM/Cloud registration process. |
| |
| .. [The sequence diagram to illustrate the interactions] https://sequencediagram.org/index.html?initialData=C4S2BsFMAIGFwPYFcAmBaASpA5iBA7aASXzGgBEQBnAYwQDdIAnATwCg2AHAQydBpA98waAFUqzLr36Duw6AFEAyhil8QAoSICC2omplboAWSThQ8ZOgBCTBAGtJPdZrkjT5kJdRoACuCRcfAMNWXksAFsEYEgANSJjaDZxZjQAPmUMAC4xCSZobhQUKjhEHyYcPGDM9N0iHO0i0qs0CtwCaGAEToALGBB8RmEEVjZMgB40NDroHKUkGhpIKioAegAzbhAAiuS8ybRMuYWllY2tncgxlXSPCzKbO0cmHIA5aJB1lgKisCroBDraD4SAAd2gNAerUqBDYdy8UNsDlSaXh3keyJe0CUkCgNGAJWAfWgnACQWgACNuBIUADCAAdfDxYxoYAsTgwQG9bgiSEtNpVOFme4tJHPW7ChEtfyBAY5AAqTBA2GwzGBYIhUIFHUKKD+sLRUJlQXSkWicQSOQA4pAROtwNx6CM1rFjEoQAAvZarEhUYByJaddnLIWedF+MkDA5mmLMnJYKicAgSaCgsA9ArgcBBjklKhIThJviQFChkU+Y0DU2QKKxy3QG0iFC2i4lLmM+2O52rV3ur1rX3+-CneXBkqMqC8eQDEkVeh4JB5mKcMtSiuR-DRmvmuPQBNJ-ApgAUaaJ0Gb-u2VAAlKvw5X8BKw0aN28RhFuOBPTBO06mC63W-AdDyHJZR1zaBGTkWkFF8bRoAGdZ3x5f4Bi6RQ4LQX9nUg-BqWgSAAA8OXxEtKW+AB5V5tF8O8X1lR80jqBomlg7QsIdP8Smg3DqSoBABB5Mi2KwyAeSQCpxzw-BaTAbjgGAJUKSQGISiQGS1UZIkYD5coYWCIA |
| |
| |
| The VIM/Cloud registration process during which MultiCloud discovers and |
| represents HPA information will be implemented in each MultiCloud Plugin |
| service respectively which knows best of the corresponding underylying |
| VIM/Cloud. |
| |
| Proposed alternative solutions to discover HPA information |
| ========================================================== |
| |
| While it is up to each MultiCloud Plugin service to determine how to discover |
| HPA information, there are several alternative solutions to accomplish such |
| discovery process. |
| |
| Solution 1: Hard-coded discovery |
| -------------------------------- |
| |
| The MultiCloud services are designed in the way that there will be specific |
| plugin service to adapting ONAP into specific type or flavor of VIM/Cloud, |
| so the specific MultiCloud plugin service is tightly coupled with the |
| corresponding VIM/Cloud type or flavor. If some kinds of HPA information are |
| statically pertaining to a VIM/Cloud type or flavor and invariant between |
| different instance, it will be possible to hard coding this HPA information |
| into the corresponding MultiCloud Plugin Service. One example is that Titanium |
| Cloud comes along with builtin HPA feature of vswitch with DPDK support, so |
| this HPA information will be hard-coded into MultiCloud plugin service for |
| Wind River Titanium Cloud. |
| |
| |
| Solution 2: Manually discovery |
| ------------------------------ |
| |
| There are some kinds of HPA information which vary between instances of the |
| same VIM/Cloud type, but will be invariant during the whole life-cycle of |
| that instance. These information can be manually injected into ONAP during |
| the VIM/Cloud instance onboarding process. There is a field named |
| "cloud extra info" from the ESR VIM registration portal, ONAP users could |
| input the extra information into ONAP which will be stored into AAI |
| (refer to property of "cloud-extra-info" of /cloud-infrastructure/cloud-regions |
| /cloud-region/{cloud-owner}/{cloud-region-id}). So when MultiCloud Plugin |
| Service are invoked to discover HPA information, the cloud extra information |
| will be decoded to check if there are HPA information can be extracted and |
| represented into AAI. |
| |
| |
| Solution 3: Automatically discovery |
| ----------------------------------- |
| |
| There are some other kinds of HPA information which changes dynamically |
| during the life-cycle of a VIM/Cloud instance, so we have to discover them |
| leveraging some automation approach. While different VIM/Cloud type of flavor |
| exposes different approach to support the automatical discovery with respect |
| to HPA resources, the approach is quite straight-forward for OpenStack. |
| For those HPA information will be consumed by specifying the extra specs of a |
| flavor, VIM/Cloud administrators could provision these flavor's extra specs |
| with HPA information before onboarding the VIM/Cloud instance into ONAP. |
| After VIM/Cloud onboarding to ONAP, MultiCloud Plugin Service for OpenStack |
| will extract these HPA information from the extra specs of the flavors and |
| represent them into AAI. |
| |
| |
| Representation of HPA information |
| ================================= |
| |
| With regarding to how to represent HPA information into AAI, it is up to how |
| AAI schema are defined and we willcontribute and feedback. |
| |
| |
| Stectch goal |
| ============ |
| |
| There is another consideration to discover new HPA information periodically, |
| this can be a stretch goal for Beijng Release. |
| |
| .. [Periodically HPA information discovery] https://sequencediagram.org/index.html?initialData=C4S2BsFMAIAVIE4gPYBMQGNroM4eQG6ICe0yAZtNAKKwCCAtOeAIYHII4BQXADiwlAYQ-AHbBoAWQCu4UAGFwyaagYAhBMgDWiPgKEiW4qbIVKVDWOGkBzEKL2DMh43ToBJRwbESASpABbZGBIADV3SR4uUWCYQkQTORBFZVUNbUQALmgAMQ5oSBYMAAtocMloYGJeSGjYsiIERLNUy2s7UWy8psKSsojoBEg7ZAcZJJSLK1t7BgA+cZap9vts+CQ0TBp6bBA8eIRSGNByTBZQUa5F5PNVaY7oef8gkPLsgHFICWY2DhwAelCFQAyiAAF6QAHuUQ4YBGDAwKo1bjHGBIGzFCQUZo3Vr3VbQADyNRhcIwWn6khw0GkOBgP3YTRCCACABpoAAdUR0MHSIY0unUgDkQOgoIhOCFlUQAU53IA6sCBZDoEL7LD4YjqpApczZVzgMhBpBeEM6cYCAIULToPgArxpCFoDZNNJeDgAHRXUy45YzUQAHgYDGesTe0H8OF4ozp0AA7mBSgy-tAcG7o4JIKh2Vy48UvvmmvljpVCzABDBIDFbKUuWblAgEdS2CwQKwAEZQaD2Uto4YoUTQcj5YDFPZD1iM70TW5tf1PQJhiIfL7YL6t8DU0YFIpJyccQEg8GQf7QjWiBGVbXTpZ3FaB4Oh14DbKR6MwmAJ0druFtlH1dFMTIShrkmO9-WyAARdc-27C9rFQGACHkWAAFUcHZAJAlTY8c1EXAKRwY9oCMVAClEYpNTIrleFYYBhxZIdCmAPkVTTXgMxCMj21IUdzgnX4EBvX1wI6eZQNnfFOmgAA5DgAhYcBj3+YAECMHA6JgLlkwQQ8xWUs84QvLUajlewGIUi5B0NIkZLoWA11OUQszlWhGB06kLPOYSwLnMS5jcdwVwkSAAA89lAUQbG2dz904MhrPzY0RjGH1fKkoMGEC19IXfWMv1KRTwBipg4ubfDexAJpEN-TcfMk+9xLShr-WgYK1zkFhoHbL440gKs5TCiL7GitzSsE8rqNEZy43AUhcHwRoXLtB0QgYF1lHdL0JLxRqAo8TI6A4uaOrhAURugQLLtgdw5VIkjNyNFhjtIDBnqKMBSA1Fit0HXpa1EMadO6lg6TI7dvptcz5POAdoCgARxC9LggA |
| |
| |