PANCHAL | 0424f6f | 2020-03-27 19:28:03 -0400 | [diff] [blame] | 1 | =================== |
| 2 | DCAE MOD User Guide |
| 3 | =================== |
| 4 | |
| 5 | |
VENKATESH KUMAR | 6455974 | 2020-04-29 18:53:53 -0400 | [diff] [blame] | 6 | |
PANCHAL | 0424f6f | 2020-03-27 19:28:03 -0400 | [diff] [blame] | 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 | |
VENKATESH KUMAR | 6455974 | 2020-04-29 18:53:53 -0400 | [diff] [blame] | 22 | |
PANCHAL | 0424f6f | 2020-03-27 19:28:03 -0400 | [diff] [blame] | 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 | |
VENKATESH KUMAR | e21c848 | 2020-11-12 15:00:02 -0500 | [diff] [blame] | 334 | The credentials to access the DCAE Dashboard |
PANCHAL | 0424f6f | 2020-03-27 19:28:03 -0400 | [diff] [blame] | 335 | |
| 336 | Login: su1234 |
PANCHAL | 0424f6f | 2020-03-27 19:28:03 -0400 | [diff] [blame] | 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 | |