diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/Chapter8/OPNFV-Verified-Badging.rst | 259 |
1 files changed, 6 insertions, 253 deletions
diff --git a/docs/Chapter8/OPNFV-Verified-Badging.rst b/docs/Chapter8/OPNFV-Verified-Badging.rst index 946bc6b..9df4d2c 100644 --- a/docs/Chapter8/OPNFV-Verified-Badging.rst +++ b/docs/Chapter8/OPNFV-Verified-Badging.rst @@ -75,275 +75,28 @@ to the appropriate section based on your VNF. * :ref:`heat_vnf_validation` * :ref:`tosca_vnf_validation` - .. _heat_vnf_validation: Heat-based VNF Validation ~~~~~~~~~~~~~~~~~~~~~~~~~ -This section describes how to setup and execute the validation tests against -a VNF that is described using OpenStack Heat. - -Prerequisites -+++++++++++++ - -- ONAP El Alto Release deployed via :doc:`OOM <../../../../oom.git/docs/oom_quickstart_guide>` -- An OpenStack deployment is available and privisioned as ONAP's Cloud Site -- `kubectl <https://kubernetes.io/docs/tasks/tools/install-kubectl/>`__ is - installed on the system used to start the testing -- bash -- VNF Heat Templates -- Preload JSON files - -After deploying ONAP, you need to configure ONAP with: - -- A cloud owner -- A cloud region -- A subscriber -- A service type -- A project name -- An owning entity -- A platform -- A line of business -- A cloud site - -If you're not familiar with how to configure ONAP, there are guides that use -:doc:`Robot <../../../../integration.git/docs/docs_robot>` or -`REST API calls <https://wiki.onap.org/pages/viewpage.action?pageId=25431491>`__ -to handle the setup (including adding a new OpenStack site to ONAP). - -Validation Setup -++++++++++++++++ - -On your local machine, or the system from which you will run the tests, you will need to clone the -ONAP OOM project repo: - -.. code-block:: bash - - git clone --branch 5.0.1-ONAP ssh://<username>@gerrit.onap.org:29418/oom --recurse-submodules - -VNF Preparation -+++++++++++++++ - -The VNF lifecycle validation test suite requires the VNF to be packaged into a -specific directory hierarchy, shown below. - -.. code-block:: - - vnf_folder - ├── /templates - | └── base.yaml - | └── base.env - | └── incremental_0.yaml - | └── incremental_0.env - | └── ... - ├── /preloads - | └── base_preload.json - | └── incremental_0_preload.json - | └── ... - └── vnf-details.json - -- The name for ``vnf_folder`` is free-form, and can be located anywhere on your - computer. The path to this folder will be passed to the test suite as an - argument. -- ``/templates`` should contain your VVP-compliant VNF heat templates. -- ``/preloads`` should contain a preload file for each VNF module - - - For a VNF-API preload: ``vnf-name``, ``vnf-type``, ``generic-vnf-type``, - and ``generic-vnf-name`` should be empty strings. - - For a GR-API preload: ``vnf-name``, ``vnf-type``, ``vf-module-type``, - and ``vf-module-name`` should be empty strings. - - This information will be populated at runtime by the test suite. - -- ``vnf-details`` should be a JSON file with the information that will be used - by ONAP to instantiate the VNF. The structure of ``vnf-details`` is shown below. -- VNF disk image must be uploaded and available in the OpenStack project being - managed by ONAP -- ``modules`` must contain an entry for each module of the VNF. Only one module - can be a base module. -- ``api_type`` should match the format of the preloads (``vnf_api`` - or ``gr_api``) that are provided in the package. -- The other information should match what was used to configure ONAP during the - pre-requisite section of this guide. - -.. code-block:: json - - { - "vnf_name": "The Vnf Name", - "description": "Description of the VNF", - "modules": [ - { - "filename": "base.yaml", - "isBase": "true", - "preload": "base_preload.json" - }, - { - "filename": "incremental_0.yaml", - "isBase": "false", - "preload": "incremental_0.json" - }, - ], - "api_type": "[gr_api] or [vnf_api]", - "subscriber": "<subscriber name>", - "service_type": "<service type>", - "tenant_name": "<name of tenant>", - "region_id": "<name of region>", - "cloud_owner": "<name of cloud owner>", - "project_name": "<name of project>", - "owning_entity": "<name of owning entity>", - "platform": "<name of platform>", - "line_of_business": "<name of line of business>", - "os_password": "<openstack password>" - } - -Running the HEAT VNF Test -+++++++++++++++++++++++++ - -The ONAP OOM Robot framework will run the test, using ``kubectl`` to manage the -execution. The framework will copy your VNF template files to the Robot -container required to execute the test. - -.. code-block:: bash - - cd oom/kubernetes/robot - $ ./instantiate-k8s.sh --help - ./instantiate-k8s.sh [options] - - required: - -n, --namespace <namespace> namespace that robot pod is running under. - -f, --folder <folder> path to folder containing heat templates, preloads, and vnf-details.json. - - additional options: - -p, --poll some cloud environments (like azure) have a short time out value when executing - kubectl. If your shell exits before the test suite finishes, using this option - will poll the test suite logs every 30 seconds until the test finishes. - -t, --tag <tag> robot testcase tag to execute (default is instantiate_vnf). - - This script executes the VNF instantiation robot test suite. - - It copies the VNF folder to the robot container that is part of the ONAP deployment. - - It models, distributes, and instantiates a heat-based VNF. - - It copies the logs to an output directory, and creates a tarball for upload to the OVP portal. - - -**Sample execution:** +Instructions +++++++++++++ -.. code-block:: bash - - $ ./instantiate-k8s.sh --namespace onap --folder /tmp/vnf-instantiation/examples/VNF_API/pass/multi_module/ --poll - ... - ... - ... - ... - ------------------------------------------------------------------------------ - test suites.Vnf Instantiation :: The main driver for instantiating ... | PASS | - 1 critical test, 1 passed, 0 failed - 1 test total, 1 passed, 0 failed - ============================================================================== - test suites | PASS | - 1 critical test, 1 passed, 0 failed - 1 test total, 1 passed, 0 failed - ============================================================================== - Output: /share/logs/0003_ete_instantiate_vnf/output.xml - + set +x - test suite has finished - Copying Results from pod... - /tmp/vnf-instantiation /tmp/vnf-instantiation - a log.html - a results.json - a stack_report.json - a validation-scripts.json - /tmp/vnf-instantiation - VNF test results: /tmp/vnfdata.46749/vnf_heat_results.tar.gz - -The test suite takes about 10-15 minutes for a simple VNF, and will take longer -for a more complicated VNF. +The instructions for setting up and running the validation scripts can be found +on the `VVP Test Engine GitHub site <https://github.com/onap/vvp-test-engine/tree/frankfurt/ovp_testsuite>`__. Reporting Results +++++++++++++++++ -Once the test suite is finished, it will create a directory and tarball in -``/tmp`` (the name of the directory and file is shown at the end of the stdout -of the script). There will be a ``results.json`` file in that directory -that has the ultimate outcome of the test, in the structure shown below. - -**Log Files** - -The output tar file will have 4 log files in it. - -- ``results.json``: This is high-level results file of all of the test steps, - and is consumed by the OVP portal. -- ``report.json``: This is the output of the VVP validation scripts. -- ``stack_report.json``: This is the output from querying OpenStack to validate - the Heat modules. -- ``log.html``: This is the Robot test log, and contains each execution step of - the test case. - -If the result is ``"PASS"``, that means the test suite was successful and the -tarball is ready for submission to the OVP portal. - -**results.json** - -.. code-block:: json - - { - "vnf_checksum": "afc57604a3b3b7401d5b8648328807b594d7711355a2315095ac57db4c334a50", - "build_tag": "vnf-validation-7055d30b-9a2e-4ca2-9409-499131cc86db", - "version": "2019.12", - "test_date": "2019-09-04 17:50:10.575", - "duration": 437.002, - "vnf_type": "heat", - "testcases_list": [ - { - "mandatory": "true", - "name": "onap-vvp.validate.heat", - "result": "PASS", - "objective": "onap heat template validation", - "sub_testcase": [], - "portal_key_file": "report.json" - }, - { - "mandatory": "true", - "name": "onap-vvp.lifecycle_validate.heat", - "result": "PASS", - "objective": "onap vnf lifecycle validation", - "sub_testcase": [ - { - "name": "model-and-distribute", - "result": "PASS" - }, - { - "name": "instantiation", - "result": "PASS" - } - ], - "portal_key_file": "log.html" - }, - { - "mandatory": "true", - "name": "stack_validation", - "result": "PASS", - "objective": "onap vnf openstack validation", - "sub_testcase": [], - "portal_key_file": "stack_report.json" - } - ] - } - -Examples -++++++++ - -Example VNFs and setup files have been created as a starting point for your -validation. - -* :download:`Passing Single Volume VNF using VNF API <input-VNF-API-pass-single_module.zip>` -* :download:`Failing Single Volume VNF using VNF API <input-VNF-API-fail-single_module.zip>` +Once the test suite passes, the results tarball can be submitted to the +`OPNFV Verification Program VNF Portal <https://vnf-verified.lfnetworking.org/#/>`__. Additional Resources ++++++++++++++++++++ - `ONAP VVP Project <https://wiki.onap.org/display/DW/VNF+Validation+Program+Project>`_ - .. _tosca_vnf_validation: TOSCA-based VNF Testing |