blob: 1ea72b33bbeaeb0e736ec33f1f8764e290776271 [file] [log] [blame]
===================
DCAE MOD User Guide
===================
- `Types of Users and Usage
Instructions: <#DCAEMODUserGuide(draft)-TypesofUsersand>`__
- `1.    Deployment of DCAE MOD components via Helm
charts <#DCAEMODUserGuide(draft)-1.DeploymentofD>`__
- `Using DCAE MOD without an Ingress
Controller <#DCAEMODUserGuide(draft)-UsingDCAEMODwit>`__
- `2.    Configuring DCAE
mod <#DCAEMODUserGuide(draft)-2.ConfiguringDC>`__
- `3.    Design & Distribution
Flow <#DCAEMODUserGuide(draft)-3.Design&Distri>`__
Types of Users and Usage Instructions:
======================================
+-------+-----------------------------+-----------------------------+
| Sr.No | User | Usage Instructions |
+=======+=============================+=============================+
| 1. | Developers who are looking | -        Access the Nifi  |
| | to onboard their mS | Web UI url provided to you |
| | | |
| | | -        Follow steps  2.c |
| | | to 2.f |
| | | |
| | | -        You should be able |
| | | to see your microservices |
| | | in the Nifi Web UI by |
| | | clicking and dragging |
| | | ‘Processor’ on the canvas, |
| | | and searching for the name |
| | | of the |
| | | micros |
| | | ervice/component/processor. |
+-------+-----------------------------+-----------------------------+
| 2. | Designers who are building | -        Access the Nifi  |
| | the flows through UI and | Web UI url provided to you |
| | triggering distribution | |
| | | -        Follow steps 3 to |
| | | the end of the document |
+-------+-----------------------------+-----------------------------+
| 3. | Infrastructure/ Admins who | -        Follow start to |
| | want to stand up DCAE Mod | the end |
| | and validate it | |
+-------+-----------------------------+-----------------------------+
1.    Deployment of DCAE MOD components via Helm charts
=======================================================
The DCAE MOD components are deployed using the standard ONAP OOM
deployment process.   When deploying ONAP using the helm deploy command,
DCAE MOD components are deployed when the dcaemod.enabled flag is set to
true, either via a --set option on the command line or by an entry in an
overrides file.  In this respect, DCAE MOD is no different from any
other ONAP subsystem.
The default DCAE MOD deployment relies on an nginx ingress controller
being available in the Kubernetes cluster where DCAE MOD is being
deployed.   The Rancher RKE installation process sets up a suitable
ingress controller.   In order to enable the use of the ingress
controller, it is necessary to override the OOM default global settings
for ingress configuration.   Specifically, the installation needs to set
the following configuration in an override file::
global:
ingress:
enabled: true
virtualhost:
enabled: false
When DCAE MOD is deployed with an ingress controller, several endpoints
are exposed outside the cluster at the ingress controller's external IP
address and port.   (In the case of a Rancher RKE installation, there is
an ingress controller on every worker node, listening at the the
standard HTTP port (80).)  These exposed endpoints are needed by users
using machines outside the Kubernetes cluster.
+--------------+--------------------------------------------------+--------------------------+
| **Endpoint** | ** Routes to (cluster | **Description** |
| | internal address)** | |
+==============+==================================================+==========================+
| /nifi | http://dcaemod-designtool:8080/nifi | Design tool Web UI |
| | | |
+--------------+--------------------------------------------------+--------------------------+
| /nifi-api | http://dcaemod-designtool:8080/nifi-api | Design tool API |
| | | |
+--------------+--------------------------------------------------+--------------------------+
| /nifi-jars | http://dcaemod-nifi-registry:18080/nifi-jars | Flow registry listing of |
| | | JAR files built from |
| | | component specs |
+--------------+--------------------------------------------------+--------------------------+
| /onboarding | http://dcaemod-onboarding-api:8080/onboarding | Onboarding API |
| | | |
+--------------+--------------------------------------------------+--------------------------+
| /distributor | http://dcaemod-distributor-api:8080/distributor | Distributor API |
| | | |
+--------------+--------------------------------------------------+--------------------------+
| To access the design Web UI, for example, a user would use the URL :
http://*ingress_controller_address:ingress_controller_port*/nifi.
| *ingress_controller_address* is the the IP address or DNS FQDN of the
ingress controller and
| *ingress_controller_port* is the port on which the ingress controller
is listening for HTTP requests.  (If the port is 80, the HTTP default,
then there is no need to specify a port.)
There are two additional *internal* endpoints that users need to know,
in order to configure a registry client and a distribution target in the
design tool's controller settings.
+------------------------+--------------------------------------------+
| **Configuration Item** | **Endpoint URL** |
+========================+============================================+
| Registry client | http://dcaemod-nifi-registry:18080 |
+------------------------+--------------------------------------------+
| Distribution target | http://dcaemod-runtime-api:9090 |
+------------------------+--------------------------------------------+
Using DCAE MOD without an Ingress Controller
Not currently supported
2.    Configuring DCAE mod
==========================
**a. Configure Nifi Registry url**
Next check Nifi settings by selecting the Hamburger button in the Nifi
UI. It should lead you to the Nifi Settings screen
|image16|
|image3|
Add a registry client. The Registry client url will be
http://dcaemod-nifi-registry:18080
|image4|
**b. Add distribution target which will be the runtime api url**
Set the distribution target in the controller settings
|image17|
Distribution target URL will be
`http://dcaemod-runtime-api:9090 <http://dcaemod-runtime-api:9090/>`__
Now let’s access the Nifi (DCAE designer) UI - http://<IPAddress>/nifi
IPAddress is the host address or the DNS FQDN, if there is one, for one of the Kubernetes nodes.
|image0|
**c. Get the artifacts to test and onboard.**
Let's fetch the artifacts/ spec files
**Sample Component DCAE-VES-Collector :** https://git.onap.org/dcaegen2/collectors/ves/tree/dpo/spec/vescollector-componentspec.json
**Sample Data Format :** https://git.onap.org/dcaegen2/collectors/ves/tree/dpo/data-formats/VES-5.28.4-dataformat.json
For the purpose of onboarding, a Sample Request body should be of the type -::
{ "owner": "<some value>", "spec": <some json object> }
where the json object inside the spec field can be a component spec json.
Request bodies of this type will be used in the onboarding requests you make using curl or the onboarding swagger interface.
**The prepared Sample Request body for a component dcae-ves-collector looks like
so –**
See :download:`VES Collector Spec <./Sample-Input-Files/Request-body-of-Sample-Component.json>`
**The prepared Sample request body for a sample data format  looks like so -**
See :download:`VES data Format <./Sample-Input-Files/Request-body-of-Sample-Data-Format.json>`
**d. To onboard a data format and a component**
Each component has a description that tells what it does.
These requests would be of the type
curl -X POST http://<onboardingapi host>/onboarding/dataformats     -H "Content-Type: application/json" -d
@<filepath to request>
curl -X POST http://<onboardingapi host>/onboarding/components     -H "Content-Type: application/json" -d
@<filepath to request>
In our case,
curl -X POST http://<IPAddress>/onboarding/dataformats     -H "Content-Type: application/json" -d @<filepath to request>
curl -X POST http://<IPAddress>/onboarding/components    -H "Content-Type: application/json" -d @<filepath to request>
**e. Verify the resources were created using**
curl -X GET http://<IPAddress>/onboarding/dataformats
curl -X GET http://<IPAddress>/onboarding/components
**f. Verify the genprocessor (which polls onboarding periodically to convert component specs to nifi processor), converted the component**
Open http://<IPAddress>/nifi-jars in a browser.
These jars should now be available for you to use in the nifi UI as
processors
|image1|
3.    Design & Distribution Flow
================================
**a**. To start creating flows, we need to create a process group first. The
name of the process group will be the name of the flow. Drag and Drop on
the canvas, the ‘Processor Group’ icon from the DCAE Designer bar on the
top.
|image2|
Now enter the process group by double clicking it,
You can now drag and drop on the canvas ‘Processor’ icon from the top
DCAE Designer tab. You can search for a particular component in the
search box that appears when you attempt to drag the ‘Processor’ icon to
the canvas.
|image5|
If the Nifi registry linking worked, you should see the “Import” button
when you try to add a Processor or Process group to the Nifi canvas,
like so-
|image6|
By clicking on the import button, we can import already created saved
and version controlled flows from the Nifi registry, if they are
present.
|image7|
We can save created flows by version controlling them like so starting
with a 'right click' anywhere on the canvas-
|image8|
Ideally you would name the flow and process group the same, because
functionally they are similar.
|image9|
When the flow is checked in, the bar at the bottom shows a green
checkmark
|image10|
Note: Even if you move a component around on the canvas, and its
position on the canvas changes, it is recognized as a change, and it
will have to recommitted.
You can add additional components in your flow and connect them.
DcaeVesCollector connects to DockerTcagen2.
|image11|
|image12|
|image13|
Along the way you need to also provide topic names in the settings
section. These can be arbitrary names.
|image14|
To recap, see how DcaeVesCollector connects to DockerTcagen2. Look at
the connection relationships. Currently there is no way to validate
these relationships. Notice how it is required to name the topics by
going to Settings.
The complete flow after joining our components looks like so
|image15|
**b. Submit/ Distribute the flow:**
Once your flow is complete and saved in the Nifi registry, you can
choose to submit it for distribution.
|image18|
If the flow was submitted successfully to the runtime api, you should
get a pop up a success message like so -
|image19|
At this step, the design was packaged and sent to Runtime api.
The runtime is supposed to generate the blueprint out of the packaged
design/flow and push it to the DCAE inventory and the DCAE Dasboard.
**c. Checking the components in the DCAE Dashboard**
You should see the generated artifact/ blueprint in the DCAE Dashboard
dashboard at https://<IPAddress>:30418/ccsdk-app/login_external.htm in
our deployment. The name for each component will be appended by the flow
name followed by underscore followed by the component’s name.
The credentials to access the DCAE Dashboard
Login: su1234
Password: fusion
|image20|
|image21|
|image22|
The generated Blueprint can be viewed.
|image23|
Finally, the generated Blueprint can be deployed.
|image24|
You can use/import the attached input configurations files to deploy. Drag and Drop these sample JSON files to fill in the configuration values.
See :download:`VES Collector Input Configuration <./Sample-Input-Files/ves-deploy.input.json>`
See :download:`Tcagen2 Input Configuration <./Sample-Input-Files/tca-deploy.input.json>`
|image25|
|image26|
.. |image0| image:: ../images/1.png
:width: 6.5in
:height: 1.08333in
.. |image1| image:: ../images/2.png
:width: 6.5in
:height: 1.58333in
.. |image2| image:: ../images/3.png
:width: 5.83333in
:height: 3.58333in
.. |image3| image:: ../images/4.png
:width: 4.91667in
:height: 2.16667in
.. |image4| image:: ../images/5.png
:width: 6.5in
:height: 2.66667in
.. |image5| image:: ../images/6.png
:width: 6.5in
:height: 3.33333in
.. |image6| image:: ../images/7.png
:width: 4.91667in
:height: 2.25in
.. |image7| image:: ../images/8.png
:width: 4.91667in
:height: 2.58333in
.. |image8| image:: ../images/9.png
:width: 6.5in
:height: 4.58333in
.. |image9| image:: ../images/10.png
:width: 6.5in
:height: 4in
.. |image10| image:: ../images/11.png
:width: 4.91667in
:height: 0.41667in
.. |image11| image:: ../images/12.png
:width: 6.33333in
:height: 3.16667in
.. |image12| image:: ../images/13.png
:width: 6in
:height: 2.66667in
.. |image13| image:: ../images/14.png
:width: 6.5in
:height: 3.41667in
.. |image14| image:: ../images/15.png
:width: 6.5in
:height: 3.58333in
.. |image15| image:: ../images/16.png
:width: 6.5in
:height: 2.25in
.. |image16| image:: ../images/17.png
:width: 6.5in
:height: 2.83333in
.. |image17| image:: ../images/18.png
:width: 6.5in
:height: 3.08333in
.. |image18| image:: ../images/19.png
:width: 4.91667in
:height: 1.91667in
.. |image19| image:: ../images/20.png
:width: 4.91667in
:height: 2.41667in
.. |image20| image:: ../images/21.png
:width: 6.5in
:height: 2.41667in
.. |image21| image:: ../images/22.png
:width: 6.5in
:height: 3in
.. |image22| image:: ../images/23.png
:width: 6.5in
:height: 2.16667in
.. |image23| image:: ../images/24.png
:width: 6.5in
:height: 2.83333in
.. |image24| image:: ../images/25.png
:width: 6.5in
:height: 3in
.. |image25| image:: ../images/26.png
.. |image26| image:: ../images/27.png