diff options
Diffstat (limited to 'docs/development/devtools')
19 files changed, 315 insertions, 407 deletions
diff --git a/docs/development/devtools/smoke/acm-participants-smoke.rst b/docs/development/devtools/smoke/acm-participants-smoke.rst index 0b8061e2..ad377768 100644 --- a/docs/development/devtools/smoke/acm-participants-smoke.rst +++ b/docs/development/devtools/smoke/acm-participants-smoke.rst @@ -26,92 +26,71 @@ The procedure documented in this article has been verified using Ubuntu 20.04 LT 2.1 Prerequisites ================= -- Java 11 +- Java 17 - Docker -- Maven 3 +- Maven 3.9 - Git - helm3 - k8s cluster - Refer to this guide for basic environment setup `Setting up dev environment <https://wiki.onap.org/display/DW/Setting+Up+Your+Development+Environment>`_ -2.2 Assumptions -=============== -- You are accessing the policy repositories through gerrit. +2.2 Cloning CLAMP automation composition +======================================== -The following repositories are required for development in this project. These repositories should be present on your machine and you should run "mvn clean install" on all of them so that the packages are present in your .m2 repository. +Run a script such as the script below to clone the required modules from the `ONAP git repository <https://gerrit.onap.org/r/admin/repos/q/filter:policy>`_. This script clones CLAMP automation composition and all dependency. -- policy/parent -- policy/common -- policy/models -- policy/clamp +.. code-block:: bash -In this setup guide, we will be setting up all the components technically required for a working dev environment. + cd ~/git + git clone https://gerrit.onap.org/r/policy/clamp clamp -2.3 Setting up the components -============================= -2.3.1 MariaDB Setup -^^^^^^^^^^^^^^^^^^^ -We will be using Docker to run our mariadb instance. It will have the acm-runtime database running in it. +Execution of the command above results in the following directory hierarchy in your *~/git* directory: -- AutomationComposition: the runtime-acm db + * ~/git/clamp -The easiest way to do this is to perform a SQL script. Create the *mariadb.sql* file in the directory *~/git*. -.. code-block:: mysql +2.3 Setting up the components +============================= - CREATE DATABASE `clampacm`; - USE `clampacm`; - CREATE USER 'policy'; - GRANT ALL on clampacm.* to 'policy' identified by 'P01icY' with GRANT OPTION; +2.3.1 Running MariaDb and Kafka +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +We will be using Docker to run our mariadb instance and Kafka. It will have the acm-runtime database running in it. +The easiest way to do this is to perform a SQL script. Create the *mariadb.sql* file in the directory *~/git*. -Execution of the command above results in the creation and start of the *mariadb-smoke-test* container. +.. literalinclude:: files/mariadb.sql + :language: SQL - .. code-block:: bash +Create the '*docker-compose.yaml*' using following code: - cd ~/git - docker run --name mariadb-smoke-test \ - -p 3306:3306 \ - -e MYSQL_ROOT_PASSWORD=my-secret-pw \ - --mount type=bind,source=$HOME/git/mariadb.sql,target=/docker-entrypoint-initdb.d/data.sql \ - -d mariadb:10.10.2 \ - --lower-case-table-names=1 +.. literalinclude:: files/docker-compose-local.yaml + :language: yaml -The database will be exposed locally on port 3306 and will be backed by an anonymous docker volume. +Run the docker composition: -2.3.2 DMAAP Simulator -^^^^^^^^^^^^^^^^^^^^^ -For convenience, a dmaap simulator has been provided in the policy/models repository. To start the simulator, you can do the following: + .. code-block:: bash -1. Navigate to /models-sim/policy-models-simulators in the policy/models repository. -2. Add a configuration file to src/test/resources with the following contents: + cd ~/git/ + docker compose up -.. code-block:: json +2.3.2 Setting topicParameterGroup for kafka localhost +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +It needs to set 'kafka' as topicCommInfrastructure and 'localhost:29092' as server. +In the clamp repo, you should find the file 'runtime-acm/src/main/resources/application.yaml'. This file (in the 'runtime' parameters section) may need to be altered as below: - { - "dmaapProvider":{ - "name":"DMaaP simulator", - "topicSweepSec":900 - }, - "restServers":[ - { - "name":"DMaaP simulator", - "providerClass":"org.onap.policy.models.sim.dmaap.rest.DmaapSimRestControllerV1", - "host":"localhost", - "port":3904, - "https":false - } - ] - } - -3. You can then start dmaap with: +.. literalinclude:: files/runtime-application.yaml + :language: yaml -.. code-block:: bash +Same changes (in the 'participant' parameters section) +may need to be apply into the file 'participant/participant-impl/participant-impl-http/src/main/resources/config/application.yaml'. - mvn exec:java -Dexec.mainClass=org.onap.policy.models.simulators.Main -Dexec.args="src/test/resources/YOUR_CONF_FILE.json" +.. literalinclude:: files/participant-http-application.yaml + :language: yaml -At this stage the dmaap simulator should be running on your local machine on port 3904. +And into the file 'participant/participant-impl/participant-impl-kubernetes/src/main/resources/config/application.yaml'. +.. literalinclude:: files/participant-kubernetes-application.yaml + :language: yaml 2.3.3 Automation composition Runtime ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -245,7 +224,7 @@ Verify automation composition state: GET: https://<Runtime ACM IP> : <Port>/onap/policy/clamp/acm/v2/compositions/{compositionId}/instances/{instanceId} -3.4 Automation Compositions can be "UNDEPLOYED" after deployment +3.5 Automation Compositions can be "UNDEPLOYED" after deployment ================================================================ By changing the state to "UNDEPLOYED", all the helm deployments under the corresponding automation composition will be uninstalled from the cluster. diff --git a/docs/development/devtools/smoke/clamp-ac-participant-protocol-smoke.rst b/docs/development/devtools/smoke/clamp-ac-participant-protocol-smoke.rst index 52275be5..95a27ee7 100644 --- a/docs/development/devtools/smoke/clamp-ac-participant-protocol-smoke.rst +++ b/docs/development/devtools/smoke/clamp-ac-participant-protocol-smoke.rst @@ -23,9 +23,9 @@ Linux user - although the majority of the steps show will be exactly the same in 2.1 Prerequisites ================= -- Java 11 +- Java 17 - Docker -- Maven 3 +- Maven 3.9 - Git - Refer to this guide for basic environment setup `Setting up dev environment <https://wiki.onap.org/display/DW/Setting+Up+Your+Development+Environment>`_ @@ -34,7 +34,7 @@ Linux user - although the majority of the steps show will be exactly the same in - Automation Composition runtime component docker image is started and running. - Participant docker images policy-clamp-ac-pf-ppnt, policy-clamp-ac-http-ppnt, policy-clamp-ac-k8s-ppnt are started and running. -- Dmaap simulator for communication between components. +- Kafka/Zookeeper for communication between components. - mariadb docker container for policy and clampacm database. - policy-api for communication between policy participant and policy-framework diff --git a/docs/development/devtools/smoke/clamp-smoke.rst b/docs/development/devtools/smoke/clamp-smoke.rst index 19f4a214..2f4a7c9f 100644 --- a/docs/development/devtools/smoke/clamp-smoke.rst +++ b/docs/development/devtools/smoke/clamp-smoke.rst @@ -24,240 +24,81 @@ This article assumes that: The procedure documented in this article has been verified using Ubuntu 20.04 LTS VM. -Cloning CLAMP automation composition and all dependency -******************************************************* +Cloning CLAMP automation composition +************************************ Run a script such as the script below to clone the required modules from the `ONAP git repository <https://gerrit.onap.org/r/admin/repos/q/filter:policy>`_. This script clones CLAMP automation composition and all dependency. -ONAP Policy Framework has dependencies to the ONAP Parent *oparent* module, the ONAP ECOMP SDK *ecompsdkos* module, and the A&AI Schema module. - - .. code-block:: bash - :caption: Typical ONAP Policy Framework Clone Script - :linenos: - - #!/usr/bin/env bash - - ## script name for output - MOD_SCRIPT_NAME='basename $0' - - ## the ONAP clone directory, defaults to "onap" - clone_dir="onap" - - ## the ONAP repos to clone - onap_repos="\ - policy/parent \ - policy/common \ - policy/models \ - policy/clamp " - - ## - ## Help screen and exit condition (i.e. too few arguments) - ## - Help() - { - echo "" - echo "$MOD_SCRIPT_NAME - clones all required ONAP git repositories" - echo "" - echo " Usage: $MOD_SCRIPT_NAME [-options]" - echo "" - echo " Options" - echo " -d - the ONAP clone directory, defaults to '.'" - echo " -h - this help screen" - echo "" - exit 255; - } - - ## - ## read command line - ## - while [ $# -gt 0 ] - do - case $1 in - #-d ONAP clone directory - -d) - shift - if [ -z "$1" ]; then - echo "$MOD_SCRIPT_NAME: no clone directory" - exit 1 - fi - clone_dir=$1 - shift - ;; - - #-h prints help and exists - -h) - Help;exit 0;; - - *) echo "$MOD_SCRIPT_NAME: undefined CLI option - $1"; exit 255;; - esac - done - - if [ -f "$clone_dir" ]; then - echo "$MOD_SCRIPT_NAME: requested clone directory '$clone_dir' exists as file" - exit 2 - fi - if [ -d "$clone_dir" ]; then - echo "$MOD_SCRIPT_NAME: requested clone directory '$clone_dir' exists as directory" - exit 2 - fi - - mkdir $clone_dir - if [ $? != 0 ] - then - echo cannot clone ONAP repositories, could not create directory '"'$clone_dir'"' - exit 3 - fi - - for repo in $onap_repos - do - repoDir=`dirname "$repo"` - repoName=`basename "$repo"` - - if [ ! -z $dirName ] - then - mkdir "$clone_dir/$repoDir" - if [ $? != 0 ] - then - echo cannot clone ONAP repositories, could not create directory '"'$clone_dir/repoDir'"' - exit 4 - fi - fi - - git clone https://gerrit.onap.org/r/${repo} $clone_dir/$repo - done - - echo ONAP has been cloned into '"'$clone_dir'"' - - -Execution of the script above results in the following directory hierarchy in your *~/git* directory: - - * ~/git/onap - * ~/git/onap/policy - * ~/git/onap/policy/parent - * ~/git/onap/policy/common - * ~/git/onap/policy/models - * ~/git/onap/policy/clamp - - -Building CLAMP automation composition and all dependency -******************************************************** - -**Step 1:** Optionally, for a completely clean build, remove the ONAP built modules from your local repository. - - .. code-block:: bash - - rm -fr ~/.m2/repository/org/onap + cd ~/git + git clone https://gerrit.onap.org/r/policy/clamp clamp -**Step 2:** A pom such as the one below can be used to build the ONAP Policy Framework modules. Create the *pom.xml* file in the directory *~/git/onap/policy*. -.. code-block:: xml - :caption: Typical pom.xml to build the ONAP Policy Framework - :linenos: +Execution of the command above results in the following directory hierarchy in your *~/git* directory: - <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>org.onap</groupId> - <artifactId>onap-policy</artifactId> - <version>1.0.0-SNAPSHOT</version> - <packaging>pom</packaging> - <name>${project.artifactId}</name> - <inceptionYear>2023</inceptionYear> - <organization> - <name>ONAP</name> - </organization> + * ~/git/clamp - <modules> - <module>parent</module> - <module>common</module> - <module>models</module> - <module>clamp</module> - </modules> - </project> +Building CLAMP automation composition +************************************* -**Step 3:** You can now build the Policy framework. +**Step 1:** Setting topicParameterGroup for kafka localhost. +It needs to set 'kafka' as topicCommInfrastructure and 'localhost:29092' as server. +In the clamp repo, you should find the file 'runtime-acm/src/main/resources/application.yaml'. This file (in the 'runtime' parameters section) may need to be altered as below: -Build java artifacts only: +.. literalinclude:: files/runtime-application.yaml + :language: yaml - .. code-block:: bash +Same changes (in the 'participant' parameters section) may need to be apply into the file 'participant/participant-impl/participant-impl-simulator/src/main/resources/config/application.yaml'. - cd ~/git/onap/policy - mvn clean install +.. literalinclude:: files/participant-sim-application.yaml + :language: yaml -Build with docker images: +**Step 2:** Optionally, for a completely clean build, remove the ONAP built modules from your local repository. .. code-block:: bash - cd ~/git/onap/policy/clamp/packages/ - mvn clean install -P docker - - cd ~/git/onap/policy/models/models-sim/packages - mvn clean install -P docker - -Running MariaDb and DMaaP Simulator -*********************************** - -Running a MariaDb Instance -++++++++++++++++++++++++++ + rm -fr ~/.m2/repository/org/onap -Assuming you have successfully built the codebase using the instructions above. There are two requirements for the Clamp automation composition component to run, one of them is a -running MariaDb database instance. The easiest way to do this is to run the docker image locally. -A sql such as the one below can be used to build the SQL initialization. Create the *mariadb.sql* file in the directory *~/git*. +**Step 3:** You can now build the Policy framework. - .. code-block:: SQL +Build java artifacts only: - create database clampacm; - CREATE USER 'policy'@'%' IDENTIFIED BY 'P01icY'; - GRANT ALL PRIVILEGES ON clampacm.* TO 'policy'@'%'; + .. code-block:: bash + cd ~/git/clamp + mvn clean install -DskipTests -Execution of the command above results in the creation and start of the *mariadb-smoke-test* container. +Build with docker images: .. code-block:: bash - cd ~/git - docker run --name mariadb-smoke-test \ - -p 3306:3306 \ - -e MYSQL_ROOT_PASSWORD=my-secret-pw \ - --mount type=bind,source=$HOME/git/mariadb.sql,target=/docker-entrypoint-initdb.d/data.sql \ - -d mariadb:10.10.2 \ - --lower-case-table-names=1 + cd ~/git/clamp/packages/ + mvn clean install -P docker +Running MariaDb and Kafka +************************* -Running the DMaaP Simulator during Development -++++++++++++++++++++++++++++++++++++++++++++++ -The second requirement for the Clamp automation composition component to run is to run the DMaaP simulator. You can run it from the command line using Maven. +Assuming you have successfully built the codebase using the instructions above. There are two requirements for the Clamp automation composition component to run, MariaDb database and Kafka/Zookeeper. The easiest way to do this is to run a docker compose locally. +A sql such as the one below can be used to build the SQL initialization. Create the *mariadb.sql* file in the directory *~/git*. -Create a new configuration file *~/git/onap/policy/models/models-sim/policy-models-simulators/src/test/resources/newParameters.json* using the below code: +.. literalinclude:: files/mariadb.sql + :language: SQL -.. code-block:: json +Create the '*docker-compose.yaml*' using following code: - { - "dmaapProvider": { - "name": "DMaaP simulator", - "topicSweepSec": 900 - }, - "restServers": [ - { - "name": "DMaaP simulator", - "providerClass": "org.onap.policy.models.sim.dmaap.rest.DmaapSimRestControllerV1", - "host": "localhost", - "port": 3904, - "https": false - } - ] - } +.. literalinclude:: files/docker-compose-local.yaml + :language: yaml -Run the following commands: +Run the docker composition: .. code-block:: bash - cd ~/git/onap/policy/models/models-sim/policy-models-simulators - mvn exec:java -Dexec.mainClass=org.onap.policy.models.simulators.Main -Dexec.args="src/test/resources/newParameters.json" + cd ~/git/ + docker compose up Developing and Debugging CLAMP automation composition @@ -270,7 +111,7 @@ Once the mariadb and DMaap simulator are up and running, run the following comma .. code-block:: bash - cd ~/git/onap/policy/clamp/runtime-acm + cd ~/git/clamp/runtime-acm mvn spring-boot:run @@ -279,84 +120,103 @@ Running on the Command Line .. code-block:: bash - cd ~/git/onap/policy/clamp/runtime-acm - java -jar target/policy-clamp-runtime-acm-6.4.2-SNAPSHOT.jar - - -Running in Eclipse -++++++++++++++++++ - -1. Check out the policy models repository -2. Go to the *policy-clamp-runtime-acm* module in the clamp repo -3. Where necessary Add as Source Folder 'target/generated-sources/swagger' -4. Specify a run configuration using the class *org.onap.policy.clamp.acm.runtime.Application* as the main class -5. Run the configuration - -Swagger UI of Automation composition is available at *http://localhost:6969/onap/policy/clamp/acm/swagger-ui/index.html* + cd ~/git/clamp/runtime-acm + java -jar target/policy-clamp-runtime-acm-7.1.3-SNAPSHOT.jar -Running one or more participants -++++++++++++++++++++++++++++++++ - -Into :ref:`HTTP Participant <clamp-acm-http-participant>` you can find a test case with http-participant. +Running participant simulator ++++++++++++++++++++++++++++++ Run the following commands: .. code-block:: bash - cd ~/git/onap/policy/clamp/participant/participant-impl/participant-impl-http - java -jar target/policy-clamp-participant-impl-http-6.4.2-SNAPSHOT.jar + cd ~/git/clamp/participant/participant-impl/participant-impl-simulator + java -jar target/policy-clamp-participant-impl-simulator-7.1.3-SNAPSHOT.jar Running the CLAMP automation composition docker image +++++++++++++++++++++++++++++++++++++++++++++++++++++ -Create the '*docker-composition.yaml*' using following code: +Create the '*docker-compose.yaml*' using following code: .. code-block:: yaml - version: '3.1' - services: mariadb: image: mariadb:10.10.2 + command: ['mysqld', '--lower_case_table_names=1'] volumes: - type: bind source: ./mariadb.sql target: /docker-entrypoint-initdb.d/data.sql environment: - MYSQL_ROOT_PASSWORD=my-secret-pw - - lower-case-table-names=1 ports: - "3306:3306" + zookeeper: + image: confluentinc/cp-zookeeper:latest + environment: + ZOOKEEPER_CLIENT_PORT: 2181 + ZOOKEEPER_TICK_TIME: 2000 + ports: + - 2181:2181 + kafka: + image: confluentinc/cp-kafka:latest + container_name: kafka + depends_on: + - zookeeper + ports: + - 29092:29092 + - 9092:9092 + environment: + KAFKA_BROKER_ID: 1 + KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT + KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT + KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 + runtime-acm: image: onap/policy-clamp-runtime-acm + depends_on: + - zookeeper + - kafka + - mariadb environment: - - mariadb.host=mariadb - - topicServer=message-router + MARIADB_HOST: mariadb + TOPICSERVER: kafka:9092 + SERVER_SSL_ENABLED: false volumes: - type: bind - source: ./onap/policy/clamp/runtime-acm/src/main/resources/application.yaml + source: ./clamp/runtime-acm/src/main/resources/application.yaml target: /opt/app/policy/clamp/etc/AcRuntimeParameters.yaml ports: - "6969:6969" - message-router: - image: onap/policy-models-simulator + participant-simulator: + image: onap/policy-clamp-ac-sim-ppnt + depends_on: + - zookeeper + - kafka + environment: + MARIADB_HOST: mariadb + TOPICSERVER: kafka:9092 + SERVER_SSL_ENABLED: false volumes: - type: bind - source: ./onap/policy/models/models-sim/policy-models-simulators/src/test/resources/newParameters.json - target: /opt/app/policy/simulators/etc/mounted/simParameters.json - ports: - - "3904:3904" + source: ./clamp/participant/participant-impl/participant-impl-simulator/src/main/resources/config/application.yaml + target: /opt/app/policy/clamp/etc/SimulatorParticipantParameters.yaml + ports: + - "8085:8085" Run the docker composition: .. code-block:: bash cd ~/git/ - docker-compose up + docker compose up Swagger UI of automation composition is available at *http://localhost:6969/onap/policy/clamp/acm/swagger-ui/index.html* diff --git a/docs/development/devtools/smoke/distribution-smoke.rst b/docs/development/devtools/smoke/distribution-smoke.rst index c0e3cb1d..ad57ee15 100644 --- a/docs/development/devtools/smoke/distribution-smoke.rst +++ b/docs/development/devtools/smoke/distribution-smoke.rst @@ -7,131 +7,72 @@ Policy Distribution Smoke Test ################################ -The policy-distribution smoke testing is executed against a custom ONAP docker installation as defined in the docker compose file in "policy/docker/csit/". +The policy-distribution smoke testing is executed against a custom ONAP docker or Kubernetes installation as defined in the docker compose file in "policy/docker/csit/". The policy-distribution configuration file is located in "docker/csit/config/distribution/". -This test verifies the execution of the REST api's exposed by the component to make sure the CSAR Decoding and Forwarding works as expected. +This test verifies the execution of the REST API's exposed by the component to make sure the CSAR Decoding and Forwarding works as expected. +Also, the deployment of the policy is checked automatically. An event is then sent to the deployed policy, and thus, its correct operation is verified. -General Setup -***************** -In policy/docker/csit/ - -.. code-block:: bash - - ./start-grafana.sh distribution - -This script will compose the ONAP components used during the smoke tests are: - -- Policy API to perform CRUD of policies. -- Policy DB to store the policies, and DB Migrator to start the db. -- DMAAP Simulator for the communication between components. -- Policy PAP to perform runtime administration (deploy/undeploy/status/statistics/etc). -- Policy Apex-PDP to deploy & undeploy policies. And send heartbeats to PAP. -- Policy Drools-PDP to deploy & undeploy policies. And send heartbeats to PAP. -- Policy Xacml-PDP to deploy & undeploy policies. And send heartbeats to PAP. - -- Policy Distribution to test the Decoding and Forwarding functions. - -Use this script to easily bring down the containers : - -.. code-block:: bash - - ./stop-grafana.sh - -Testing procedure -********************** - -The test set is focused on the following use cases: - -- Wait until Distribution starts and reach the built-in REST endpoints for fetching healthcheck & statistics. -- Execute some of the REST api's exposed by policy-pap component. - -Starting Policy Distribution ------------------------------------- - -Check the docker logs to see when Distribution service is up and running. - -Get the ips of distribution and pap services: +There are 2 alternative ways to carry out the tests. In Docker and in Kubernetes -.. code:: - :number-lines: +Docker Setup +************ +In policy/docker/csit/ - ./get-instance-ip.sh policy-distribution - ./get-instance-ip.sh policy-pap +More detailed setup for docker CSIT is here -Health check status & statistical data of running distribution system. +`Policy CSIT Test Install Docker <https://docs.onap.org/projects/onap-policy-parent/en/latest/development/devtools/testing/csit.html>`_ .. code-block:: bash - curl -u 'healthcheck:zb!XztG34' --basic http://{POLICY_DISTRIBUTION_IP}:6969/healthcheck - curl -u 'healthcheck:zb!XztG34' --basic http://{POLICY_DISTRIBUTION_IP}:6969/statistics - -Expected result for healthcheck - -.. code-block:: json - - {"name":"Policy SSD","url":"policy-distribution","healthy":true,"code":200,"message":"alive"} - -Expected result for statistics + ./run-project-csit.sh distribution -.. code-block:: json +This script will do the following: - {"code":200,"totalDistributionCount":0,"distributionSuccessCount":0,"distributionFailureCount":0,"totalDownloadCount":0,"downloadSuccessCount":0,"downloadFailureCount":0} +- Deploys all required components - including api, pap and distribution +- Runs distributions CSIT tests. These tests: -Trigger Policy Distribution Core ------------------------------------------- + - Take a policy from a CSAR file in distribution. + - Distribution sends and deploys it in API and PAP. + - Send an event to the deployed policy - if the policy is NOT deployed successfully, this will FAIL with a 404. -In order to test policy-distribution, we need to trigger the decoding copying a .csar in the mapped volume, -defined in the docker-compose-distribution-smoke.yml as : +- Takes down all the components. +- Saves the results in a .html file in the csit/archives/distribution directory +- Saves the docker compose logs in the same directory -.. code-block:: yaml - - volumes: - - ./distribution/config/temp/:/opt/app/policy/distribution/etc/temp/ - -So now copy the "sample_csar_with_apex_policy.csar" from ./distribution/config/csar/ to ./distribution/config/temp/ - -If the commissioning is successful we should see from the logs this message +K8S Setup +********* +In policy/docker/csit/ -.. image:: images/message-commissioning-participant.png +More detailed setup for K8S CSIT is here -So if we check the distribution statistics again +`Policy CSIT Test Install Kubernetes <https://docs.onap.org/projects/onap-policy-parent/en/latest/development/devtools/testing/csit.html>`_ .. code-block:: bash - {"code":200,"totalDistributionCount":1,"distributionSuccessCount":1,"distributionFailureCount":0,"totalDownloadCount":1,"downloadSuccessCount":1,"downloadFailureCount":0} + ./run-k8s-csit.sh install distribution -Execute policy-pap testing ------------------------------------- -.. note:: - The user for pap is different. +This script will do the following: -Check the details of policies deployed +- Installs microk8s and configures it. +- Deploys all required components - including api, pap and distribution as helm charts +- Waits for all the charts to come up +- Runs distributions CSIT tests. These tests: -.. code-block:: bash - - curl -k --user 'policyadmin:zb!XztG34' http://{POLICY_PAP_IP}:6969/policy/pap/v1/policies/status - -Expected SUCCESS result - -.. code-block:: json + - Take a policy from a CSAR file in distribution. + - Distribution sends and deploys it in API and PAP. + - Sends an event to the deployed policy - if the policy is NOT deployed successfully, this will FAIL with a 404. - [{"pdpGroup":"defaultGroup","pdpType":"apex","pdpId":"apex-91fa25a1-0456-42fa-9556-6a4d2bd613fc","policy":{"name":"operational.apex.sampledomain","version":"1.0.0"},"policyType":{"name":"onap.policies.native.Apex","version":"1.0.0"},"deploy":true,"state":"SUCCESS"},{"pdpGroup":"defaultGroup","pdpType":"xacml","pdpId":"xacml-83e19452-0854-41dd-9f17-8b0a68f11813","policy":{"name":"SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP","version":"1.0.0"},"policyType":{"name":"onap.policies.Naming","version":"1.0.0"},"deploy":true,"state":"SUCCESS"}] +- Saves the results in a .html file in the csit/archives/distribution directory +- The pods are not automatically taken down. -Check number of policies deployed +To uninstall policy helm deployment and/or the microk8s cluster, use `run-k8s-csit.sh` .. code-block:: bash - curl -k --user 'policyadmin:zb!XztG34' http://{POLICY_PAP_IP}:6969/policy/pap/v1/policies/deployed - -Expected success-count result - -.. code-block:: json - - [{"policy-type":"onap.policies.native.Apex","policy-type-version":"1.0.0","policy-id":"operational.apex.sampledomain","policy-version":"1.0.0","success-count":1,"failure-count":0,"incomplete-count":0},{"policy-type":"onap.policies.Naming","policy-type-version":"1.0.0","policy-id":"SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP","policy-version":"1.0.0","success-count":1,"failure-count":0,"incomplete-count":0}] - -Or download & execute the steps in postman collection for verifying policy-pap component. -The steps need to be performed sequentially one after another. And no input is required from user. + # to uninstall deployment + ./run-k8s-csit.sh uninstall -`Policy Framework Administration API <https://github.com/onap/policy-pap/blob/master/postman/pap-api-collection.json>`_ + # to remove cluster + ./run-k8s-csit.sh clean -Make sure to execute the delete steps in order to clean the setup after testing. +End of document
\ No newline at end of file diff --git a/docs/development/devtools/smoke/files/docker-compose-local.yaml b/docs/development/devtools/smoke/files/docker-compose-local.yaml new file mode 100644 index 00000000..5ee39f67 --- /dev/null +++ b/docs/development/devtools/smoke/files/docker-compose-local.yaml @@ -0,0 +1,36 @@ +services: + mariadb: + image: mariadb:10.10.2 + command: ['mysqld', '--lower_case_table_names=1'] + volumes: + - type: bind + source: ./mariadb.sql + target: /docker-entrypoint-initdb.d/data.sql + environment: + - MYSQL_ROOT_PASSWORD=my-secret-pw + ports: + - "3306:3306" + + zookeeper: + image: confluentinc/cp-zookeeper:latest + environment: + ZOOKEEPER_CLIENT_PORT: 2181 + ZOOKEEPER_TICK_TIME: 2000 + ports: + - 2181:2181 + + kafka: + image: confluentinc/cp-kafka:latest + container_name: kafka + depends_on: + - zookeeper + ports: + - 29092:29092 + - 9092:9092 + environment: + KAFKA_BROKER_ID: 1 + KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT + KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT + KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 diff --git a/docs/development/devtools/smoke/files/mariadb.sql b/docs/development/devtools/smoke/files/mariadb.sql new file mode 100644 index 00000000..95c4c766 --- /dev/null +++ b/docs/development/devtools/smoke/files/mariadb.sql @@ -0,0 +1,3 @@ +create database clampacm; +CREATE USER 'policy'@'%' IDENTIFIED BY 'P01icY'; +GRANT ALL PRIVILEGES ON clampacm.* TO 'policy'@'%'; diff --git a/docs/development/devtools/smoke/files/participant-http-application.yaml b/docs/development/devtools/smoke/files/participant-http-application.yaml new file mode 100644 index 00000000..142c24e5 --- /dev/null +++ b/docs/development/devtools/smoke/files/participant-http-application.yaml @@ -0,0 +1,23 @@ + +participant: + intermediaryParameters: + reportingTimeIntervalMs: 120000 + description: Participant Description + participantId: 101c62b3-8918-41b9-a747-d21eb79c6c01 + clampAutomationCompositionTopics: + topicSources: + - topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + fetchTimeout: 15000 + topicSinks: + - topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + participantSupportedElementTypes: + - + typeName: org.onap.policy.clamp.acm.HttpAutomationCompositionElement + typeVersion: 1.0.0 + diff --git a/docs/development/devtools/smoke/files/participant-kubernetes-application.yaml b/docs/development/devtools/smoke/files/participant-kubernetes-application.yaml new file mode 100644 index 00000000..9b25c615 --- /dev/null +++ b/docs/development/devtools/smoke/files/participant-kubernetes-application.yaml @@ -0,0 +1,26 @@ + +participant: + localChartDirectory: /home/policy/local-charts + infoFileName: CHART_INFO.json + intermediaryParameters: + reportingTimeIntervalMs: 120000 + description: Participant Description + participantId: 101c62b3-8918-41b9-a747-d21eb79c6c02 + clampAutomationCompositionTopics: + topicSources: + - + topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + fetchTimeout: 15000 + topicSinks: + - + topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + participantSupportedElementTypes: + - + typeName: org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement + typeVersion: 1.0.0 diff --git a/docs/development/devtools/smoke/files/participant-sim-application.yaml b/docs/development/devtools/smoke/files/participant-sim-application.yaml new file mode 100644 index 00000000..2d23c12c --- /dev/null +++ b/docs/development/devtools/smoke/files/participant-sim-application.yaml @@ -0,0 +1,22 @@ + +participant: + intermediaryParameters: + reportingTimeIntervalMs: 120000 + description: Participant Description + participantId: 101c62b3-8918-41b9-a747-d21eb79c6c90 + clampAutomationCompositionTopics: + topicSources: + - topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + fetchTimeout: 15000 + topicSinks: + - topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + participantSupportedElementTypes: + - + typeName: org.onap.policy.clamp.acm.SimAutomationCompositionElement + typeVersion: 1.0.0 diff --git a/docs/development/devtools/smoke/files/runtime-application.yaml b/docs/development/devtools/smoke/files/runtime-application.yaml new file mode 100644 index 00000000..f798d5bb --- /dev/null +++ b/docs/development/devtools/smoke/files/runtime-application.yaml @@ -0,0 +1,22 @@ + +runtime: + participantParameters: + heartBeatMs: 20000 + maxStatusWaitMs: 200000 + topicParameterGroup: + topicSources: + - + topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + fetchTimeout: 15000 + topicSinks: + - + topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + acmParameters: + toscaElementName: org.onap.policy.clamp.acm.AutomationCompositionElement + toscaCompositionName: org.onap.policy.clamp.acm.AutomationComposition diff --git a/docs/development/devtools/smoke/xacml-smoke.rst b/docs/development/devtools/smoke/xacml-smoke.rst index 2a0be4b6..61f3551f 100644 --- a/docs/development/devtools/smoke/xacml-smoke.rst +++ b/docs/development/devtools/smoke/xacml-smoke.rst @@ -10,37 +10,33 @@ XACML PDP Smoke Test ~~~~~~~~~~~~~~~~~~~~ -The policy-xacml-pdp smoke testing can be executed against a kubernetes based ONAP installation, +The policy-xacml-pdp smoke testing can be executed against a kubernetes based policy framework installation, and/or a docker-compose set up similar to the one executed by CSIT tests. General Setup ************* -ONAP OOM kubernetes -------------------- +PF kubernetes Install +--------------------- For installation instructions, please refer to the following documentation: -`OOM Documentation <https://docs.onap.org/projects/onap-oom/en/latest/>`_ +`Policy Framework K8S Install <https://docs.onap.org/projects/onap-policy-parent/en/latest/development/devtools/testing/csit.html>`_ -At a minimum policy needs the following components installed: - -- onap base charts -- AAF for certificate generation -- DMaaP message-router for communication among policy components. +The script referred to in the above link should handle the install of the of microk8s, docker and other required components for the install of the policy framework and clamp components. The scripts are used by policy as a means to run the CSIT tests in Kubernetes. docker-compose based -------------------- -A smaller testing environment can be put together by replicating the CSIT test environment: +A smaller testing environment can be put together by replicating the docker-based CSIT test environment. Details are on the same page as K8s setup: -`Policy CSIT Test infrastructure <https://git.onap.org/policy/docker/tree/csit>`_ +`Policy CSIT Test Install Docker <https://docs.onap.org/projects/onap-policy-parent/en/latest/development/devtools/testing/csit.html>`_ Testing procedures ****************** The smoke tests should be focused on verifying the proper workings of the xacml -PDP and dependent components. The following scenarios should be considered: +PDP and dependent components. The following scenarios should be considered: - PDP-X registration with PAP. - PDP-X restarts and re-registration with PAP. diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-monitor.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-monitor.png Binary files differindex 98760e09..d535c4aa 100644 --- a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-monitor.png +++ b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-monitor.png diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-statistics.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-statistics.png Binary files differindex 440a177a..a2caab4e 100644 --- a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-statistics.png +++ b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-statistics.png diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threads.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threads.png Binary files differindex a04d98bc..9b6c3d23 100644 --- a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threads.png +++ b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threads.png diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threshold.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threshold.png Binary files differindex bf20cf32..6a26a09e 100644 --- a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threshold.png +++ b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threshold.png diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-monitor.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-monitor.png Binary files differindex 23030a42..cbb675ba 100644 --- a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-monitor.png +++ b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-monitor.png diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-statistics.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-statistics.png Binary files differindex f184a596..ae1853f9 100644 --- a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-statistics.png +++ b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-statistics.png diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threads.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threads.png Binary files differindex c7279d9c..67da4a62 100644 --- a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threads.png +++ b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threads.png diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threshold.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threshold.png Binary files differindex 37ad5c41..5aa6cc64 100644 --- a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threshold.png +++ b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threshold.png |