diff options
-rw-r--r-- | docs/conf.py | 2 | ||||
-rw-r--r-- | docs/development/devtools/apex-s3p.rst | 80 | ||||
-rw-r--r-- | docs/development/devtools/images/frankfurt/apex_s3p_jm-1.png | bin | 0 -> 149789 bytes | |||
-rw-r--r-- | docs/development/devtools/images/frankfurt/apex_s3p_jm-2.png | bin | 0 -> 311321 bytes | |||
-rw-r--r-- | docs/development/devtools/images/frankfurt/apex_s3p_vm-1.png | bin | 0 -> 176069 bytes | |||
-rw-r--r-- | docs/development/devtools/images/frankfurt/apex_s3p_vm-2.png | bin | 0 -> 146018 bytes | |||
-rw-r--r-- | docs/development/devtools/pap-s3p.rst | 29 | ||||
-rw-r--r-- | docs/development/devtools/zip/frankfurt/apex_s3p_result.tar | bin | 0 -> 4648960 bytes | |||
-rw-r--r-- | docs/installation/oom.rst | 24 | ||||
-rw-r--r-- | docs/release-notes.rst | 49 | ||||
-rw-r--r-- | integration/pom.xml | 2 | ||||
-rw-r--r-- | pom.xml | 4 |
12 files changed, 144 insertions, 46 deletions
diff --git a/docs/conf.py b/docs/conf.py index 78ab3480..a1c6023b 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -13,4 +13,4 @@ intersphinx_mapping = {} html_last_updated_fmt = '%d-%b-%y %H:%M' def setup(app): - app.add_stylesheet("css/ribbon_onap.css") + app.add_stylesheet("css/ribbon.css") diff --git a/docs/development/devtools/apex-s3p.rst b/docs/development/devtools/apex-s3p.rst index d3a8d410..784c4cbf 100644 --- a/docs/development/devtools/apex-s3p.rst +++ b/docs/development/devtools/apex-s3p.rst @@ -267,6 +267,86 @@ After the test stop, we can generate a HTML test report via command :download:`result.zip <zip/result.tar>` + +Frankfurt release +^^^^^^^^^^^^^^^^^^ + +The 72 hour Stability Test for apex-pdp has the goal of introducing a steady flow of transactions using jMeter. + +The input event will be submitted through the rest interface of DMaaP , which then triggers a grpc request to CDS. Based on the response, another DMaaP event is triggered. + +This test will be performed in an OOM deployment setup. The test will be performed in a multi-threaded environment where 5 threads running in JMeter will keep sending events for the duration of 72 hours. + +Test Plan Frankfurt release +--------------------------- + +The 72 hours stability test will run the following steps in a 5 threaded loop. + +- **Create Policy** - creates a policy using the policy/api component +- **Deploy Policy** - deploys the policy in the existing PdpGroup +- **Check Health** - checks the health status of apex +- **Send Input Event** - trigger 'unauthenticated.DCAE_CL_OUTPUT' event of DMaaP. +- **Get Output Event Response** - check for the triggered output event. +- **Undeploy Policy** - undeploys the policy from PdpGroup +- **Delete Policy** - deletes the policy using the policy/api component + +The following steps can be used to configure the parameters of the test plan. + +- **HTTP Header Manager** - used to store headers which will be used for making HTTP requests. +- **HTTP Request Defaults** - used to store HTTP request details like Server Name or IP, Port, Protocol etc. +- **User Defined Variables** - used to store the following user defined parameters: + +================== ============================================================================ ============================ +**Name** **Description** **Default Value** +================== ============================================================================ ============================ +wait Wait time after each request (in milliseconds) 120000 +threads Number of threads to run test cases in parallel. 5 +threadsTimeOutInMs Synchronization timer for threads running in parallel (in milliseconds). 150000 +================== ============================================================================ ============================ + + +Download and update the jmx file presented in the apex-pdp git repository - `jmx file path <https://gerrit.onap.org/r/gitweb?p=policy/apex-pdp.git;a=tree;f=testsuites/apex-pdp-stability/src/main/resources;h=99d373033a190a690d4e05012bc3a656cae7bc3f;hb=refs/heads/master>`_. + +- HTTPSampler.domain - The ip address of the VM in which the apex container is running +- HTTPSampler.port - The listening port, here is 23324 +- ThreadGroup.druation - Set the duration to 72 hours (in seconds) + +Use the CLI mode to start the test + +.. code-block:: bash + + ./jmeter.sh -n -t ~/apexPdpStabilityTestPlan.jmx -Jusers=1 -l ~/stability.log + + +Stability Test Results Frankfurt release +----------------------------------------- + +The stability test plan was triggered for 72 hours, injecting input events to apex-pdp from 5 client threads running in JMeter. + +After the test stops, we can generate an HTML test report via the command: + +.. code-block:: bash + + ~/jMeter/apache-jmeter-5.2.1/bin/jmeter -g stability.log -o ./result/ + +============================================== =================================================== ================================ ============= ============ +**Number of Client Threads running in JMeter** **Number of Server Threads running in Apex engine** **Total number of input events** **Success %** **Error %** +============================================== =================================================== ================================ ============= ============ +5 4 26766 100% 0% +============================================== =================================================== ================================ ============= ============ + +**VisualVM Screenshot** + +.. image:: images/frankfurt/apex_s3p_vm-1.png +.. image:: images/frankfurt/apex_s3p_vm-2.png + +**JMeter Screenshot** + +.. image:: images/frankfurt/apex_s3p_jm-1.png +.. image:: images/frankfurt/apex_s3p_jm-2.png + +:download:`result.zip <zip/frankfurt/apex_s3p_result.tar>` + Setting up Performance Tests in APEX ++++++++++++++++++++++++++++++++++++ diff --git a/docs/development/devtools/images/frankfurt/apex_s3p_jm-1.png b/docs/development/devtools/images/frankfurt/apex_s3p_jm-1.png Binary files differnew file mode 100644 index 00000000..07b28590 --- /dev/null +++ b/docs/development/devtools/images/frankfurt/apex_s3p_jm-1.png diff --git a/docs/development/devtools/images/frankfurt/apex_s3p_jm-2.png b/docs/development/devtools/images/frankfurt/apex_s3p_jm-2.png Binary files differnew file mode 100644 index 00000000..cb68c897 --- /dev/null +++ b/docs/development/devtools/images/frankfurt/apex_s3p_jm-2.png diff --git a/docs/development/devtools/images/frankfurt/apex_s3p_vm-1.png b/docs/development/devtools/images/frankfurt/apex_s3p_vm-1.png Binary files differnew file mode 100644 index 00000000..7ecbbea9 --- /dev/null +++ b/docs/development/devtools/images/frankfurt/apex_s3p_vm-1.png diff --git a/docs/development/devtools/images/frankfurt/apex_s3p_vm-2.png b/docs/development/devtools/images/frankfurt/apex_s3p_vm-2.png Binary files differnew file mode 100644 index 00000000..548f2b72 --- /dev/null +++ b/docs/development/devtools/images/frankfurt/apex_s3p_vm-2.png diff --git a/docs/development/devtools/pap-s3p.rst b/docs/development/devtools/pap-s3p.rst index 2002327f..5ae58ff5 100644 --- a/docs/development/devtools/pap-s3p.rst +++ b/docs/development/devtools/pap-s3p.rst @@ -151,15 +151,23 @@ The jmx file is present in the policy/pap git repository. Install simulators in VM1 ------------------------- -For installing simulator, there is a script placed at `install simulator script <https://gerrit.onap.org/r/gitweb?p=policy/pap.git;a=blob;f=testsuites/stability/src/main/resources/simulatorsetup/setup_components.sh;h=86de3c1efcb468431a2395eef610db209a613fc3;hb=refs/heads/master>`_ +Clone PAP to VM1 using the following command : -Copy the script & all related files in virtual machine and run it. +.. code-block:: bash + + root@policytest-policytest-3-p5djn6as2477:~$ git clone http://gerrit.onap.org/r/policy/pap + +For installing simulator, execute the script `setup_components.sh` as shown below: + +.. code-block:: bash + + root@policytest-policytest-3-p5djn6as2477:~$ ./pap/testsuites/stability/src/main/resources/simulatorsetup/setup_components.sh After installation make sure that following 4 docker containers are up and running. .. code-block:: bash - root@policytest-policytest-3-p5djn6as2477:/home/ubuntu/simulator# docker ps + root@policytest-policytest-3-p5djn6as2477:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 887efa8dac12 nexus3.onap.org:10001/onap/policy-api "bash ./policy-api.sh" 6 days ago Up 6 days 0.0.0.0:6969->6969/tcp policy-api 0a931c0a63ac pdp/simulator:latest "bash pdp-sim.sh" 6 days ago Up 6 days pdp-simulator @@ -169,15 +177,24 @@ After installation make sure that following 4 docker containers are up and runni Install PAP in VM2 ------------------ -For installing PAP, there is a script placed at `install pap script <https://gerrit.onap.org/r/gitweb?p=policy/pap.git;a=blob;f=testsuites/stability/src/main/resources/papsetup/setup_pap.sh;h=dc5e69e76da9f48f6b23cc012e14148f1373d1e1;hb=refs/heads/master>`_ +Clone PAP to VM2 using the following command : + +.. code-block:: bash + + root@policytest-policytest-3-p5djn6as2477:~$ git clone http://gerrit.onap.org/r/policy/pap + +For installing PAP, execute the script `setup_pap.sh` as shown below: + +.. code-block:: bash -Copy the script & all related files in virtual machine and run it. + root@policytest-policytest-3-p5djn6as2477:~$ cd pap/testsuites/stability/src/main/resources/papsetup/ + root@policytest-policytest-3-p5djn6as2477:~$ ./setup_pap.sh <VM2_IP> <VM1_IP> After installation make sure that following docker container is up and running. .. code-block:: bash - root@policytest-policytest-0-uc3y2h5x6p4j:/home/ubuntu/pap# docker ps + root@policytest-policytest-0-uc3y2h5x6p4j:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 42ac0ed4b713 nexus3.onap.org:10001/onap/policy-pap:2.2.3-SNAPSHOT "bash ./policy-pap.sh" 3 days ago Up 3 days 0.0.0.0:6969->6969/tcp, 0.0.0.0:9090->9090/tcp policy-pap diff --git a/docs/development/devtools/zip/frankfurt/apex_s3p_result.tar b/docs/development/devtools/zip/frankfurt/apex_s3p_result.tar Binary files differnew file mode 100644 index 00000000..1b4eeea4 --- /dev/null +++ b/docs/development/devtools/zip/frankfurt/apex_s3p_result.tar diff --git a/docs/installation/oom.rst b/docs/installation/oom.rst index f40d33eb..9da56682 100644 --- a/docs/installation/oom.rst +++ b/docs/installation/oom.rst @@ -85,13 +85,29 @@ After undeploying policy, loop on monitoring the policy pods until they go away. kubectl get pods -n onap **Step 4** Delete NFS persisted data for Policy -Sudo to root if you logged in using another account such as ubuntu. .. code-block:: bash rm -fr /dockerdata-nfs/dev-policy -**Step 5** Re-Deploy Policy pods +**Step 5** Make sure there is no orphan policy database persistent volume or claim. + +First, find if there is an orphan database PV or PVC with the following commands: + +.. code-block:: bash + + kubectl get pvc -n onap | grep policy + kubectl get pv -n onap | grep policy + +If there are any orphan resources, delete them with + +.. code-block:: bash + + kubectl delete pvc <orphan-policy-mariadb-resource> + kubectl delete pv <orphan-policy-mariadb-resource> + +**Step 6** Re-Deploy Policy pods + After deploying policy, loop on monitoring the policy pods until they come up. .. code-block:: bash @@ -103,7 +119,9 @@ Restarting a faulty component ***************************** Each policy component can be restarted independently by issuing the following command: -kubectl delete pod <policy-pod> -n onap +.. code-block:: bash + + kubectl delete pod <policy-pod> -n onap Exposing ports ************** diff --git a/docs/release-notes.rst b/docs/release-notes.rst index c5d327fb..31b056a2 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -206,42 +206,21 @@ POLICY-XACML POLICY-DROOLS-PDP ~~~~~~~~~~~~~~~~~ -* Support for offline mode. - - The OOM deployment now supports offline mode for PDP-D by default. - -* Parameterize mvn repo urls and proxy settings - - This allows the users to build the docker images for drools-pdp and drools-application using their own CI pipelines if needed. - -* TOSCA Policy Type design for operational policy supported by Drools so that policy is compliant with TOSCA policies -* pip updated to pip3 in docker. -* Extend PDP-D capabilities so that it can instantiate new drools controller instances for executing native Drools policies deployed from PAP. -* Updated drools to use the redesigned Actors in policy/models. -* Server Pool feature for supporting multiple active Drools PDP hosts. -* server-pool is a resilient implementation that supports redundancy within and across data centers involving multiple PDP-Drools. Implementation involves hashing of which PDP-Drools owns which transaction and routing transactions to the appropriate PDP-Drools. By implementing as a feature, any deployment can choose to use or not use server-pool for its redundancy needs. +* Support for PDP-D in offline mode to support locked deployments. This is the default ONAP installation. +* Parameterize maven repository URLs for easier CI/CD integration. +* Support for Tosca Compliant Operational Policies. +* Support for TOSCA Compliant Native Policies that allows creation and deployment of new drools-applications. +* Validation of Operational and Native Policies against their policy type. +* Support for a generic Drools-PDP docker image to host any type of application. +* Experimental Server Pool feature that supports multiple active Drools PDP hosts. POLICY-DROOLS-APPLICATIONS ~~~~~~~~~~~~~~~~~~~~~~~~~~ -* Support for offline mode. -* Rate limiting DCAE flooding of ONSETs - - Policy will get flooded with potentially hundreds of ONSETs at once being picked up from DMaaP. Processing of multiple ONSETs (potentially hundreds in a batch read) of the same underlying unique network alarm severely impacts performance. - -* Design Operational Policy Type for Drools - - Design and preload the drools operational policy type. - - Backwards compatible support for tosca operational policies in usecases. - - Tosca compliant vCPE, vFirewall, vDNS - -* PDP-D support for native Drools policy execution - - Topics are decoupled from controllers. Native policies require topics configured at installation. Topics can also be overridden or new ones added when being placed in the mounted config directory. - -* Update Drools to use new actors. - - Add frankfurt rules for Actor redesign - - Usecases controller disabled (to be removed shortly after Frankfurt release) and the Frankfurt controller will be used. - -* Delete template.demo sub-module and amsterdam controllers -* Removed vLB from drools-apps. -* Replace URL with host/port/contextURI in the controlloop properties. - - Corresponding changes in base.conf file in OOM which is mounted. +* Removal of DCAE ONSET alarm duplicates (with different request IDs). +* Support of a new controller (frankfurt) that supports the ONAP use cases under the new actor architecture. +* Deprecated the "usecases" controller supporting the use cases under the legacy actor architecture. +* Deleted the unsupported "amsterdam" controller related projects. Known Limitations, Issues and Workarounds ========================================= @@ -249,6 +228,10 @@ Known Limitations, Issues and Workarounds System Limitations ------------------ +The policy API component requires a fresh new database when migrating to the frankfurt release. +Therefore, upgrades require a fresh new database installation. +Please see the +`Installing or Upgrading Policy <https://onap.readthedocs.io/en/frankfurt/submodules/policy/parent.git/docs/installation/oom.html#installing-or-upgrading-policy>`__ section for appropriate procedures. Known Vulnerabilities --------------------- @@ -258,7 +241,7 @@ Known Vulnerabilities Workarounds ----------- - +* `POLICY-2463 <https://jira.onap.org/browse/POLICY-2463>`_ - Parse incoming object using JSON.Parse() or cast the object to a String Security Notes -------------- diff --git a/integration/pom.xml b/integration/pom.xml index 352f8103..a9881e4b 100644 --- a/integration/pom.xml +++ b/integration/pom.xml @@ -37,7 +37,7 @@ <properties> <java.version>11</java.version> <version.logback>1.2.3</version.logback> - <version.dmaap>1.1.9</version.dmaap> + <version.dmaap>1.1.11</version.dmaap> <version.powermock>2.0.4</version.powermock> <version.eclipselink>2.7.5</version.eclipselink> <version.jackson>2.10.0.pr3</version.jackson> @@ -23,7 +23,7 @@ <parent> <groupId>org.onap.oparent</groupId> <artifactId>oparent</artifactId> - <version>3.0.0</version> + <version>3.1.0-SNAPSHOT</version> <relativePath /> </parent> <groupId>org.onap.policy.parent</groupId> @@ -32,7 +32,7 @@ <packaging>pom</packaging> <properties> - <oparent.version>3.0.0</oparent.version> + <oparent.version>3.1.0-SNAPSHOT</oparent.version> </properties> <modules> |