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