Update css file name in conf.py
[multicloud/framework.git] / docs / multicloud-hpa-discovery-pluggable.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.\r
2 .. http://creativecommons.org/licenses/by/4.0\r
3 .. Copyright (c) 2017-2018 VMware, Inc.\r
4 \r
5 ==================================\r
6 MultiCloud HPA Discovery Pluggable\r
7 ==================================\r
8 \r
9 To better support more HPA capabilities without modifying the implementation code\r
10 for Multicloud. So we need to extract the HPA discovery part of the code and make\r
11 it into many drivers(HPA Discovery Driver). if we want to add new HPA feature  or\r
12 modify the implementation code for the  existing  feature, we just need to modify\r
13 HPA Discovery Driver code.\r
14 \r
15 Problem Description\r
16 ===================\r
17 \r
18 Currently, every time we add or modify an HPA feature, we need to modify the part\r
19 of HPA discovery code,  which will affect the other HPA features. It is difficult\r
20 for device vendors to participate because they need to understand the entire ONAP\r
21 process.\r
22 In fact, we should design it so that it only requires the vendor to focus on both\r
23 discovery and use.\r
24 \r
25 \r
26 Propose Change\r
27 ==============\r
28 \r
29 Extract the original part of HPA discovery code and make it into many drivers. we\r
30 need to add hooks in Openstack,  Kubernetes and other plugins. then we develop\r
31 drivers for various language. we will get below benefit:\r
32 \r
33 #. Each driver development is independent, and modifying the driver and adding\r
34 the driver does not have any impact on each other.\r
35 #. It is easier for vendors to participate in the development of ONAP. They no\r
36 longer need to understand the whole working principle of ONAP, but only need to\r
37 understand the interface of the driver.\r
38 #. Any driver problem will not affect the HPA discovery process.\r
39 #. The publishing difficulty of openstack package is reduced. Even if the latest\r
40 driver has a little problem. We just need to point to the stable driver version\r
41 of the pip package in the dockerfile.\r
42 \r
43 We plan to develop drivers in python language(in R6 release) and drivers in golang\r
44 language(in R7 release).\r
45 \r
46 Add New Driver\r
47 -------------------------------\r
48 The hardware vendor determines whether upstream drivers. If vendor upstream driver,\r
49 then submitted the driver code to multicloud/openstack repo. then He/She will also\r
50 need package the driver and push to pip repo for distribution. In case that vendor\r
51 doesn't upstream the driver, he/she could maintain the driver in local repo as well.\r
52 \r
53   # Dockerfile(Example)\r
54 \r
55   from multi-windriver:1.4.0\r
56 \r
57   pip install <hpa-discovery-driver1(device vendor1)>\r
58 \r
59   pip install <add hpa-discovery-driver2(device vendor2)>\r
60 \r
61 Driver Version Control\r
62 ----------------------\r
63 \r
64 We will make HPA discovery drivers as pip packages to release pip REPO. name like:\r
65 \r
66 onap-device-driver-<drivername>-<version>\r
67 \r
68 when we release the plugin, we will add the driver of pip package to the docker.\r
69 \r
70 Driver code Management\r
71 ----------------------\r
72 For python language driver, we put it into multi-cloud openstack plugin.\r
73 \r
74 For golang language driver, we put it into multi-cloud kubernetes plugin.\r
75 \r
76 Security\r
77 --------\r
78 we solve one flavor each time, the result maximin is 1500 bytes. We will verify the\r
79 validity of the data?\r
80 \r
81 CRUD\r
82 ----\r
83 Driver don't write AAI, plugin will write AAI. driver just format data.\r
84 \r
85 Create\r
86 ^^^^^^\r
87 Fill discover HPA data, transform data, format data in the driver, and then return\r
88 the data, call AAI.\r
89 \r
90 Delete\r
91 ^^^^^^\r
92 Driver don't write AAI and just return resource URL accord to flavor information.\r
93 \r
94 Update\r
95 ^^^^^^\r
96 update flow is same as create flow.\r
97 \r
98 please see https://git.onap.org/multicloud/openstack/tree/share/common/msapi/helper.py L142\r
99 \r
100 Consume\r
101 -------\r
102 OOF can parse the AAI data, the driver just need to follow AAI schema. OOF output is\r
103 oof_directives which is defined in https://git.onap.org/multicloud/framework/tree/docs/specs/multicloud_infra_workload.rst.\r
104 \r
105 check VIM capacity will store in driver. driver will get information from "Collectd". This will be completed in next release.\r
106 \r
107 FCAPS\r
108 -----\r
109 Driver with some issue: alarm(pool or other mode).\r
110 if driver have some issues, the hpa capabilities will be empty.\r
111 \r
112 Usage\r
113 =====\r
114 Local use\r
115 ---------\r
116 \r
117 To integrate with multicloud openstack plugin, run below command\r
118 \r
119  $ python setup.py build\r
120 \r
121  $ python setup.py install\r
122 \r
123 based on pip package\r
124 --------------------\r
125 \r
126 To integrate with multicloud openstack plugin, run below command in create docker image\r
127 \r
128  $ pip install <package-name>\r
129 \r
130 Tests\r
131 =====\r
132 \r
133 #. Unit Tests with tox.\r
134 #. Integration test will use SRIOV-NIC as example.\r
135 \r
136 Reference\r
137 =========\r
138 https://wiki.onap.org/display/DW/Multicloud+HPA+Discovery+Pluggable\r

© 2017 ONAP. Copyright © The Linux Foundation ®. All Rights Reserved.
The Linux Foundation has registered trademarks and uses trademarks.
For a list of trademarks of The Linux Foundation, please see our Trademark Usage page.
Linux is a registered trademark of Linus Torvalds.
Privacy Policy and Terms of Use