summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/sections/apis/DFC.rst24
-rw-r--r--docs/sections/apis/PNDA.rst10
-rw-r--r--docs/sections/apis/PRH.rst4
-rw-r--r--docs/sections/apis/ves-hv/index.rst48
-rw-r--r--docs/sections/apis/ves-hv/supported-domains.rst82
-rw-r--r--docs/sections/apis/ves.rst2
-rw-r--r--docs/sections/architecture.rst7
-rw-r--r--docs/sections/humaninterfaces.rst4
-rw-r--r--docs/sections/installation.rst1
-rw-r--r--docs/sections/installation_oom.rst11
-rw-r--r--docs/sections/installation_pnda.rst185
-rw-r--r--docs/sections/offeredapis.rst3
-rw-r--r--docs/sections/release-notes.rst2
-rw-r--r--docs/sections/services/dfc/administration.rst15
-rw-r--r--docs/sections/services/dfc/architecture.rst31
-rw-r--r--docs/sections/services/dfc/configuration.rst98
-rw-r--r--docs/sections/services/dfc/delivery.rst12
-rw-r--r--docs/sections/services/dfc/index.rst19
-rw-r--r--docs/sections/services/dfc/installation.rst25
-rw-r--r--docs/sections/services/dfc/logging.rst13
-rw-r--r--docs/sections/services/dfc/release-notes.rst41
-rw-r--r--docs/sections/services/prh/architecture.rst4
-rw-r--r--docs/sections/services/prh/authorization.rst60
-rw-r--r--docs/sections/services/prh/configuration.rst87
-rw-r--r--docs/sections/services/prh/index.rst17
-rw-r--r--docs/sections/services/prh/installation.rst88
-rw-r--r--docs/sections/services/serviceindex.rst1
-rw-r--r--docs/sections/services/ves-http/index.rst5
28 files changed, 743 insertions, 156 deletions
diff --git a/docs/sections/apis/DFC.rst b/docs/sections/apis/DFC.rst
index 68326b5d..c8540187 100644
--- a/docs/sections/apis/DFC.rst
+++ b/docs/sections/apis/DFC.rst
@@ -11,19 +11,9 @@ DFC (DataFile Collector)
Overview
========
-DFC will orchestrate the collection of bulk PM data flow:
- 1. Subscribes to fileReady DMaaP topic
- 2. Collects the file from the xNF
- 3. Sends new event to DataRouter with file.
+Component description can be found under `DFC`_.
-Introduction
-============
-
-DFC is delivered as one **Docker container** which hosts application server and can be started by `docker-compose`.
-
-Functionality
-=============
-.. image:: ../images/DFC.png
+.. _DFC: ../../sections/services/dfc/index.html
Paths
@@ -79,16 +69,6 @@ Whole project (top level of DFC directory) and each module (sub module directory
Configuration file: Config/datafile_endpoints.json
-Main API Endpoints
-==================
-
-Running with dev-mode of DFC
- - Heartbeat: **http://<container_address>:8100/heartbeat** or **https://<container_address>:8433/heartbeat**
- - Start DFC: **http://<container_address>:8100/start** or **https://<container_address>:8433/start**
- - Stop DFC: **http://<container_address>:8100/stopDatafile** or **https://<container_address>:8433/stopDatafile**
-
-The external port allocated for 8100 (http) is 30245.
-
Maven GroupId:
==============
diff --git a/docs/sections/apis/PNDA.rst b/docs/sections/apis/PNDA.rst
new file mode 100644
index 00000000..f93ee2f1
--- /dev/null
+++ b/docs/sections/apis/PNDA.rst
@@ -0,0 +1,10 @@
+PNDA – Platform for Network Data Analytics
+==========================================
+
+
+PNDA has several APIs that are documented as part of the PNDA project.
+
+* https://github.com/pndaproject/platform-package-repository#repository-api
+* https://github.com/pndaproject/platform-deployment-manager#api-documentation
+* https://github.com/pndaproject/platform-data-mgmnt/blob/develop/data-service/README.md#dataset-apis
+
diff --git a/docs/sections/apis/PRH.rst b/docs/sections/apis/PRH.rst
index f693ef76..2a7d0eae 100644
--- a/docs/sections/apis/PRH.rst
+++ b/docs/sections/apis/PRH.rst
@@ -1,3 +1,5 @@
+.. _prh_api:
+
==============================
PRH (PNF Registration Handler)
==============================
@@ -28,7 +30,7 @@ Paths
=====
GET /events/unauthenticated.VES_PNFREG_OUTPUT
------------------------------------------------
+---------------------------------------------
Description
~~~~~~~~~~~
diff --git a/docs/sections/apis/ves-hv/index.rst b/docs/sections/apis/ves-hv/index.rst
index b707d9fd..b477ba14 100644
--- a/docs/sections/apis/ves-hv/index.rst
+++ b/docs/sections/apis/ves-hv/index.rst
@@ -9,6 +9,7 @@ HV-VES (High Volume VES)
.. contents::
:depth: 4
+
..
Overview
@@ -43,40 +44,6 @@ HV-VES makes routing decisions based mostly on the content of the **Domain** par
The PROTO file, which contains the VES CommonEventHeader, comes with a binary-type Payload (eventFields) parameter, where domain-specific
data should be placed. Domain-specific data are encoded as well with GPB. A domain-specific PROTO file is required to decode the data.
-Domain **perf3gpp**
-===================
-
-The purpose of the **perf3gpp** domain is to deliver performance measurements from a network function (NF) to ONAP in 3GPP format.
-The first application of this domain is frequent periodic delivery of structured RAN PM data commonly referred to as Real Time PM (RTPM).
-The equipment sends an event right after collecting the PM data for a granularity period.
-
-The characteristics of each event in the **perf3gpp** domain:
-
-- Single measured entity, for example, BTS
-- Single granularity period (collection *begin time* and *duration*)
-- Optional top-level grouping in one or more PM groups
-- Grouping in one or more measured objects, for example, cells
-- One or more reported PM values for each measured object
-
-Due to the single granularity period per event, single equipment supporting multiple concurrent granularity periods might send more than one event at a given reporting time.
-
-The **perf3gpp** domain is based on 3GPP specifications:
-
-- `3GPP TS 28.550 <http://www.3gpp.org/ftp//Specs/archive/28_series/28.550/>`_
-- `3GPP TS 32.431 <http://www.3gpp.org/ftp//Specs/archive/32_series/32.431/>`_
-- `3GPP TS 32.436 <http://www.3gpp.org/ftp//Specs/archive/32_series/32.436/>`_
-
-The event structure is changed in comparison to the one presented in 3GPP technical specifications. The 3GPP structure is enhanced to provide support for efficient transport.
-
-Definitions for the **perf3gpp** domain are stored in Perf3gppFields.proto and MeasDataCollection.proto, listed below:
-
-.. literalinclude:: Perf3gppFields.proto
- :language: protobuf
-
-.. literalinclude:: MeasDataCollection.proto
- :language: protobuf
-
-
API towards DMaaP
=================
@@ -87,6 +54,18 @@ HV-VES Collector forwards incoming messages to a particular DMaaP Kafka topic ba
In both cases raw bytes might be extracted using ``org.apache.kafka.common.serialization.ByteArrayDeserializer``. The resulting bytes might be further passed to ``parseFrom`` methods included in classes generated from GPB definitions. WTP is not used here - it is only used in communication between PNF/VNF and the collector.
+By default, **HV-VES** will use routing defined in **k8s-hv-ves.yaml-template** in **dcaegen2/platform/blueprints project**. Currently defined domain->topic mapping looks as follows:
+
+- perf3gpp -> HV_VES_PERF3GPP
+
+Supported domains
+=================
+
+Domains supported by **HV-VES**:
+
+- perf3gpp
+
+For domains descriptions, see :ref:`supported_domains`
.. _hv_ves_behaviors:
@@ -113,3 +92,4 @@ Messages handling:
.. note:: xNF (VNF/PNF) can split messages bigger than 1 MiB and set `sequence` field in CommonEventHeader accordingly. It is advised to use smaller than 1 MiB messages for GPBs encoding/decoding efficiency.
- Skipped messages (for any of the above reasons) might not leave any trace in HV-VES logs.
+
diff --git a/docs/sections/apis/ves-hv/supported-domains.rst b/docs/sections/apis/ves-hv/supported-domains.rst
new file mode 100644
index 00000000..980b9f22
--- /dev/null
+++ b/docs/sections/apis/ves-hv/supported-domains.rst
@@ -0,0 +1,82 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+.. _supported_domains:
+
+Domains supported by HV-VES
+===========================
+
+.. _perf3gpp:
+
+perf3gpp domain - delivery of equipment Performance Monitoring (PM) data, based on 3GPP specifications
+------------------------------------------------------------------------------------------------------
+The purpose of the **perf3gpp** domain is frequent periodic delivery of structured RAN PM data commonly referred to as Real Time PM (RTPM). The equipment sends an event right after collecting the PM data for a granularity period.
+
+The characteristics of each event in the **perf3gpp** domain:
+
+- Single measured entity, for example, BTS
+- Single granularity period (collection *begin time* and *duration*)
+- Optional top-level grouping in one or more PM groups
+- Grouping in one or more measured objects, for example, cells
+- One or more reported PM values for each measured object
+
+Due to the single granularity period per event, single equipment supporting multiple concurrent granularity periods might send more than one event at a given reporting time.
+
+The **perf3gpp** domain is based on 3GPP specifications:
+
+
+- `3GPP TS 28.550 <http://www.3gpp.org/ftp//Specs/archive/28_series/28.550/>`_
+
+- `3GPP TS 32.431 <http://www.3gpp.org/ftp//Specs/archive/32_series/32.431/>`_
+
+- `3GPP TS 32.436 <http://www.3gpp.org/ftp//Specs/archive/32_series/32.436/>`_
+
+The event structure is changed in comparison to the one presented in 3GPP technical specifications. The 3GPP structure is enhanced to provide support for efficient transport.
+
+Selecting Complimentary fields for population of **perf3gpp** event
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Context: at the upper level, *VesEvent.eventFields* is an opaque bytes field, and in the case of the **perf3gpp** domain (that is VesEvent.commonEventHeader.domain=="Perf3gpp"), *eventFields* maps to a structure defined by *Perf3gppFields*.
+
+*Perf3gppFields* contains two main sub-structures:
+
+ - *eventAddlFlds*: the usual optional VES per-event data (*HashMap*, name/value pairs)
+ - *measDataCollection*: the actual payload, based on 3GPP specifications, but modified in order to optionaly reduce the size of the event
+
+Usage of *measDataCollection*:
+
+ The *measDataCollection* structure offers flexibility in the way an equipment provides the Performance Monitoring (PM) data.
+ The following table gives an outline of the two main options:
+
+- Following 3GPP standard as closely as possible
+- Reducing the message size
+
+Each row of the table corresponds to one field where a choice is to be made. For each main option it describes whether an optional field is relevant or not, or which subfield to provide for a "oneof" GPB field.
+
+ +----------------------------+----------+-----------------------------+-----------------------------+----------+
+ | | | Focus 1: 3GPP compatibility | Focus 2: Minimum event size | |
+ | *MeasDataCollection* field | Type | (send textual IDs) | (send numerical IDs) | Notes |
+ +============================+==========+=============================+=============================+==========+
+ | MeasData.measObjInstIdList | optional | <not provided> | <mandatory> | [1]_ |
+ +----------------------------+----------+-----------------------------+-----------------------------+----------+
+ | MeasValue.MeasObjInstId | oneof | sMeasObjInstId | measObjInstIdListIdx | [1]_ |
+ +----------------------------+----------+-----------------------------+-----------------------------+----------+
+ | MeasInfo.MeasInfoId | oneof | sMeasInfoId | iMeasInfoId | [2]_ |
+ +----------------------------+----------+-----------------------------+-----------------------------+----------+
+ | MeasInfo.MeasTypes | oneof | sMeasTypes | iMeasTypes | [2]_ |
+ +----------------------------+----------+-----------------------------+-----------------------------+----------+
+ | Notes: |
+ | .. [1] *MeasData.measObjInstIdList* and *MeasValue.MeasObjInstId.measObjInstIdListIdx* are interdependent |
+ | .. [2] Numerical IDs normally require the mapping to textual IDs to be provided offline in a PM dictionary |
+ | |
+ +----------------------------+----------+-----------------------------+-----------------------------+----------+
+
+.. note:: The division between focus 1 and focus 2 above is illustrative, and a mix of choices from both options is possible.
+
+.. note:: *MeasResult.p* can be used to reduce the event size when more than half of the values in the event are zero values, and these values are not sent to ONAP. Only non-zero values are sent, together with their *MeasInfo.MeasTypes* index (*MeasResult.p*).
+
+
+
+
+
+
diff --git a/docs/sections/apis/ves.rst b/docs/sections/apis/ves.rst
index 9fb3db4e..49c82304 100644
--- a/docs/sections/apis/ves.rst
+++ b/docs/sections/apis/ves.rst
@@ -1,4 +1,4 @@
-VES Collector 1.1.0
+VES Collector 1.3.1
===================
.. toctree::
diff --git a/docs/sections/architecture.rst b/docs/sections/architecture.rst
index a53480b0..62b4e9b5 100644
--- a/docs/sections/architecture.rst
+++ b/docs/sections/architecture.rst
@@ -36,6 +36,7 @@ The following list displays the details of what are included in ONAP DCAE R3. A
- DCAE Inventory-API: API for DCAE's TOSCA model store.
- Platform services
- Consul: Distributed service discovery service and KV store.
+ - PNDA: Platform for Network Data Analytics.
- Postgres Database: DCAE's TOSCA model store.
- Redis Database: DCAE's transactional state store, used by TCA for supporting persistence and seamless scaling.
@@ -55,7 +56,7 @@ The following list displays the details of what are included in ONAP DCAE R3. A
- Universal Data Mapper service
-The figure below shows the DCAE R3 architecture and how the components work with each other. The components on the right constitute the Platform/controller components which are statically deployed. The components on the right represent the services which can be both deployed statically or dynamically (via CLAMP)
+The figure below shows the DCAE R3 architecture and how the components work with each other. The components on the right constitute the Platform/controller components which are statically deployed. The components on the right represent the services which can be both deployed statically or dynamically (via CLAMP)
.. image:: images/R3_architecture_diagram.gif
@@ -68,6 +69,8 @@ Because DCAE service components are deployed on-demand following the control loo
For R3, ONAP supports two deployment methodologies: Heat Orchestration Template method, or Helm Chart method. No matter which method, DCAE is deployed following the same flow. At its minimum, only the TOSCA model executor, the DCAE Cloudify Manager, needs to be deployed through the ONAP deployment process. Once the Cloudify Manager is up and running, all the rest of DCAE platform can be deployed by a bootstrap script, which makes a number of calls into the Cloudify Manager API with Blueprints for various DCAE components, first the DCAE Platform components, then the service components that are needed for the built-in control loops, such as vFW/vDNS traffic throttling. It is also possible that additional DCAE components are also launched as part of the ONAP deployment process using the ONAP level method instead of TOSCA model based method.
+The PNDA platform service is an optional component that can be installed when using the OOM Helm Chart installation method on Openstack based Kubernetes infrastructure.
+
More details of the DCAE R3 deployment will be covered by the Installation section.
@@ -78,7 +81,7 @@ For ONAP R3 DCAE participates in the following use cases.
- vDNS: VES collector, TCA analytics
-- vFW: VES collector, TCA analytics
+- vFW: VES collector, TCA analytics, PNDA based analytics
- vCPE: VES collector, TCA analytics
diff --git a/docs/sections/humaninterfaces.rst b/docs/sections/humaninterfaces.rst
index 3afcac30..c83d1f1c 100644
--- a/docs/sections/humaninterfaces.rst
+++ b/docs/sections/humaninterfaces.rst
@@ -30,4 +30,6 @@ DCAE provides a number of interfaces for users to interact with the DCAE system.
* The CDAP VMs accept ssh connection with the standard access key.
* The CDAP GUI can be accessed from http://{{CDAP02_VM_IP}}:11011 .
-
+6. DCAE PNDA
+ * The PNDA Console can be accessed from http://knox.service.dc1.pnda.local:8443/gateway/pnda/console .
+ * The PNDA UIs can be accessed from the PNDA Console which is described here: http://pnda.io/pnda-guide/console/ .
diff --git a/docs/sections/installation.rst b/docs/sections/installation.rst
index eec69c38..da87f529 100644
--- a/docs/sections/installation.rst
+++ b/docs/sections/installation.rst
@@ -10,5 +10,6 @@ DCAE Deployment (Installation)
./installation_heat.rst
./installation_oom.rst
+ ./installation_pnda.rst
./installation_test.rst
diff --git a/docs/sections/installation_oom.rst b/docs/sections/installation_oom.rst
index b8926d55..9691dce6 100644
--- a/docs/sections/installation_oom.rst
+++ b/docs/sections/installation_oom.rst
@@ -18,6 +18,10 @@ At deployment time, with a single **helm install** command, Helm resolves all th
All ONAP Helm Charts are organized under the **kubernetes** directory of the **OOM** project, where roughly each ONAP component occupied a subdirectory. DCAE charts are placed under the **dcaegen2** directory. DCAE Kubernetes deployment is based on the same set of Docker containers that the Heat based deployment uses, with the exception of bootstrap container and health check container are only used in Kubernetes deployment.
+The PNDA data platform is an optional DCAE component that is placed under the **pnda**
+directory. Details for how to configure values to enable PNDA installation during Helm install
+are described in `Installing PNDA During Helm Chart Based DCAE Deployment
+<installation_pnda.html>`_.
DCAE Chart Organization
-----------------------
@@ -43,15 +47,17 @@ DCAE Deployment
---------------
At deployment time, when the **helm install** command is executed, all DCAE resources defined within charts under the OOM Chart hierarchy are deployed. They are the 1st order components, namely the Cloudify Manager deployment, the Health Check deployment, the Redis cluster deployment, and the Bootstrap job. In addition, a Postgres database deployment is also launched, which is specified as a dependency of the DCAE Bootstrap job. These resources will show up as the following, where the name before / indicates resource type and the term "dev" is a tag that **helm install** command uses as "release name":
+
* deploy/dev-dcae-cloudify-manager;
* deploy/dev-dcae-healthcheck;
* statefulsets/dev-dcae-redis;
* statefulsets/dev-dcae-db;
* job/dev-dcae-bootstrap.
-In addition, DCAE operations depends on a Consul server cluster. For ONAP OOM deployment, since Consul cluster is provided as a shared resource, its charts are defined under the consul direcory, not part of DCAE charts.
+In addition, DCAE operations depends on a Consul server cluster. For ONAP OOM deployment, since Consul cluster is provided as a shared resource, its charts are defined under the consul direcory, not part of DCAE charts.
The dcae-bootstrap job has a number of prerequisites because the subsequently deployed DCAE components depends on a number of resources having entered their normal operation state. DCAE bootstrap job will not start before these resources are ready. They are:
+
* dcae-cloudify-manager;
* consul-server;
* msb-discovery;
@@ -60,6 +66,7 @@ The dcae-bootstrap job has a number of prerequisites because the subsequently de
Once started, the DCAE bootstrap job will call Cloudify Manager to deploy a series of Blueprints which specify the additional DCAE R3 components. These Blueprints are almost identical to the Docker container Blueprints used by DACE R1 and Heat based R2 deployment, except that they are using the k8splugin instead of dockerplugin. The k8splugin is a major contribution of DCAE R2. It is a Cloudify Manager plugin that is capable of expanding a Docker container node definition into a Kubernetes deployment definition, with enhancements such as replica scaling, ONAP logging sidecar, MSB registration, etc.
The additional DCAE components launched into ONAP deployment are:
+
* deploy/dep-config-binding-service;
* deploy/dep-dcae-tca-analytics;
* deploy/dep-dcae-ves-collector;
@@ -90,6 +97,7 @@ Deployment time configuration of DCAE components are defined in several places.
* Helm command line supplied values supersedes values defined in any values.yaml files.
In addition, for DCAE components deployed through Cloudify Manager Blueprints, their configuration parameters are defined in the following places:
+
* The Blueprint files can contain static values for configuration parameters;
* The Blueprint files are defined under the blueprints directory of the dcaegen2/platform/blueprints repo, named with "k8s" prefix.
* The Blueprint files can specify input parameters and the values of these parameters will be used for configuring parameters in Blueprints. The values for these input parameters can be supplied in several ways as listed below in the order of precedence (low to high):
@@ -139,6 +147,7 @@ Below is a table of default hostnames and ports for DCAE component service endpo
In addition, a number of ONAP service endpoints that are used by DCAE components are listed as follows
for reference by DCAE developers and testers:
+
==================== ============================ ================================
Component Cluster Internal (host:port) Cluster external (svc_name:port)
==================== ============================ ================================
diff --git a/docs/sections/installation_pnda.rst b/docs/sections/installation_pnda.rst
new file mode 100644
index 00000000..d1c0a383
--- /dev/null
+++ b/docs/sections/installation_pnda.rst
@@ -0,0 +1,185 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Installing PNDA During Helm Chart Based DCAE Deployment
+=======================================================
+
+PNDA is integrated into ONAP as a component system of DCAE. It is possible to deploy PNDA as
+part of an ONAP OOM deployment on Openstack infrastructure. This is achieved by using a
+pnda-bootstrap container in kubernetes to deploy Openstack VMs and then install a PNDA cluster
+onto those VMs.
+
+Requirements
+------------
+
+PNDA deployment within ONAP requires the following:
+
+* Openstack based infrastructure. Follow the `PNDA guide <http://pnda.io/pnda-guide/provisioning/openstack/PREPARE.html>`_
+ for more information.
+* OOM / Helm template based installation of ONAP on Kubernetes.
+* Kubernetes and PNDA need to share the same Openstack network subnet.
+
+The dcae-pnda-bootstrap Helm chart currently deploys a PNDA cluster with the following resource
+requirements:
+
++--------------------+--------------------+--------------------+--------------------+
+|Node | CPU | RAM GB | Disk GB |
++====================+====================+====================+====================+
+|Gateway | 2 | 4 | 20 |
++--------------------+--------------------+--------------------+--------------------+
+|Edge | 8 | 32 | 50 |
++--------------------+--------------------+--------------------+--------------------+
+|Hadoop Manager | 4 | 16 | 50 |
++--------------------+--------------------+--------------------+--------------------+
+|Hadoop Data x 2 | 4 | 8 | 20 + 45 |
++--------------------+--------------------+--------------------+--------------------+
+|Kafka | 2 | 8 | 50 |
++--------------------+--------------------+--------------------+--------------------+
+
+There are several parameters that need to be defined with values from your environment for a
+successful PNDA deployment within ONAP. These parameters can be grouped in separate files that
+are passed as parameters to helm install. With the following files, the command to install ONAP
+with PNDA would then look like this:
+
+::
+
+ helm install -f ~/pnda.yaml -f ~/pnda-openstack.yaml -f ~/pnda-pem.yaml local/onap -n dev --namespace onap
+
+
+
+``pnda.yaml``
+-------------
+
+This file contains settings to enable PNDA install and the evironment settings required by PNDA.
+
+::
+
+ pnda:
+ dcae-pnda-bootstrap:
+ enabled: true
+ pnda:
+ osUser: {guest-os-username} # e.g. centos
+ nameserver: nn.nn.nn.nn # IP address of a reachable nameserver
+ ntp: nn.nn.nn.nn # IP address of a reachable NTP server
+ apps:
+ fsType: local
+ networkCidr: 192.168.0.0/24
+ outboundCidr: 0.0.0.0/0
+
+Description
+~~~~~~~~~~~
+
++-----------------------------------------+----------+--------------------------------------------------------+
+|pnda.dcae-pnda-bootstrap.enabled |boolean |Deploy PNDA or not. |
++-----------------------------------------+----------+--------------------------------------------------------+
+|pnda.dcae-pnda-bootstrap.pnda.osUser |string |Login used during PNDA installation process to connect |
+| | |to newly created Openstack PNDA instances. |
++-----------------------------------------+----------+--------------------------------------------------------+
+|pnda.dcae-pnda-bootstrap.pnda.nameserver |string |IP address of the nameserver that will be used by all |
+| | |Openstack PNDA instances. |
++-----------------------------------------+----------+--------------------------------------------------------+
+|pnda.dcae-pnda-bootstrap.pnda.ntp |string |Hostname or IP address of a NTP server. This NTP server |
+| | |MUST be reachable from the Openstack PNDA instances. |
++-----------------------------------------+----------+--------------------------------------------------------+
+|pnda.dcae-pnda-bootstrap.pnda.apps.fsType|string |Type of storage used to store PNDA application packages |
+| | |(s3, sshfs, local, swift). Set it to local. |
++-----------------------------------------+----------+--------------------------------------------------------+
+|pnda.dcae-pnda-bootstrap.pnda.networkCidr|string |CIDR specifying the address range for the network |
+| | |containing all PNDA instances. |
++-----------------------------------------+----------+--------------------------------------------------------+
+|pnda.dcae-pnda-bootstrap.pnda.dataNodes |number |Number of data nodes to deploy. Defaults to 2. |
++-----------------------------------------+----------+--------------------------------------------------------+
+|pnda.dcae-pnda-bootstrap.pnda.kafkaNodes |number |Number of kafka nodes to deploy. Defaults to 1. |
++-----------------------------------------+----------+--------------------------------------------------------+
+
+
+``pnda-openstack.yaml``
+-----------------------
+
+This file contains the Openstack connection settings and Openstack entity identifiers.
+
+::
+
+ pnda:
+ dcae-pnda-bootstrap:
+ openstack:
+ keystoneUser: {openstack-username}
+ keystonePassword: {openstack-password}
+ keystoneTenant: {openstack-tenant-name}
+ keystoneAuthUrl: {openstack-auth-url} # e.g. http://openstack-host:5000/v2.0/
+ keystoneRegion: {openstack-region-name}
+ useExistingNetwork: true
+ existingNetworkId: {kubernetes-cluster-network}
+ existingSubnetId: {kubernetes-cluster-subnet}
+ imageId: {pnda-vm-image-id} # Openstack imageId to use for PNDA VMs
+ publicNetworkId: {public-network-id} # Openstack networkId of public facing network
+ publicSubnetCidr: nn.nn.nn.nn/nn # CIDR address of the public subnet e.g. 10.40.10.0/24
+
+Description
+~~~~~~~~~~~
+
++-----------------------------------------------------+----------+-----------------------------------------------+
+|pnda.dcae-pnda-bootstrap.openstack.keystoneUser |string |Openstack user. |
++-----------------------------------------------------+----------+-----------------------------------------------+
+|pnda.dcae-pnda-bootstrap.openstack.keystonePassword |string |Openstack password. |
++-----------------------------------------------------+----------+-----------------------------------------------+
+|pnda.dcae-pnda-bootstrap.openstack.keystoneTenant |string |Openstack tenant. |
++-----------------------------------------------------+----------+-----------------------------------------------+
+|pnda.dcae-pnda-bootstrap.openstack.keystoneAuthUrl |string |Openstack authentication url. |
++-----------------------------------------------------+----------+-----------------------------------------------+
+|pnda.dcae-pnda-bootstrap.openstack.keystoneRegion |string |Openstack region. |
++-----------------------------------------------------+----------+-----------------------------------------------+
+|pnda.dcae-pnda-bootstrap.openstack.useExistingNetwork|boolean |Do you want to create a new Openstack network |
+| | |or do you want to use an already existing one? |
++-----------------------------------------------------+----------+-----------------------------------------------+
+|pnda.dcae-pnda-bootstrap.openstack.existingNetworkId |string |If you want to use an already existing |
+| | |Openstack network, specify its UUID. |
++-----------------------------------------------------+----------+-----------------------------------------------+
+|pnda.dcae-pnda-bootstrap.openstack.existingSubnetId |string |If you want to use an already existing |
+| | |Openstack network, specify the UUID of the |
+| | |Openstack subnet to use. |
++-----------------------------------------------------+----------+-----------------------------------------------+
+|pnda.dcae-pnda-bootstrap.openstack.imageId |string |Base image to use for the created Openstack |
+| | |PNDA instances. |
++-----------------------------------------------------+----------+-----------------------------------------------+
+|pnda.dcae-pnda-bootstrap.openstack.publicNetworkId |string |UUID of the public network in openstack to use.|
++-----------------------------------------------------+----------+-----------------------------------------------+
+|pnda.dcae-pnda-bootstrap.openstack.publicSubnetCidr |string |CIDR specifying the address range for the |
+| | |public subnet. |
++-----------------------------------------------------+----------+-----------------------------------------------+
+
+
+``pnda-pem.yaml``
+-----------------
+
+This file contains the private secret and Openstack keypair name to use for the guest VMs in Openstack.
+
+::
+
+ pnda:
+ dcae-pnda-bootstrap:
+ pnda_keypair_name: {keypair-name} # Name of the keypair you have created in Openstack, e.g. pnda-key
+ pnda_secret: |
+ -----BEGIN DSA PRIVATE KEY-----
+ MIIBugIBAAKBgQCLLCmDJdxCxOOmaSGoH0WUyoiGUJiE0JnzEEhXd4SZWmoxo7yn
+ 9d3iA9z2OiOnbQ4s5tAOWknpFEnIwtFb+L2x3Fzv7yEdHBk0tgC8c91sIxb72SVp
+ RgJDaseL2C5RRdWqDiKlXnA1iY7H5z/k/bZD61/4eGdAojVxroQX2H6uLQIVAIrG
+ WVGBudBQmfwKzyP5eO1nevNFAoGAALSGjzP0/yVnEKZ8JO8Vw/eC1YDmTG1IwBdN
+ Rm8fXqyUjd03ijpmOoPISPM6Jt0TrJTvGNVfqSI1mKVznJ+5B7y5M9qvjzHQW5hL
+ GkXHL57mN2QkaJE/m4ilKr/p5RzTBk6c/zhvxg/8DEne6klQ3NQhapzY4cL9aLK6
+ hrR4T94CgYAhGFZI5buQUk8MtG9nac9hEQuYw+lrdjy+y1F8XIjq8+ZLAdCY5gw/
+ ph+4di/R8MyesqG5AtqUqXQY3tibya3YrqyNZ5mTz6kMN1lT26QHwYMBF1IymMWV
+ lq5wzjpctVovYchCLagrh7KepetNigni0Vrjc0TLPbvXQkoLG5JifgIURmDpblYA
+ HSNN6un6nlCoGnm07SA=
+ -----END DSA PRIVATE KEY-----
+
+Description
+~~~~~~~~~~~
+
++------------------------------------------+----------+-------------------------------------------------------+
+|pnda.dcae-pnda-bootstrap.pnda_keypair_name|string |Name of the keypair to use to spawn the Openstack PNDA |
+| | |instances.Note that the private key above is a |
+| | |generated sample that is unusable. |
++------------------------------------------+----------+-------------------------------------------------------+
+|pnda.dcae-pnda-bootstrap.pnda_secret |string |Secret key of the pnda_keypair_name keypair. |
++------------------------------------------+----------+-------------------------------------------------------+
diff --git a/docs/sections/offeredapis.rst b/docs/sections/offeredapis.rst
index fc9cb773..2b26d36d 100644
--- a/docs/sections/offeredapis.rst
+++ b/docs/sections/offeredapis.rst
@@ -13,5 +13,4 @@ DCAEGEN2 Components Offered APIs
apis/dcaecdap.rst
apis/PRH.rst
apis/DFC.rst
-
-
+ apis/PNDA.rst
diff --git a/docs/sections/release-notes.rst b/docs/sections/release-notes.rst
index a9b476b3..1f148440 100644
--- a/docs/sections/release-notes.rst
+++ b/docs/sections/release-notes.rst
@@ -93,7 +93,7 @@ Quick Links:
The following components are introduced in R3
- DataFile Collector
- - Docker container tag: onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.0.3
+ - Docker container tag: onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.0.4
- Description : Bulk data file collector to fetch non-realtime PM data
- PNF Registrator handler
- Docker container tag: onap/org.onap.dcaegen2.services.prh.prh-app-server:1.1.1
diff --git a/docs/sections/services/dfc/administration.rst b/docs/sections/services/dfc/administration.rst
new file mode 100644
index 00000000..43845a0e
--- /dev/null
+++ b/docs/sections/services/dfc/administration.rst
@@ -0,0 +1,15 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Administration
+==============
+DFC has a healthcheck functionality. The service can then be started and stopped through an API. One can also check the liveliness of the service.
+
+Main API Endpoints
+""""""""""""""""""
+Running with dev-mode of DFC
+ - Heartbeat: **http://<container_address>:8100/heartbeat** or **https://<container_address>:8433/heartbeat**
+ - Start DFC: **http://<container_address>:8100/start** or **https://<container_address>:8433/start**
+ - Stop DFC: **http://<container_address>:8100/stopDatafile** or **https://<container_address>:8433/stopDatafile**
+
+The external port allocated for 8100 (http) is 30245.
diff --git a/docs/sections/services/dfc/architecture.rst b/docs/sections/services/dfc/architecture.rst
new file mode 100644
index 00000000..1ee922af
--- /dev/null
+++ b/docs/sections/services/dfc/architecture.rst
@@ -0,0 +1,31 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Architecture
+============
+
+Introduction
+""""""""""""
+DataFile Collector (DFC) is a part of DCAEGEN2. Some information about DFC and the reasons of its implementation can be found here: `5G bulk PM wiki page`_.
+
+.. _5G bulk PM wiki page: https://wiki.onap.org/display/DW/5G+-+Bulk+PM
+
+DFC will handle the collection of bulk PM data flow:
+ 1. Subscribes to fileReady DMaaP topic
+ 2. Collects the file from the xNF
+ 3. Sends new event to DataRouter with file.
+
+
+DFC is delivered as one **Docker container** which hosts application server and can be started by `docker-compose`.
+See `Delivery`_ for more information about the docker container.
+
+.. _Delivery: ./delivery.html
+
+Functionality
+"""""""""""""
+.. image:: ../../images/DFC.png
+
+Interaction
+"""""""""""
+DFC will interact with the DMaaP Message Router and with the Data Router via secured protocol, using json files.
+So far, the implemented protocols are sftp and ftp(e)s.
diff --git a/docs/sections/services/dfc/configuration.rst b/docs/sections/services/dfc/configuration.rst
new file mode 100644
index 00000000..d57a85f1
--- /dev/null
+++ b/docs/sections/services/dfc/configuration.rst
@@ -0,0 +1,98 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Configuration
+=============
+
+**datafile** configuration is controlled via a single JSON file called datafile_endpoints.json.
+This is located under datafile-app-server/config.
+
+JSON CONFIGURATION EXPLAINED
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Variables of interest (e.g. variables that should be inspected/modifed for a specific runtime environment) are listed below for convenience. The entire file is provided later in this page for reference.
+
+dmaapConsumerConfiguration
+""""""""""""""""""""""""""
+
+.. code-block:: json
+
+ "dmaapHostName": <name of DMaaP/MR host>
+ "dmaapPortNumber": <DMaaP/MR host port>
+ "dmaapTopicName": "/events/unauthenticated.VES_NOTIFICATION_OUTPUT"
+ "dmaapProtocol": "http"
+ "dmaapUserName": ""
+ "dmaapUserPassword": ""
+ "dmaapContentType": "application/json"
+ "consumerId": "C12"
+ "consumerGroup": "OpenDcae-c12"
+ "timeoutMS": -1
+ "messageLimit": 1
+
+dmaapProducerConfiguration
+""""""""""""""""""""""""""
+
+.. code-block:: json
+
+ "dmaapHostName": <name of DMaaP/DR host>
+ "dmaapPortNumber": <DMaaP/DR host port>
+ "dmaapTopicName": "publish"
+ "dmaapProtocol": "httpa"
+ "dmaapUserName": "dradmin"
+ "dmaapUserPassword": "dradmin"
+ "dmaapContentType": "application/octet-stream"
+
+ftpesConfiguration
+""""""""""""""""""
+
+.. code-block:: json
+
+ "keyCert": <path to DFC certificate>
+ "keyPassword": <pssword for DFC certificate>
+ "trustedCA": <path to xNF certificate>
+ "trustedCAPassword": <password for xNF certificate>
+
+
+Sample JSON configuration
+"""""""""""""""""""""""""
+
+The format of the JSON configuration that drives all behavior of DFC is probably best described using an example:
+
+.. code-block:: json
+
+ {
+ "configs": {
+ "dmaap": {
+ "dmaapConsumerConfiguration": {
+ "dmaapHostName": "localhost",
+ "dmaapPortNumber": 2222,
+ "dmaapTopicName": "/events/unauthenticated.VES_NOTIFICATION_OUTPUT",
+ "dmaapProtocol": "http",
+ "dmaapUserName": "",
+ "dmaapUserPassword": "",
+ "dmaapContentType": "application/json",
+ "consumerId": "C12",
+ "consumerGroup": "OpenDcae-c12",
+ "timeoutMS": -1,
+ "messageLimit": 1
+ },
+ "dmaapProducerConfiguration": {
+ "dmaapHostName": "localhost",
+ "dmaapPortNumber": 3907,
+ "dmaapTopicName": "publish",
+ "dmaapProtocol": "https",
+ "dmaapUserName": "dradmin",
+ "dmaapUserPassword": "dradmin",
+ "dmaapContentType": "application/octet-stream"
+ }
+ },
+ "ftp": {
+ "ftpesConfiguration": {
+ "keyCert": "config/ftpKey.jks",
+ "keyPassword": "secret",
+ "trustedCA": "config/cacerts",
+ "trustedCAPassword": "secret"
+ }
+ }
+ }
+ }
diff --git a/docs/sections/services/dfc/delivery.rst b/docs/sections/services/dfc/delivery.rst
new file mode 100644
index 00000000..233e2543
--- /dev/null
+++ b/docs/sections/services/dfc/delivery.rst
@@ -0,0 +1,12 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Delivery
+========
+
+Docker Container
+----------------
+
+**datafile** is delivered as a docker container that can be downloaded from onap:
+
+ ``docker run -d -p 8100:8100 -p 8433:8433 nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile``
diff --git a/docs/sections/services/dfc/index.rst b/docs/sections/services/dfc/index.rst
new file mode 100644
index 00000000..176c403c
--- /dev/null
+++ b/docs/sections/services/dfc/index.rst
@@ -0,0 +1,19 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+
+DATAFILE COLLECTOR MS (DFC)
+=============================
+
+.. Add or remove sections below as appropriate for the platform component.
+
+.. toctree::
+ :maxdepth: 1
+
+ ./architecture.rst
+ ./delivery.rst
+ ./logging.rst
+ ./installation.rst
+ ./configuration.rst
+ ./administration.rst
+ ./release-notes.rst
diff --git a/docs/sections/services/dfc/installation.rst b/docs/sections/services/dfc/installation.rst
new file mode 100644
index 00000000..ffaa580e
--- /dev/null
+++ b/docs/sections/services/dfc/installation.rst
@@ -0,0 +1,25 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Installation
+============
+
+An environment suitable for running docker containers is recommended.
+
+As a docker container
+---------------------
+
+**datafile** is delivered as a docker container based on openjdk:8-jre-alpine. The
+host or VM that will run this container must have the docker application
+loaded and available to the userID that will be running the DFC container.
+
+Also required is a working DMAAP/MR and DMAAP/DR environment. datafile
+subscribes to DMAAP/MR fileReady event as JSON messages and publishes the downloaded files to the DMAAP/DR.
+
+Installation
+^^^^^^^^^^^^
+
+The following command will download the latest datafile container from
+nexus and launch it in the container named "datafile":
+
+ ``docker run -d -p 8100:8100 -p 8433:8433 nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile``
diff --git a/docs/sections/services/dfc/logging.rst b/docs/sections/services/dfc/logging.rst
new file mode 100644
index 00000000..b6ac7930
--- /dev/null
+++ b/docs/sections/services/dfc/logging.rst
@@ -0,0 +1,13 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Logging
+=======
+
+Logging is controlled by the configuration provided to **datafile** in the application.yaml
+file located in datafile-app-server/config folder.
+
+
+**Where is the log file?**
+
+The log file is located under /opt/log and called application.log.
diff --git a/docs/sections/services/dfc/release-notes.rst b/docs/sections/services/dfc/release-notes.rst
new file mode 100644
index 00000000..fb66ebb6
--- /dev/null
+++ b/docs/sections/services/dfc/release-notes.rst
@@ -0,0 +1,41 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Release Notes
+=============
+
+Version: 1.0.4
+--------------
+
+:Release Date: 2018-11-08 (Casablanca)
+
+
+**New Features**
+
+All DFC features from v1.0.4 are new.
+
+
+**Bug Fixes**
+
+This is the initial release.
+
+
+**Known Issues**
+
+No known issues.
+
+
+**Known limitations**
+
+ - DFC has only be tested successfully with one node.
+ - The certificates are distributed hand to hand, no automated process.
+
+
+**Security Issues**
+
+No known security issues.
+
+
+**Upgrade Notes**
+
+This is the initial release.
diff --git a/docs/sections/services/prh/architecture.rst b/docs/sections/services/prh/architecture.rst
index 7e2aed84..f0703a71 100644
--- a/docs/sections/services/prh/architecture.rst
+++ b/docs/sections/services/prh/architecture.rst
@@ -2,13 +2,13 @@
.. http://creativecommons.org/licenses/by/4.0
PRH Architecture
-===================
+================
**PRH** is a DCAE micro-service which participates in the Physical Network Function Plug and Play (PNF PnP)
procedure. PNF PnP is used to register PNF when it comes online.
PRH Processing Flow
-===================
+-------------------
.. image:: ../../images/prhAlgo.png
diff --git a/docs/sections/services/prh/authorization.rst b/docs/sections/services/prh/authorization.rst
new file mode 100644
index 00000000..fe5ed40b
--- /dev/null
+++ b/docs/sections/services/prh/authorization.rst
@@ -0,0 +1,60 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+.. _authorization:
+
+SSL/TLS Authentication & Authorization
+======================================
+
+| PRH does not perform any authorization in AAF, as the only endpoint which is provided by the service is the healthcheck, which is unsecured.
+| For authentication settings there is a possibility to change from default behavior to certificate-based solution independently for DMaaP and AAI communication.
+
+AAI authentication
+^^^^^^^^^^^^^^^^^^
+
+Default
+"""""""
+| By default basic authentication is being used with following credentials:
+| user=AAI
+| password=AAI
+
+Certificate-based
+"""""""""""""""""
+| There is an option to enable certificate-based authentication for PRH towards AAI service calls.
+| To achieve this secure flag needs to be turned on in PRH :ref:`configuration<prh_configuration>` :
+
+.. code-block:: json
+ security.enableAaiCertAuth=true
+
+DMaaP BC authentication
+^^^^^^^^^^^^^^^^^^^^^^^
+
+Default
+"""""""
+| By default basic authentication is being used with following credentials (for both DMaaP consumer and DMaaP publisher endpoints):
+| user=admin
+| password=admin
+
+Certificate-based
+""""""""""""""""""
+| There is an option to enable certificate-based authentication for PRH towards DMaaP Bus Controller service calls.
+| To achieve this secure flag needs to be turned on in PRH :ref:`configuration<prh_configuration>` :
+
+.. code-block:: json
+ --security.enableDmaapCertAuth=true
+
+PRH identity and certificate data
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+| PRH is using ``dcae`` identity when certificate-based authentication is turned on.
+| It's the DCAEGEN2 responsibility to generate certificate for dcae identity and provide it to the collector.
+|
+| PRH by default expects that the volume ``tls-info`` is being mounted under path ``/opt/app/prh/etc/cert``.
+| It's the component/collector responsibility to provide necessary inputs in Cloudify blueprint to get the volume mounted.
+| See :doc:`../../tls_enablement` for detailed information.
+|
+| PRH is using four files from ``tls-info`` DCAE volume (``cert.jks, jks.pass, trust.jks, trust.pass``).
+| Refer :ref:`configuration<prh_configuration>` for proper security attributes settings.
+|
+| **IMPORTANT** Even when certificate-based authentication security features are disabled,
+| still all security settings needs to be provided in configuration to make PRH service start smoothly.
+| Security attributes values are not validated in this case, and can point to non-existent data.
diff --git a/docs/sections/services/prh/configuration.rst b/docs/sections/services/prh/configuration.rst
index 371fe824..03110a1b 100644
--- a/docs/sections/services/prh/configuration.rst
+++ b/docs/sections/services/prh/configuration.rst
@@ -1,6 +1,8 @@
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
+.. _prh_configuration:
+
Configuration
=============
@@ -8,46 +10,51 @@ PRH fetches configuration directly from Consul service in the following JSON for
.. code-block:: json
- {
- "dmaap.dmaapProducerConfiguration.dmaapTopicName":"/events/unauthenticated.PNF_READY",
- "dmaap.dmaapConsumerConfiguration.dmaapHostName":"message-router.onap.svc.cluster.local",
- "aai.aaiClientConfiguration.aaiPnfPath":"/network/pnfs/pnf",
- "aai.aaiClientConfiguration.aaiUserPassword":"AAI",
- "dmaap.dmaapConsumerConfiguration.dmaapUserName":"admin",
- "aai.aaiClientConfiguration.aaiBasePath":"/aai/v12",
- "dmaap.dmaapConsumerConfiguration.timeoutMs":-1,
- "dmaap.dmaapProducerConfiguration.dmaapPortNumber":3904,
- "aai.aaiClientConfiguration.aaiHost":"aai.onap.svc.cluster.local",
- "dmaap.dmaapConsumerConfiguration.dmaapUserPassword":"admin",
- "dmaap.dmaapProducerConfiguration.dmaapProtocol":"http",
- "aai.aaiClientConfiguration.aaiIgnoreSslCertificateErrors":true,
- "dmaap.dmaapProducerConfiguration.dmaapContentType":"application/json",
- "dmaap.dmaapConsumerConfiguration.dmaapTopicName":"/events/unauthenticated.VES_PNFREG_OUTPUT",
- "dmaap.dmaapConsumerConfiguration.dmaapPortNumber":3904,
- "dmaap.dmaapConsumerConfiguration.dmaapContentType":"application/json",
- "dmaap.dmaapConsumerConfiguration.messageLimit":-1,
- "dmaap.dmaapConsumerConfiguration.dmaapProtocol":"http",
- "aai.aaiClientConfiguration.aaiUserName":"AAI",
- "dmaap.dmaapConsumerConfiguration.consumerId":"c12",
- "dmaap.dmaapProducerConfiguration.dmaapHostName":"message-router.onap.svc.cluster.local",
- "aai.aaiClientConfiguration.aaiHostPortNumber":8443,
- "dmaap.dmaapConsumerConfiguration.consumerGroup":"OpenDCAE-c12",
- "aai.aaiClientConfiguration.aaiProtocol":"https",
- "dmaap.dmaapProducerConfiguration.dmaapUserName":"admin",
- "dmaap.dmaapProducerConfiguration.dmaapUserPassword":"admin"
- }
-
-
-There are also optional configuration parameters:
-
-.. code-block:: json
-
- "security": {
- "keyFile": "/opt/app/prh/local/org.onap.prh.keyfile",
- "trustStore": "/opt/app/prh/local/org.onap.prh.trust.jks",
- "trustStorePassword": "change it",
- "keyStore": "/opt/app/prh/local/org.onap.prh.p12",
- "keyStorePassword": "change it",
+ {
+ "aai": {
+ "aaiClientConfiguration": {
+ "aaiHost": "aai.onap.svc.cluster.local",
+ "aaiHostPortNumber": 8443,
+ "aaiIgnoreSslCertificateErrors": true,
+ "aaiProtocol": "https",
+ "aaiUserName": "AAI",
+ "aaiUserPassword": "AAI",
+ "aaiBasePath": "/aai/v12",
+ "aaiPnfPath": "/network/pnfs/pnf",
+ }
+ },
+ "dmaap": {
+ "dmaapConsumerConfiguration": {
+ "consumerGroup": "OpenDCAE-c12",
+ "consumerId": "c12",
+ "dmaapContentType": "application/json",
+ "dmaapHostName": "message-router.onap.svc.cluster.local",
+ "dmaapPortNumber": 3904,
+ "dmaapProtocol": "http",
+ "dmaapTopicName": "/events/unauthenticated.VES_PNFREG_OUTPUT",
+ "dmaapUserName": "admin",
+ "dmaapUserPassword": "admin",
+ "messageLimit": -1,
+ "timeoutMs": -1
+ },
+ "dmaapProducerConfiguration": {
+ "dmaapContentType": "application/json",
+ "dmaapHostName": "message-router.onap.svc.cluster.local",
+ "dmaapPortNumber": 3904,
+ "dmaapProtocol": "http",
+ "dmaapTopicName": "/events/unauthenticated.PNF_READY",
+ "dmaapUserName": "admin",
+ "dmaapUserPassword": "admin"
+ }
+ },
+ "security": {
+ "trustStorePath": "/opt/app/prh/etc/cert/trust.jks",
+ "trustStorePasswordPath": "/opt/app/prh/etc/cert/trust.pass",
+ "keyStorePath": "/opt/app/prh/etc/cert/cert.jks",
+ "keyStorePasswordPath": "/opt/app/prh/etc/cert/jks.pass",
"enableAaiCertAuth": "false",
"enableDmaapCertAuth": "false"
}
+ }
+
+The configuration is created from PRH Cloudify blueprint by specifying **application_config** node during ONAP OOM/Kubernetes deployment.
diff --git a/docs/sections/services/prh/index.rst b/docs/sections/services/prh/index.rst
index 74a0219f..8195eb30 100644
--- a/docs/sections/services/prh/index.rst
+++ b/docs/sections/services/prh/index.rst
@@ -14,13 +14,16 @@ procedure to process the PNF Registration event.
PRH overview and functions
--------------------------
-
.. toctree::
- :maxdepth: 1
- ./architecture.rst
- ./configuration.rst
- ./delivery.rst
- ./installation.rst
+ :maxdepth: 1
+
+ ./architecture
+ ./configuration
+ ./delivery
+ ./installation
+ ./authorization
+API reference
+^^^^^^^^^^^^^
-.. _`Offered APIs`: ../../apis/prh.rst \ No newline at end of file
+Refer to :doc:`PRH offered APIs<../../apis/PRH>` for detailed PRH api information.
diff --git a/docs/sections/services/prh/installation.rst b/docs/sections/services/prh/installation.rst
index f15386ff..45700411 100644
--- a/docs/sections/services/prh/installation.rst
+++ b/docs/sections/services/prh/installation.rst
@@ -8,50 +8,56 @@ The following docker-compose-yaml file shows a default configuration. The file c
.. code-block:: yaml
-version: '2'
-services:
- prh:
- image: nexus3.onap.org:10003/onap/org.onap.dcaegen2.services.prh.prh-app-server
- command: >
- --dmaap.dmaapConsumerConfiguration.dmaapHostName=10.42.111.36
- --dmaap.dmaapConsumerConfiguration.dmaapPortNumber=8904
- --dmaap.dmaapConsumerConfiguration.dmaapTopicName=/events/unauthenticated.SEC_OTHER_OUTPUT
- --dmaap.dmaapConsumerConfiguration.dmaapProtocol=http
- --dmaap.dmaapConsumerConfiguration.dmaapUserName=admin
- --dmaap.dmaapConsumerConfiguration.dmaapUserPassword=admin
- --dmaap.dmaapConsumerConfiguration.dmaapContentType=application/json
- --dmaap.dmaapConsumerConfiguration.consumerId=c12
- --dmaap.dmaapConsumerConfiguration.consumerGroup=OpenDCAE-c12
- --dmaap.dmaapConsumerConfiguration.timeoutMS=-1
- --dmaap.dmaapConsumerConfiguration.message-limit=-1
- --dmaap.dmaapProducerConfiguration.dmaapHostName=10.42.111.36
- --dmaap.dmaapProducerConfiguration.dmaapPortNumber=8904
- --dmaap.dmaapProducerConfiguration.dmaapTopicName=/events/unauthenticated.PNF_READY
- --dmaap.dmaapProducerConfiguration.dmaapProtocol=http
- --dmaap.dmaapProducerConfiguration.dmaapUserName=admin
- --dmaap.dmaapProducerConfiguration.dmaapUserPassword=admin
- --dmaap.dmaapProducerConfiguration.dmaapContentType=application/json
- --aai.aaiClientConfiguration.aaiHostPortNumber=30233
- --aai.aaiClientConfiguration.aaiHost=10.42.111.45
- --aai.aaiClientConfiguration.aaiProtocol=https
- --aai.aaiClientConfiguration.aaiUserName=admin
- --aai.aaiClientConfiguration.aaiUserPassword=admin
- --aai.aaiClientConfiguration.aaiIgnoreSSLCertificateErrors=true
- --aai.aaiClientConfiguration.aaiBasePath=/aai/v11
- --aai.aaiClientConfiguration.aaiPnfPath=/network/pnfs/pnf
- entrypoint:
- - java
- - -Dspring.profiles.active=dev
- - -jar
- - /opt/prh-app-server.jar
- ports:
- - "8100:8100"
- - "8433:8433"
- restart: always
+ version: '3'
+ services:
+ prh:
+ image: nexus3.onap.org:10003/onap/org.onap.dcaegen2.services.prh.prh-app-server
+ command: >
+ --dmaap.dmaapConsumerConfiguration.dmaapHostName=10.42.111.36
+ --dmaap.dmaapConsumerConfiguration.dmaapPortNumber=8904
+ --dmaap.dmaapConsumerConfiguration.dmaapTopicName=/events/unauthenticated.SEC_OTHER_OUTPUT
+ --dmaap.dmaapConsumerConfiguration.dmaapProtocol=http
+ --dmaap.dmaapConsumerConfiguration.dmaapUserName=admin
+ --dmaap.dmaapConsumerConfiguration.dmaapUserPassword=admin
+ --dmaap.dmaapConsumerConfiguration.dmaapContentType=application/json
+ --dmaap.dmaapConsumerConfiguration.consumerId=c12
+ --dmaap.dmaapConsumerConfiguration.consumerGroup=OpenDCAE-c12
+ --dmaap.dmaapConsumerConfiguration.timeoutMS=-1
+ --dmaap.dmaapConsumerConfiguration.message-limit=-1
+ --dmaap.dmaapProducerConfiguration.dmaapHostName=10.42.111.36
+ --dmaap.dmaapProducerConfiguration.dmaapPortNumber=8904
+ --dmaap.dmaapProducerConfiguration.dmaapTopicName=/events/unauthenticated.PNF_READY
+ --dmaap.dmaapProducerConfiguration.dmaapProtocol=http
+ --dmaap.dmaapProducerConfiguration.dmaapUserName=admin
+ --dmaap.dmaapProducerConfiguration.dmaapUserPassword=admin
+ --dmaap.dmaapProducerConfiguration.dmaapContentType=application/json
+ --aai.aaiClientConfiguration.aaiHostPortNumber=30233
+ --aai.aaiClientConfiguration.aaiHost=10.42.111.45
+ --aai.aaiClientConfiguration.aaiProtocol=https
+ --aai.aaiClientConfiguration.aaiUserName=admin
+ --aai.aaiClientConfiguration.aaiUserPassword=admin
+ --aai.aaiClientConfiguration.aaiIgnoreSSLCertificateErrors=true
+ --aai.aaiClientConfiguration.aaiBasePath=/aai/v11
+ --aai.aaiClientConfiguration.aaiPnfPath=/network/pnfs/pnf
+ --security.enableAaiCertAuth=false
+ --security.enableDmaapCertAuth=false
+ --security.keyStorePath=/opt/app/prh/etc/cert/cert.jks
+ --security.keyStorePasswordPath=/opt/app/prh/etc/cert/jks.pass
+ --security.trustStorePath=/opt/app/prh/etc/cert/trust.jks
+ --security.trustStorePasswordPath=/opt/app/prh/etc/cert/trust.pass
+ entrypoint:
+ - java
+ - -Dspring.profiles.active=dev
+ - -jar
+ - /opt/prh-app-server.jar
+ ports:
+ - "8100:8100"
+ - "8433:8433"
+ restart: always
Running with dev-mode of PRH
-==============================
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Heartbeat: http://<container_address>:8100/heartbeat or https://<container_address>:8443/heartbeat
diff --git a/docs/sections/services/serviceindex.rst b/docs/sections/services/serviceindex.rst
index 5cde2603..c500a051 100644
--- a/docs/sections/services/serviceindex.rst
+++ b/docs/sections/services/serviceindex.rst
@@ -15,3 +15,4 @@ Service components under DCAE
./ves-hv/index.rst
./mapper/index.rst
./prh/index.rst
+ ./dfc/index.rst
diff --git a/docs/sections/services/ves-http/index.rst b/docs/sections/services/ves-http/index.rst
index ea43b1f9..fcdbdc2b 100644
--- a/docs/sections/services/ves-http/index.rst
+++ b/docs/sections/services/ves-http/index.rst
@@ -24,4 +24,7 @@ VES Collector (HTTP) overview and functions
./installation.rst
-.. _`Offered APIs`: ../../apis/ves.rst \ No newline at end of file
+API reference
+^^^^^^^^^^^^^
+
+Refer to :doc:`VES APIs<../../apis/ves.rst>` for detailed api information. \ No newline at end of file