Merge " Logging Specs for S3P"
authorLiang Ke <lokyse@163.com>
Wed, 28 Feb 2018 06:42:28 +0000 (06:42 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 28 Feb 2018 06:42:28 +0000 (06:42 +0000)
docs/specs/MultiCloud-HPA-Discovery-design.rst [new file with mode: 0644]
docs/specs/multicloud_resource_capacity_check.rst [new file with mode: 0644]

diff --git a/docs/specs/MultiCloud-HPA-Discovery-design.rst b/docs/specs/MultiCloud-HPA-Discovery-design.rst
new file mode 100644 (file)
index 0000000..3a841de
--- /dev/null
@@ -0,0 +1,109 @@
+..
+ 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
+
+
diff --git a/docs/specs/multicloud_resource_capacity_check.rst b/docs/specs/multicloud_resource_capacity_check.rst
new file mode 100644 (file)
index 0000000..9fddb85
--- /dev/null
@@ -0,0 +1,101 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright (c) 2017-2018 VMware, Inc.
+
+MultiCloud Resources Capacity Check API
+=======================================
+
+To better expose VIM capabilities and available resources capacity to external
+consumer, some extensions need to be done by MultiCloud.
+
+
+Problem Description
+===================
+
+Current MultiCloud didn't expose any standard API/methods to check/publish the
+resources capacity for each VIM, which makes external project can not realize
+the capacity information of VIM. When a VIM with shortage resources was chosen
+to deploy a bunch of VNFs, it will fail eventually. Exposing these information
+will could let external project to make a better decision on choosing which VIM
+to deploy the VNFs.
+
+
+Propose Change
+==============
+
+Cloud Locations
+---------------
+
+Cloud latitude and longitude information is needed by OOF to determine the
+distance between vGMuxInfra and vG. The latitude and longitude information
+are part of A&AI complex schema[A&AI Complex Schema]_, which related to
+cloud-region schema.
+
+There is no change needed to MultiCloud, but cloud administrator need to
+input these information when register a new VIM. Currently ESR Portal don't
+expose these input forms to cloud administrator, need ESR team to add related
+workflow to create complex data in A&AI and create a relationship between
+location information and cloud-region record.
+
+... [A&AI Complex Schema] https://gerrit.onap.org/r/gitweb?p=aai/aai-common.git;a=blob;f=aai-schema/src/main/resources/oxm/aai_oxm_v12.xml;h=e146c06ac675a1127ee11205c0ff2544e4d9a81d;hb=HEAD#l772
+
+
+Available Resource Check
+------------------------
+
+A new API will be used by OOF to check the available cloud resources, which
+will help OOF to make a better placement decision. OOF will give a resrouces
+requirement of a specific deployment and a list of VIMs which need to be
+check whether have enough resources for this deployment. The ouput of
+Multicloud will be a list of VIMs which have enough resources.
+
+There will be two part of APIs for this requirement, an check_vim_capacity API
+will be added to MultiCloud borker to return a list of VIMs, another
+API <vim_id>/capacity_check will be added to each MultiCloud plugins, and return
+true or false based on whether the VIM have enought resources. When MultiCloud
+broker receive a POST request on check_vim_capacity, it will request to each
+<vim_id>/capacity_check API, and return a list of VIMs with a true in response
+data.
+
+
+Input of check_vim_capacity will be
+
+::
+  {
+    "vCPU": int,  // number of cores
+    "Memory": float,  // size of memory, GB
+    "Storage": int, //GB
+    "VIMs": array  // VIMs OOF wish to check with
+  }
+
+Output of check_vim_capacity will be
+
+::
+  {
+    "VIMs": array  // VIMs satisfy with this resource requirement
+  }
+
+Input of <vim_id>/capacity_check will be
+
+::
+  {
+    "vCPU": int,
+    "Memory": float,
+    "Storage": int,
+  }
+
+
+Output of <vim_id>/capacity_check will be
+
+::
+  {
+    "result": bool
+  }
+
+
+Work Items
+==========
+
+#. Work with ESR team for location inport form.
+#. Add check_vim_capacity API to MultiCloud Broker.
+#. Add check_vim_capacity API to each MultiCloud Plugins.
\ No newline at end of file