Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This page details how to execute the demo that was recorded on the 14th of April 2021 at the DCAE meeting. The demo illustrates the flow of the control loop participant architecture and how it will create and manage services. Specifically, this demo shows the use of the control loop runtime's commissioning and instantiation API to trigger the deployment of the PMSH policy through the policy participant and the instantiation of the PMSH service through the DCAE participant. The DCAE participant uses the existing CLAMP backend to send requests and relay responses to the other participants and the runtime. This demonstration is not to be considered a reflection of the final implemented flow but merely as an indication of the currently implemented progress. The flow of the demo is shown in the image below.

draw.io Diagram
bordertrue
diagramNameDemoFlow
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth921
revision1

Prerequisites

  • Local environment running Ubuntu. Tested with Ubuntu 20.04
  • Access to a Kubernetes Cluster running an ONAP deployment (version 7 or 8).
  • Docker and Docker Compose installed locally.
  • Java 11.
  • A running CLAMP backend (connected to the Kubernetes cluster) with a local MariaDB database. This is running from commit ebc6907968050189688a0b8ccc0e0c42419a9202 on the master branch.

Setup CLAMP and MariaDB

Alterations to CLAMP

Some files need to be added to CLAMP in order for the demo to run successfully. These files include configuration files for Springboot and scripts to pre-populate the database.

  1. Add the PMSH template file to "extra/sql/dump/k8s-pmsh-bp.yaml". The file is available here k8s-pmsh-bp.yaml.
  2. There should be an SQL script in "extra/sql/dump/poc-test-data.sql". The file is available here poc-test-data.sql.
  3. The file at "extra/sql/dump/load-fake-data.sh" needs to be altered to refer to "poc-test-data.sql". The altered version is here load-fake-data.sh.
  4. For conveneince, one can alter the docker-compose file at "extra/docker/clamp/docker-compose.yml" to match the one provided here docker-compose.yml. This is not strictly needed but makes it easier to delete volumes during the docker container deployment.
  5. The Springboot properties file at "src/main/resources/application-noaaf.properties" should be altered to reflect to addresses and ports of your own Kubernetes cluster. By default, this properties file does not point to any cluster. For our case, we altered our local "/etc/hosts" file to associate hostnames with ip addresses - we then manually entered the relevant NodePorts into the properties file. An example is here application-noaaf.properties.

Build CLAMP

Run the following from the command line in the CLAMP root directory.

Code Block
languagebash
firstline1
mvn clean install

Or for a faster build and if you encounter build errors

Code Block
languagebash
firstline1
mvn clean install -DskipITs


Run and Pre-populate MariaDB

Code Block
languagebash
cd extra/bin-for-dev
./start-db.sh test

This should start and pre-populate the database. You can check the database with a suitable client to make sure if you wish. You can make sure the DB is running with:

Code Block
languagebash
docker ps

That's all for the database.

Start the CLAMP Backend

Code Block
languagebash
cd extra/bin-for-dev
./start-backend.sh

Note that you may need to run this with sudo.

Setup and Run DMAAP Simulator

DMAAP is required for communication between the runtime and participants. Here we outline how to setup and run the simulator. This should be done on another terminal.

Clone, Build and Run DMAAP Simulator

Code Block
languagebash
git clone "ssh://saul.gill@gerrit.nordix.org:29418/onap/policy/models"
cd models
mvn clean install

Then to run it

Code Block
languagebash
cd models-sim/models-sim-dmaap
mvn exec:java -Dexec.mainClass=org.onap.policy.models.sim.dmaap.startstop.Main -Dexec.args="-c src/main/resources/etc/DefaultConfig.json"


Setup and Run Policy API

The Policy Api is required locally by the Policy Participant. Carry out these actions on another terminal.

Clone, Build and Run the Policy API

Code Block
languagebash
git clone "ssh://saul.gill@gerrit.nordix.org:29418/onap/policy/api"
cd api
mvn clean install

The default configuration file of the Policy Api has to be altered at "packages/policy-api-tarball/src/main/resources/etc/defaultConfig.json". PolicyAPIConfig.json file for running the policy API for the demo is present in the clamp tosca-poc-nordix branch. The new configuration has also been provided here defaultConfighere PolicyAPIConfig.json.

Then we can run the Policy API.

Code Block
languagebash
cd main
mvn exec:java -Dexec.mainClass=org.onap.policy.api.main.startstop.Main -Dexec.args=" -c ../packages/policy-api-tarball/YOUR_PATH_TO_CLAMP/clamp/tosca-controlloop/common/src/maintest/resources/demo/etcconfig/defaultConfigPolicyAPIConfig.json"


Setup and Run Participant Runtime

The participant runtime is where the deployment of PMSH will be triggered. It contains the commissioning and instantiation APIs referred to in the diagram above.

Get If you haven't already done so, get a fresh clone of the tosca-poc-nordix branch of CLAMP. These actions should be carried out in a new terminal

Code Block
languagebash
git clone -b tosca-poc-nordix "ssh://saul.gill@gerrit.nordix.org:29418/onap/policy/clamp"

Build the project from the "tosca-controlloop" folder

Code Block
languagebash
cd clamp/tosca-controlloop
mvn clean install

This builds the runtime but also build the participant modules that we will be running later.For the runtime, some configuration files need to be altered. These changes are around the database credentials and entity configuration. The "

Run the participant runtime.

Code Block
languagebash
cd runtime
mvn exec:java -Dexec.mainClass=org.onap.policy.clamp.controlloop.runtime.main.startstop.Main -Dexec.args=" -c ../common/src/test/resources/
parameters
demo/config/
TestParametersMariaDB
RuntimeConfig.json"
can be replaced with this: TestParametersMariaDB.json. Run the participant runtime

This should now be running

Setup and Run Policy Participant

The policy participant interacts with the policy api to create policies and policy types. On a separate terminal, you should run the policy participant.

Code Block
languagebash
cd clamp/tosca-controlloop/participant/participant-impl/participant-impl-policy
mvn exec:java -Dexec.mainClass=org.onap.policy.clamp.controlloop.participant.policy.main.startstop.Main -Dexec.args=" -c ../../../common/src/test/resources/demo/config/PolicyParticipantConfig.json"

This should now be running.

Setup and Run the DCAE Participant

The DCAE participant will interact with DCAE through the CLAMP backend. Setup and run as below in a new terminal.

Code Block
languagebash
cd runtime

clamp/tosca-controlloop/participant/participant-impl/participant-impl-dcae
mvn exec:java  -Dexec.mainClass=org.onap.policy.clamp.controlloop.participant.dcae.main.startstop.Main -Dexec.args=" -c src/main/resources/config/DCAEParticipantConfig.json"

The DCAE Participant should now be running.