7 - `Types of Users and Usage
8 Instructions: <#DCAEMODUserGuide(draft)-TypesofUsersand>`__
10 - `1. Deployment of DCAE MOD components via Helm
11 charts <#DCAEMODUserGuide(draft)-1.DeploymentofD>`__
13 - `Using DCAE MOD without an Ingress
14 Controller <#DCAEMODUserGuide(draft)-UsingDCAEMODwit>`__
16 - `2. Configuring DCAE
17 mod <#DCAEMODUserGuide(draft)-2.ConfiguringDC>`__
19 - `3. Design & Distribution
20 Flow <#DCAEMODUserGuide(draft)-3.Design&Distri>`__
23 Types of Users and Usage Instructions:
24 ======================================
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 |
32 | | | - Follow steps 2.c |
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 |
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 +-------+-----------------------------+-----------------------------+
57 1. Deployment of DCAE MOD components via Helm charts
58 =======================================================
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
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::
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.
88 +--------------+--------------------------------------------------+--------------------------+
89 | **Endpoint** | ** Routes to (cluster | **Description** |
90 | | internal address)** | |
91 +==============+==================================================+==========================+
92 | /nifi | http://dcaemod-designtool:8080/nifi | Design tool Web UI |
94 +--------------+--------------------------------------------------+--------------------------+
95 | /nifi-api | http://dcaemod-designtool:8080/nifi-api | Design tool API |
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 |
104 +--------------+--------------------------------------------------+--------------------------+
105 | /distributor | http://dcaemod-distributor-api:8080/distributor | Distributor API |
107 +--------------+--------------------------------------------------+--------------------------+
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.)
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.
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 +------------------------+--------------------------------------------+
129 Using DCAE MOD without an Ingress Controller
132 Not currently supported
134 2. Configuring DCAE mod
135 ==========================
137 **a. Configure Nifi Registry url**
139 Next check Nifi settings by selecting the Hamburger button in the Nifi
140 UI. It should lead you to the Nifi Settings screen
146 Add a registry client. The Registry client url will be
147 http://dcaemod-nifi-registry:18080
152 **b. Add distribution target which will be the runtime api url**
154 Set the distribution target in the controller settings
158 Distribution target URL will be
159 `http://dcaemod-runtime-api:9090 <http://dcaemod-runtime-api:9090/>`__
163 Now let’s access the Nifi (DCAE designer) UI - http://<IPAddress>/nifi
165 IPAddress is the host address or the DNS FQDN, if there is one, for one of the Kubernetes nodes.
170 **c. Get the artifacts to test and onboard.**
172 Let's fetch the artifacts/ spec files
174 **Sample Component DCAE-VES-Collector :** https://git.onap.org/dcaegen2/collectors/ves/tree/dpo/spec/vescollector-componentspec.json
176 **Sample Data Format :** https://git.onap.org/dcaegen2/collectors/ves/tree/dpo/data-formats/VES-5.28.4-dataformat.json
178 For the purpose of onboarding, a Sample Request body should be of the type -::
180 { "owner": "<some value>", "spec": <some json object> }
182 where the json object inside the spec field can be a component spec json.
184 Request bodies of this type will be used in the onboarding requests you make using curl or the onboarding swagger interface.
186 **The prepared Sample Request body for a component dcae-ves-collector looks like
189 See :download:`VES Collector Spec <./Sample-Input-Files/Request-body-of-Sample-Component.json>`
191 **The prepared Sample request body for a sample data format looks like so -**
193 See :download:`VES data Format <./Sample-Input-Files/Request-body-of-Sample-Data-Format.json>`
197 **d. To onboard a data format and a component**
199 Each component has a description that tells what it does.
201 These requests would be of the type
203 curl -X POST http://<onboardingapi host>/onboarding/dataformats -H "Content-Type: application/json" -d
204 @<filepath to request>
206 curl -X POST http://<onboardingapi host>/onboarding/components -H "Content-Type: application/json" -d
207 @<filepath to request>
211 curl -X POST http://<IPAddress>/onboarding/dataformats -H "Content-Type: application/json" -d @<filepath to request>
213 curl -X POST http://<IPAddress>/onboarding/components -H "Content-Type: application/json" -d @<filepath to request>
218 **e. Verify the resources were created using**
220 curl -X GET http://<IPAddress>/onboarding/dataformats
222 curl -X GET http://<IPAddress>/onboarding/components
224 **f. Verify the genprocessor (which polls onboarding periodically to convert component specs to nifi processor), converted the component**
226 Open http://<IPAddress>/nifi-jars in a browser.
228 These jars should now be available for you to use in the nifi UI as
233 3. Design & Distribution Flow
234 ================================
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
245 Now enter the process group by double clicking it,
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
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,
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
266 We can save created flows by version controlling them like so starting
267 with a 'right click' anywhere on the canvas-
271 Ideally you would name the flow and process group the same, because
272 functionally they are similar.
276 When the flow is checked in, the bar at the bottom shows a green
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.
285 You can add additional components in your flow and connect them.
287 DcaeVesCollector connects to DockerTcagen2.
295 Along the way you need to also provide topic names in the settings
296 section. These can be arbitrary names.
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
305 The complete flow after joining our components looks like so
310 **b. Submit/ Distribute the flow:**
312 Once your flow is complete and saved in the Nifi registry, you can
313 choose to submit it for distribution.
317 If the flow was submitted successfully to the runtime api, you should
318 get a pop up a success message like so -
322 At this step, the design was packaged and sent to Runtime api.
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.
327 **c. Checking the components in the DCAE Dashboard**
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.
334 The credentials to access the DCAE Dashboard
346 The generated Blueprint can be viewed.
350 Finally, the generated Blueprint can be deployed.
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>`
362 .. |image0| image:: ../images/1.png
365 .. |image1| image:: ../images/2.png
368 .. |image2| image:: ../images/3.png
371 .. |image3| image:: ../images/4.png
374 .. |image4| image:: ../images/5.png
377 .. |image5| image:: ../images/6.png
380 .. |image6| image:: ../images/7.png
383 .. |image7| image:: ../images/8.png
386 .. |image8| image:: ../images/9.png
389 .. |image9| image:: ../images/10.png
392 .. |image10| image:: ../images/11.png
395 .. |image11| image:: ../images/12.png
398 .. |image12| image:: ../images/13.png
401 .. |image13| image:: ../images/14.png
404 .. |image14| image:: ../images/15.png
407 .. |image15| image:: ../images/16.png
410 .. |image16| image:: ../images/17.png
413 .. |image17| image:: ../images/18.png
416 .. |image18| image:: ../images/19.png
419 .. |image19| image:: ../images/20.png
422 .. |image20| image:: ../images/21.png
425 .. |image21| image:: ../images/22.png
428 .. |image22| image:: ../images/23.png
431 .. |image23| image:: ../images/24.png
434 .. |image24| image:: ../images/25.png
437 .. |image25| image:: ../images/26.png
438 .. |image26| image:: ../images/27.png