DCAE doc cleanup warnings
[dcaegen2.git] / docs / sections / design-components / DCAE-MOD / DCAE-MOD-User-Guide.rst
1 ===================
2 DCAE MOD User Guide
3 ===================
4
5
6
7 -  `Types of Users and Usage
8    Instructions: <#DCAEMODUserGuide(draft)-TypesofUsersand>`__
9
10 -  `1.    Deployment of DCAE MOD components via Helm
11    charts <#DCAEMODUserGuide(draft)-1.DeploymentofD>`__
12
13    -  `Using DCAE MOD without an Ingress
14       Controller <#DCAEMODUserGuide(draft)-UsingDCAEMODwit>`__
15
16 -  `2.    Configuring DCAE
17    mod <#DCAEMODUserGuide(draft)-2.ConfiguringDC>`__
18
19 -  `3.    Design & Distribution
20    Flow <#DCAEMODUserGuide(draft)-3.Design&Distri>`__
21
22
23 Types of Users and Usage Instructions:
24 ======================================
25
26 +-------+-----------------------------+-----------------------------+
27 | Sr.No | User                        | Usage Instructions          |
28 +=======+=============================+=============================+
29 | 1.    | Developers who are looking  | -        Access the Nifi    |
30 |       | to onboard their mS         | Web UI url provided to you  |
31 |       |                             |                             |
32 |       |                             | -        Follow steps  2.c  |
33 |       |                             | to 2.f                      |
34 |       |                             |                             |
35 |       |                             | -        You should be able |
36 |       |                             | to see your microservices   |
37 |       |                             | in the Nifi Web UI by       |
38 |       |                             | clicking and dragging       |
39 |       |                             | ‘Processor’ on the canvas,  |
40 |       |                             | and searching for the name  |
41 |       |                             | of the                      |
42 |       |                             | micros                      |
43 |       |                             | ervice/component/processor. |
44 +-------+-----------------------------+-----------------------------+
45 | 2.    | Designers who are building  | -        Access the Nifi    |
46 |       | the flows through UI and    | Web UI url provided to you  |
47 |       | triggering distribution     |                             |
48 |       |                             | -        Follow steps 3 to  |
49 |       |                             | the end of the document     |
50 +-------+-----------------------------+-----------------------------+
51 | 3.    | Infrastructure/ Admins who  | -        Follow start to    |
52 |       | want to stand up DCAE Mod   | the end                     |
53 |       | and validate it             |                             |
54 +-------+-----------------------------+-----------------------------+
55
56
57 1.    Deployment of DCAE MOD components via Helm charts
58 =======================================================
59
60 The DCAE MOD components are deployed using the standard ONAP OOM
61 deployment process.   When deploying ONAP using the helm deploy command,
62 DCAE MOD components are deployed when the dcaemod.enabled flag is set to
63 true, either via a --set option on the command line or by an entry in an
64 overrides file.  In this respect, DCAE MOD is no different from any
65 other ONAP subsystem.
66
67 The default DCAE MOD deployment relies on an nginx ingress controller
68 being available in the Kubernetes cluster where DCAE MOD is being
69 deployed.   The Rancher RKE installation process sets up a suitable
70 ingress controller.   In order to enable the use of the ingress
71 controller, it is necessary to override the OOM default global settings
72 for ingress configuration.   Specifically, the installation needs to set
73 the following configuration in an override file::
74  
75   global:
76    ingress:
77     enabled: true
78     virtualhost:
79      enabled: false
80
81 When DCAE MOD is deployed with an ingress controller, several endpoints
82 are exposed outside the cluster at the ingress controller's external IP
83 address and port.   (In the case of a Rancher RKE installation, there is
84 an ingress controller on every worker node, listening at the the
85 standard HTTP port (80).)  These exposed endpoints are needed by users
86 using machines outside the Kubernetes cluster.
87
88 +--------------+--------------------------------------------------+--------------------------+
89 | **Endpoint** | ** Routes to (cluster                            | **Description**          |
90 |              | internal address)**                              |                          |
91 +==============+==================================================+==========================+
92 | /nifi        | http://dcaemod-designtool:8080/nifi              | Design tool Web UI       |
93 |              |                                                  |                          |
94 +--------------+--------------------------------------------------+--------------------------+
95 | /nifi-api    | http://dcaemod-designtool:8080/nifi-api          | Design tool API          |
96 |              |                                                  |                          |
97 +--------------+--------------------------------------------------+--------------------------+
98 | /nifi-jars   | http://dcaemod-nifi-registry:18080/nifi-jars     | Flow registry listing of |
99 |              |                                                  | JAR files built from     |
100 |              |                                                  | component specs          |
101 +--------------+--------------------------------------------------+--------------------------+
102 | /onboarding  | http://dcaemod-onboarding-api:8080/onboarding    | Onboarding API           |
103 |              |                                                  |                          |
104 +--------------+--------------------------------------------------+--------------------------+
105 | /distributor | http://dcaemod-distributor-api:8080/distributor  | Distributor API          |
106 |              |                                                  |                          |
107 +--------------+--------------------------------------------------+--------------------------+
108
109 | To access the design Web UI, for example, a user would use the URL :
110   http://*ingress_controller_address:ingress_controller_port*/nifi.
111 | *ingress_controller_address* is the the IP address or DNS FQDN of the
112   ingress controller and
113 | *ingress_controller_port* is the port on which the ingress controller
114   is listening for HTTP requests.  (If the port is 80, the HTTP default,
115   then there is no need to specify a port.)
116
117 There are two additional *internal* endpoints that users need to know,
118 in order to configure a registry client and a distribution target in the
119 design tool's controller settings.
120
121 +------------------------+--------------------------------------------+
122 | **Configuration Item** | **Endpoint URL**                           |
123 +========================+============================================+
124 | Registry client        | http://dcaemod-nifi-registry:18080         |
125 +------------------------+--------------------------------------------+
126 | Distribution target    | http://dcaemod-runtime-api:9090            |
127 +------------------------+--------------------------------------------+
128
129 Using DCAE MOD without an Ingress Controller
130
131
132 Not currently supported
133
134 2.    Configuring DCAE mod
135 ==========================
136
137 **a. Configure Nifi Registry url**
138
139 Next check Nifi settings by selecting the Hamburger button in the Nifi
140 UI. It should lead you to the Nifi Settings screen
141
142 |image16|
143
144 |image3|
145
146 Add a registry client. The Registry client url will be
147 http://dcaemod-nifi-registry:18080
148
149 |image4|
150
151
152 **b. Add distribution target which will be the runtime api url**
153
154 Set the distribution target in the controller settings
155
156 |image17|
157
158 Distribution target URL will be
159 `http://dcaemod-runtime-api:9090 <http://dcaemod-runtime-api:9090/>`__
160
161
162
163 Now let’s access the Nifi (DCAE designer) UI - http://<IPAddress>/nifi
164
165 IPAddress is the host address or the DNS FQDN, if there is one, for one of the Kubernetes nodes.
166
167 |image0|
168
169
170 **c. Get the artifacts to test and onboard.**
171
172 Let's fetch the artifacts/ spec files 
173
174 **Sample Component DCAE-VES-Collector :** https://git.onap.org/dcaegen2/collectors/ves/tree/dpo/spec/vescollector-componentspec.json
175
176 **Sample Data Format :** https://git.onap.org/dcaegen2/collectors/ves/tree/dpo/data-formats/VES-5.28.4-dataformat.json
177
178 For the purpose of onboarding, a Sample Request body should be of the type -::
179
180   { "owner": "<some value>", "spec": <some json object> }
181
182 where the json object inside the spec field can be a component spec json.
183
184 Request bodies of this type will be used in the onboarding requests you make using curl or the onboarding swagger interface.
185
186 **The prepared Sample Request body for a component dcae-ves-collector looks like
187 so –**
188
189 See :download:`VES Collector Spec <./Sample-Input-Files/Request-body-of-Sample-Component.json>`
190
191 **The prepared Sample request body for a sample data format  looks like so -**
192
193 See :download:`VES data Format <./Sample-Input-Files/Request-body-of-Sample-Data-Format.json>`
194
195
196
197 **d. To onboard a data format and a component**
198
199 Each component has a description that tells what it does.
200
201 These requests would be of the type
202
203 curl -X POST http://<onboardingapi host>/onboarding/dataformats     -H "Content-Type: application/json" -d
204 @<filepath to request>
205
206 curl -X POST http://<onboardingapi host>/onboarding/components     -H "Content-Type: application/json" -d
207 @<filepath to request>
208
209 In our case,
210
211 curl -X POST http://<IPAddress>/onboarding/dataformats     -H "Content-Type: application/json" -d @<filepath to request>
212
213 curl -X POST http://<IPAddress>/onboarding/components    -H "Content-Type: application/json" -d @<filepath to request>
214
215
216
217
218 **e. Verify the resources were created using**
219
220 curl -X GET http://<IPAddress>/onboarding/dataformats
221
222 curl -X GET http://<IPAddress>/onboarding/components
223
224 **f. Verify the genprocessor (which polls onboarding periodically to convert component specs to nifi processor), converted the component**
225
226 Open http://<IPAddress>/nifi-jars in a browser.
227
228 These jars should now be available for you to use in the nifi UI as
229 processors
230
231 |image1|
232
233 3.    Design & Distribution Flow
234 ================================
235
236
237 **a**. To start creating flows, we need to create a process group first. The
238 name of the process group will be the name of the flow. Drag and Drop on
239 the canvas, the ‘Processor Group’ icon from the DCAE Designer bar on the
240 top.
241
242 |image2|
243
244
245 Now enter the process group by double clicking it,
246
247 You can now drag and drop on the canvas ‘Processor’ icon from the top
248 DCAE Designer tab. You can search for a particular component in the
249 search box that appears when you attempt to drag the ‘Processor’ icon to
250 the canvas.
251
252 |image5|
253
254 If the Nifi registry linking worked, you should see the “Import” button
255 when you try to add a Processor or Process group to the Nifi canvas,
256 like so-
257
258 |image6|
259
260 By clicking on the import button, we can import already created saved
261 and version controlled flows from the Nifi registry, if they are
262 present.
263
264 |image7|
265
266 We can save created flows by version controlling them like so starting
267 with a 'right click' anywhere on the canvas-
268
269 |image8|
270
271 Ideally you would name the flow and process group the same, because
272 functionally they are similar.
273
274 |image9|
275
276 When the flow is checked in, the bar at the bottom shows a green
277 checkmark
278
279 |image10|
280
281 Note: Even if you move a component around on the canvas, and its
282 position on the canvas changes, it is recognized as a change, and it
283 will have to recommitted.
284
285 You can add additional components in your flow and connect them.
286
287 DcaeVesCollector connects to DockerTcagen2.
288
289 |image11|
290
291 |image12|
292
293 |image13|
294
295 Along the way you need to also provide topic names in the settings
296 section. These can be arbitrary names.
297
298 |image14|
299
300 To recap, see how DcaeVesCollector connects to DockerTcagen2. Look at
301 the connection relationships. Currently there is no way to validate
302 these relationships. Notice how it is required to name the topics by
303 going to Settings.
304
305 The complete flow after joining our components looks like so
306
307 |image15|
308
309
310 **b. Submit/ Distribute the flow:**
311
312 Once your flow is complete and saved in the Nifi registry, you can
313 choose to submit it for distribution.
314
315 |image18|
316
317 If the flow was submitted successfully to the runtime api, you should
318 get a pop up a success message like so -
319
320 |image19|
321
322 At this step, the design was packaged and sent to Runtime api.
323
324 The runtime is supposed to generate the blueprint out of the packaged
325 design/flow and push it to the DCAE inventory and the DCAE Dasboard.
326
327 **c. Checking the components in the DCAE Dashboard**
328
329 You should see the generated artifact/ blueprint in the DCAE Dashboard
330 dashboard at https://<IPAddress>:30418/ccsdk-app/login_external.htm in
331 our deployment. The name for each component will be appended by the flow
332 name followed by underscore followed by the component’s name.
333
334 The credentials to access the DCAE Dashboard 
335
336 Login: su1234
337 Password: fusion
338
339
340 |image20|
341
342 |image21|
343
344 |image22|
345
346 The generated Blueprint can be viewed.
347
348 |image23|
349
350 Finally, the generated Blueprint can be deployed.
351
352 |image24|
353
354 You can use/import the attached input configurations files to deploy. Drag and Drop these sample JSON files to fill in the configuration values.
355 See :download:`VES Collector Input Configuration <./Sample-Input-Files/ves-deploy.input.json>`
356 See :download:`Tcagen2 Input Configuration <./Sample-Input-Files/tca-deploy.input.json>`
357
358 |image25|
359
360 |image26|
361
362 .. |image0| image:: ../images/1.png
363    :width: 6.5in
364    :height: 1.08333in
365 .. |image1| image:: ../images/2.png
366    :width: 6.5in
367    :height: 1.58333in
368 .. |image2| image:: ../images/3.png
369    :width: 5.83333in
370    :height: 3.58333in
371 .. |image3| image:: ../images/4.png
372    :width: 4.91667in
373    :height: 2.16667in
374 .. |image4| image:: ../images/5.png
375    :width: 6.5in
376    :height: 2.66667in
377 .. |image5| image:: ../images/6.png
378    :width: 6.5in
379    :height: 3.33333in
380 .. |image6| image:: ../images/7.png
381    :width: 4.91667in
382    :height: 2.25in
383 .. |image7| image:: ../images/8.png
384    :width: 4.91667in
385    :height: 2.58333in
386 .. |image8| image:: ../images/9.png
387    :width: 6.5in
388    :height: 4.58333in
389 .. |image9| image:: ../images/10.png
390    :width: 6.5in
391    :height: 4in
392 .. |image10| image:: ../images/11.png
393    :width: 4.91667in
394    :height: 0.41667in
395 .. |image11| image:: ../images/12.png
396    :width: 6.33333in
397    :height: 3.16667in
398 .. |image12| image:: ../images/13.png
399    :width: 6in
400    :height: 2.66667in
401 .. |image13| image:: ../images/14.png
402    :width: 6.5in
403    :height: 3.41667in
404 .. |image14| image:: ../images/15.png
405    :width: 6.5in
406    :height: 3.58333in
407 .. |image15| image:: ../images/16.png
408    :width: 6.5in
409    :height: 2.25in
410 .. |image16| image:: ../images/17.png
411    :width: 6.5in
412    :height: 2.83333in
413 .. |image17| image:: ../images/18.png
414    :width: 6.5in
415    :height: 3.08333in
416 .. |image18| image:: ../images/19.png
417    :width: 4.91667in
418    :height: 1.91667in
419 .. |image19| image:: ../images/20.png
420    :width: 4.91667in
421    :height: 2.41667in
422 .. |image20| image:: ../images/21.png
423    :width: 6.5in
424    :height: 2.41667in
425 .. |image21| image:: ../images/22.png
426    :width: 6.5in
427    :height: 3in
428 .. |image22| image:: ../images/23.png
429    :width: 6.5in
430    :height: 2.16667in
431 .. |image23| image:: ../images/24.png
432    :width: 6.5in
433    :height: 2.83333in
434 .. |image24| image:: ../images/25.png
435    :width: 6.5in
436    :height: 3in
437 .. |image25| image:: ../images/26.png
438 .. |image26| image:: ../images/27.png
439
440