INTEGRATION
Integration Istanbul Release Notes
Repository |
Revision |
---|---|
demo |
129d553d323653461d14f248cb9e8b6f266eb5e3 |
integration |
81ef97d2e7f8bf1d50f590447725efd05ba9014b |
integration/csit |
85321a52e56422c1bb552c10387d27066decee84 |
integration/docker/onap-java11 |
ad17a4087baaefb1adf9ad0dde3029b1da7dfc7d |
integration/docker/onap-python |
a0588db586ae626b4fadcfde450039ab69ed4171 |
integration/ietf-actn-tools |
2770f33536cfb828b7416adff8eafdd0a141a0b4 |
integration/seccom |
538d7faf46a58fdf8ff857770a9e65aa9c312913 |
integration/simulators/5G-core-nf-simulator |
ef3045db013ce7826c0c6f2a3597f7a1d1033106 |
integration/simulators/nf-simulator |
f739bd6b7e48edad36966a00894dc08de0c4de21 |
integration/simulators/nf-simulator/avcn-manager |
8be57ab7523dc201a54cf4f5b0251159af1fda38 |
integration/simulators/nf-simulator/netconf-server |
2cf18a71ceccf0ae6508a4ffabd1adef90772211 |
integration/simulators/nf-simulator/pm-https-server |
3f7d8d756e0951c95b894cdbec785ed4f24052e4 |
integration/simulators/nf-simulator/ves-client |
7397ac984b69f7605e6ccb0b5ab02a74b73e818b |
integration/simulators/pnf-simulator |
20fbea02fedad63770a5a7e3958adb71992a7878 |
integration/simulators/ran-nssmf-simulator |
85ccf7677389c9bd3f43c31d220347e9ebd4d404 |
integration/simulators/ran-simulator |
a3165afba7f422e61fecdce5c5c24d8b91d8bd40 |
integration/usecases/A1-policy-enforcement |
ada51c6695b785865eea3ccea45a13026bd03518 |
integration/usecases/A1-policy-enforcement-r-apps |
3ac3f212d7127e887625a344c3e4846269a01df0 |
integration/xtesting |
a93cdb28c8e9e05f8d794556dce52bca11b59028 |
oparent |
c6044f697e3345c8b907a4f8d5f0cfa3d4069071 |
testsuite |
b4680596e5c876b12dc416c305de69371d5aedd5 |
testsuite/cds |
9f83b04496cd16ae280af1e939eff20ff7195fc6 |
testsuite/cds-mock-odl |
ae2aebead9224fb0bbbe6aaf0b782b27a501dee9 |
testsuite/cds-mock-server |
7db71adaf139e54f2186cfd19d468f5a1123835d |
testsuite/cds-mock-ssh |
a43ce8950dcc36363c406b1cc4043dc7d623c9f4 |
testsuite/oom |
f3b6c657d38373ce2aaac9a2041285b75525bfc2 |
testsuite/python-testing-utils |
1911416dec8d483ccaa320b5ed0a6fbbafe1f9c2 |
testsuite/pythonsdk-tests |
1a77bcd6eb5ab695a232004b88e5e59d9d9ff6a3 |
testsuite/robot-utils |
8b80d8c8bebad201185639807ec50110fb857638 |
Important
Creation of an Istanbul Daily CI/CD chain
Creation of Java and Python baseline images for Istanbul
Update of Seccom waivers and version recommendations
Stability tests (basic_onboard, basic_vm)
New tests (cps-healthcheck)
New repositories (see dedicated section)
Bug fixes
ONAP tests library gating tests
Quick Links:
Code changes
Integration Repo
- Release Date
2021-10-14
Version: 9.0.0 (aka Istanbul)
Issue-ID |
Description |
---|---|
INT-1979 |
E2E Network slicing - Istanbul Release Documentation |
INT-1976 |
Updating release notes for CCVPN - Intent Based Networking and Cloud Leased Line Service. |
DOC-765 |
Remove indirect deps |
DOC-765 |
Make funcparserlib + lfdocs-conf work on RTD |
DOC-765 |
Adds 2 upper-constraints to pin all the dependencies. |
REQ-910 |
Update docs for OOF-SON use case |
INT-1966 |
[DOC] Remove direct gating link |
DCAEGEN2-2692 |
Fix problem with expired certs in FTPES tests |
DCAEGEN2-2692 |
Update DFC tests to use file based conifg |
TEST-360 |
[SECURITY] Fix waiver management of check_for_nonssl_ports test |
INT-1735 |
Update Vagrantfile for tern |
INT-1601 |
Enable VID |
INT-1601 |
noheat: deploy ONAP |
INT-1601 |
noheat: deploy MetalLB, cert-manager and prometheus |
INT-1601 |
noheat: deploy helm with plugins & chartmuseum |
INT-1601 |
noheat: install Ansible kubernetes collection |
INT-1601 |
noheat: use Python 3 as Ansible interpreter |
INT-1601 |
noheat: clone OOM repository |
INT-1601 |
noheat: deploy kubernetes |
INT-1601 |
noheat: deploy Docker |
INT-1601 |
noheat deployment: use nfs0 as nexus3 bastion |
INT-1601 |
noheat deployment: setup NFS server and clients |
INT-1601 |
noheat deployment: add operator0 key to itself |
INT-1601 |
noheat deployment: loosen security groups constraints |
INT-1601 |
noheat deployment: Add groups to dynamic inventory |
INT-1601 |
Update requirements of OpenStack noheat deployment |
INT-1940 |
[CODESEARCH] Update documentation |
INT-1940 |
[CODESEARCH] Always run the ‘run_codesearch’ provisioner |
INT-1940 |
[CODESEARCH] Rework the nameserver provisioning |
INT-1940 |
[CODESEARCH] Drop ssh authentication for Gerrit endpoint |
INT-1940 |
[CODESEARCH] Rework how –git option works |
INT-1942 |
[CODESEARCH] Add option to define custom polling interval |
INT-1941 |
[CODESEARCH] Upgrade Vagrant box to utilise newest 20.04 LTS |
INT-1922 |
Standard defined schema files in VES Collector |
INT-1601 |
Set up network for in-cluster deployment stage |
INT-1601 |
Add missing dependencies and artifacts for in-cluster deployment stage |
INT-1601 |
Prepare operation machine for in-cluster deployment stage |
Onaptests (pythonsdk_tests)
Main changes:
Issue-ID |
Description |
---|---|
TEST-364 |
[TEST] Do not use VID API in tests |
INT-1978 |
[BASIC_CLAMP] Adapt tca clamp plugin |
TEST-361 |
Update HEAT-file for ubuntu20 used for basic_vm_macro test |
TEST-357 |
[TEST] Get cleanup reports from substeps also if parent step has no cleanup report |
MULTICLOUD-1377 |
Change rb-definition-version identifier |
TEST-352 |
[TEST] Use the newest ONAP SDK version |
TEST-349 |
[TEST] Basic macro stability scenario |
TEST-347 |
[TEST] Check if cds blueprintsprocessor service type is ‘NodePort’ |
TEST-341 |
[TEST] Wait for instantiated simulator longer |
TEST-341 |
[TEST] Create “pnf-macro-test-simulator” resources |
TEST-341 |
[TEST] Use nf-simulator/vesclient |
TEST-315 |
[OPTIM] Tune SDC delay before certification |
INT-1894 |
[TEST] Patch ip values in pnf-simulator event |
TEST-333 |
[TEST] Do not try to recreate already created SDC resources |
TEST-338 |
[CLAMP] Fix Policy exception in basic_clamp |
TEST-337 |
[TEST] Catch ConnectionError exception during pnf simulator startup |
TEST-336 |
[TEST] Catch k8s connection exceptions |
TEST-334 |
[CLAMP] Update clamp to allow re-play of the test |
TEST-332 |
[EXCEPTIONS] Distinguish onaptests and onapsdk exception |
Robot (Testsuite)
Version: 1.9.0
Main changes:
Issue-ID |
Description |
---|---|
TEST-364 |
[TEST] Do not use VID API in pnf-registrate test |
TEST-365 |
[HEALTHCHECK] Remove VID from healthcheck |
DCAEGEN2-2718 |
Use configMap instead of Consul to configure hv-ves |
TEST-353 |
Cmpv2 robot testcase fails when using proxy |
MULTICLOUD-1362 |
[MULTICLOUD] Exclude multicloud healthcheck tests |
OPTFRA-969 |
[OOF] Remove CMSO related test cases |
TEST-346 |
CMPv2 test case fails with error No keyword with name |
TEST-345 |
Refactor ves client and mongo db host name usage in CMPv2 test |
TEST-339 |
[POLICY] Increase Timeout for Enhanced Policy Healthcheck Test |
O-Parent
Version: 3.2.2
Issue-ID |
Description |
---|---|
INT-1948 |
Set default branch in oparent gitreview file |
INT-1948 |
Bump oparent to 3.2.2 |
INT-1948 |
Release oparent 3.2.1 Istanbul |
INT-1938 |
Upgrade depenencies for Istanbul |
POLICY-3209 |
Step version of spring to 5.3.8 |
POLICY-3206 |
Update Checkstyle to version 8.43 |
INT-1711 |
Bump oparent 3.2.1-SNAPSHOT |
INT-1711 |
Release 3.2.0 oparent |
INT-1766 |
Upgrade latest dependencies |
INT-1756 |
Bump master to 3.2.0-SNAPSHOT |
Demo Artifacts (Heat Templates)
Version: 1.9.0
Issue-ID |
Description |
---|---|
INT-1960 |
vFW CNF CDS Change Blueprint to BluePrint |
INT-1960 |
vFW CNF CDS usecase automation scripts update |
INT-1899 |
[vFW_CNF_CDS] Improve logging and fix tests typo |
INT-1899 |
[vFW_CNF_CDS] Add workflow health-check and K8sHealthCheck.kt script |
INT-1899 |
[vFW_CNF_CDS] Sort generated json files |
INT-1899 |
[vFW_CNF_CDS] Add Healthcheck automation |
INT-1899 |
[vFW_CNF_CDS] Provide Helm Tests for CNF |
INT-1899 |
[vFW_CNF_CDS] Correct Makefile target |
The demo artifacts are pushed to https://nexus.onap.org/content/repositories/releases/org/onap/demo/vnf
Use Cases and Requirements
See dedicated Istanbul Use Cases and requirements page
Maturity Testing Notes
Open JIRAs/Known issues
Integration
Testsuite
Istanbul Use Cases and Requirements
Description
This session includes use cases and functional requirements which have been officially verified in Istanbul release by the ONAP community.
For each use case or functional requirement, you can find contact names and a link to the associated documentation.
This documentation deals with
What has been implemented
Step by step instructions to deploy and execute the tests, including the links to download the related assets and resources
Known issues and workarounds
Istanbul Use Cases
Description
This session includes use cases and functional requirements which have been officially verified in Istanbul release by the ONAP community.
For each use case or functional requirement, you can find contact names and a link to the associated documentation.
This documentation deals with
What has been implemented
Step by step instructions to deploy and execute the tests, including the links to download the related assets and resources
Known issues and workarounds
Use cases
Istanbul Official Use Cases
Ref |
Summary |
Link |
Contacts |
---|---|---|---|
REQ-440 |
E2E Network Slicing |
Lin Meng |
|
REQ-429 |
5G OOF SON |
Swaminathan Seetharaman |
|
REQ-459 |
CCVPN-Transport Slicing |
Henry Yu |
Old Use Cases Tested in Istanbul
Summary |
Link |
Contacts |
---|---|---|
vFirewall CNF With CDS |
L.Rajewski, K.Banka |
|
5G Realtime PM and High Volume Stream Data Collection |
M.Przybysz |
|
5G PNF Plug and Play |
M.Przybysz K.Kuzmicki |
|
5G PNF Pre-Onboarding & Onboarding |
M.Przybysz K.Kuzmicki D.Melia A.Walshe |
|
MDONS extension |
X.Miao |
Automated Use Cases
These use cases have been run on the Daily Honolulu CI chains and are used to validate the integration of any new dockers in OOM. New tests are indicated in bold.
Tests |
Description |
Code |
Comments |
---|---|---|---|
onap-helm |
Verify Helm chart status, the test has been updated to take into account Helm3 |
||
onap-k8s |
Check common resources of the ONAP Kubernetes namespace |
kubernetes python library |
|
nodeport_check_certs |
This test list the nodeports and tries to get SSL information to evaluate the validity of the certificates (expiration and issuer) used on the nodeports |
pyopenssl, kubernetes python libraries |
|
internal_check_certs |
This test list the internal ports and tries to get SSL information to evaluate the validity of the certificates (expiration and issuer) used |
pyopenssl, kubernetes python libraries |
Tests |
Description |
Code |
Comments |
---|---|---|---|
core |
Robot healthcheck tests of the core components (AA&I, DMAAP, Portal, SDC, SDNC, SO) |
||
full |
Robot healthcheck tests for all the components, holmes healthcheck have been reintroduced |
||
healthdist |
Check the onboarding and distribution of the vFW |
||
postinstall |
Check dmaap and AA&I Design model DB tests |
||
ves-collector (new) |
Suite for checking handling events by VES Collector |
||
hv-ves |
HV-VES ‘Sunny Scenario’ Robot Framework test - message is sent to the collector and Kafka topic is checked if the message has been published. Content is decoded and checked. |
||
basic_cds |
CDS blueprint enrichment, open a nodeport on CDS then enrich CDS CBA |
||
basic_onboard |
onboard a model, subset of most of the other basic_* tests, created to perform stability testing |
||
dcaemod |
Check new DCAEmod |
||
cps-healthcheck |
Call liveness and readiness probes of the CPS module |
Tests |
Description |
Code |
Comments |
---|---|---|---|
basic_vm |
Onboard, distribute and instantiate an Openstack VM using à la carte BPMN, replaced the former basic_vm test |
||
basic_network |
Onboard, distribute and instantiate a Neutron network |
||
basic_cnf |
Onboard (new), distribute and instantiate a Kubernetes pods |
||
5gbulkpm |
5G Bulk PM Usecase functionality. The test has been significantly enhanced in Honolulu |
||
pnf-registrate |
Executes the PNF registration test cases including setup and teardown |
||
cmpv2 |
CMPv2 Usecase functionality |
||
basic_clamp |
distribute a model, enrich it with a tca blueprint, call Clamp to create a loop then instantiate it in Policy and DCAE |
||
basic_vm_macro |
Instantiate a VM using macro bpmn |
Tests |
Description |
Code |
Comments |
---|---|---|---|
root_pods |
check that pods are nor using root user or started as root |
kubectl |
|
unlimitted_pods |
check that limits are set for pods |
kubectl |
|
cis_kubernetes |
perform the k8s cis test suite (upstream src aquasecurity) |
||
nonssl_endpoints |
check that all public HTTP endpoints exposed in ONAP cluster use SSL tunnels |
kubetl, nmap |
|
http_public_endpoints |
check that there is no public http endpoints exposed in ONAP cluster |
kubectl,nmap |
|
jdpw_ports |
check that there are no internal java ports |
kubectl, procfs |
|
kube_hunter |
security suite to search k8s vulnerabilities (upstream src aquasecurity) |
||
versions |
check that Java and Python are available only in versions recommended by SECCOM. This test is long and run only in Weekly CI chains |
cerberus, kubernetes python lib, |
|
tern |
Check the component licenses within the ONAP dockers |
kubectl |
Functional Requirements
Issue key |
Summary |
Contact |
Comment |
---|---|---|---|
REQ-463 |
ONAP to support Multi Tenancy (part 2) |
Olivier Phénix |
|
REQ-457 |
Extend ORAN A1 Adapter and add A1 Policy Management |
John Keeney |
|
REQ-458 |
ONAP CNF orchestration - Enhancements |
Lukasz Rajewski |
Changes of this feature are described in vFW CNF use case |
REQ-446 |
NF Software Upgrade enhancement |
Zu Qiang |
|
REQ-433 |
ONAP/3GPP & O-RAN Alignment-Standards Defined Notifications over VES (Honolulu) |
Damian Nowak |
Description how to configure Standards Defined Notifications in VES |
REQ-432 |
IPv4/IPv6 dual stack support in ONAP (Honolulu) |
Damian Nowak |
|
REQ-431 |
CMPv2 Enhancements for R7 |
Pawel Baniewski |
cmpv2 automated test integrated in CI/CD, see automated test page |
REQ-400 |
ETSI-Alignment for Guilin and Honolulu |
Byung-Woo Jun |
Non Functional Requirements
Issue key |
Summary |
Contact |
Comment |
---|---|---|---|
REQ-453 |
Smart Operator Intent Translation in UUI based on IBN - R8 5G Slicing Support |
Dong Wang |
|
REQ-430 |
PNF Plug & Play in R8 |
Damian Nowak |
|
REQ-428 |
5G Service Modeling in R8 - Modeling Work |
Benjamin Cheung |
|
REQ-427 |
Configuration Persistence Service in R8 |
Toine Siebelink |
Deprecated Use Cases and Functional Requirements
Each ONAP release deals with lots of use cases and functional requirements. When possible, it is strongly recommended to automate the use cases. In this case Integration team can take over the maintenance part of the use case. If not automated, the use cases are fully under the responsibility of the use case team and usually valid for the release the team was involved in. However, these use cases, their artifacts remain in the repository. Anyone can give a try even if the use cases are no more supported.
This section deals with such use cases. These use cases have been part of one release but have not been tested on the last releases. They might fully deprecated or usable through minor adaptations. The entry points are the use case owners.
Use Case |
Link |
Last Valid Version |
Comments |
---|---|---|---|
vFirewall with closed loop |
Guilin |
Shall still be OK in Honolulu but not tested yet |
|
Scale Out |
Guilin |
Shall still be OK in Honolulu but not tested yet |
|
vCPE Use Case |
El Alto |
No resources to test on Frankfurt |
|
vIPsec with HPA Use Case |
El Alto |
No resources to test on Frankfurt |
|
Change Management Schedule Optimization |
El Alto |
No resources to test on Frankfurt |
|
Change Management Flexible Designer and Orchestrator |
El Alto |
No resources to test on Frankfurt |
|
vFirewall/vDNS with HPA |
Frankfurt |
No resources to test on Guilin |
|
BBS (Broadband Service) |
Frankfurt |
No resources to test on Guilin |
|
vFirewall CNF with multicloud k8s plugin |
Frankfurt |
No resources to test on Guilin |
|
EdgeXFoundry CNF with multicloud k8s plugin |
Frankfurt |
No resources to test on Guilin |
|
vCPE with Tosca |
Frankfurt |
No resources to test on Guilin |
|
E2E Automation vLB with CDS |
Frankfurt |
No resources to test on Guilin |
|
vFirewall In-Place Software Upgrade with Traffic Distribution |
Frankfurt |
APPC in maintenance mode |
|
5G Bulk PM |
Frankfurt |
No tested in Guilin |
|
5G OOF and PCI |
official doc |
Frankfurt |
No tested in Guilin |
5G NRM Network Resource Model (Configuration management) |
Frankfurt |
No tested in Guilin |
|
5G NETCONF configuration |
Frankfurt |
No tested in Guilin |
|
5G OOF SON |
official doc |
Frankfurt |
No tested in Guilin |
5G E2E Network Slicing |
Frankfurt |
No tested in Guilin |
|
PNF Software Upgrade using direct Netconf Yang interface with PNF |
Frankfurt |
No tested in Guilin |
|
PNF Software Upgrade with EM with Ansible |
Frankfurt |
No tested in Guilin |
|
PNF Software Upgrade with EM with Netconf |
Frankfurt |
No tested in Guilin |
|
PNF Software Upgrade in association to schema updates |
Frankfurt |
No tested in Guilin |
|
VSP Compliance and Validation Check within SDC |
Frankfurt |
No tested in Guilin |
|
Enable PNF software version at onboarding |
Frankfurt |
No tested in Guilin |
|
xNF communication security enhancements |
Frankfurt |
No tested in Guilin |
|
ETSI Alignment SO plugin to support SOL003 to connect to an external VNFM |
Frankfurt |
No tested in Guilin |
|
Integration of CDS as an Actor |
Frankfurt |
No tested in Guilin |
|
3rd Party Operational Domain Manager |
Frankfurt |
No tested in Guilin |
|
Configuration & persistency |
Frankfurt |
No tested in Guilin |
Integration Resources
Integration repositories
Important
The Integration project deals with lots of code repositories.
Most of the repositories are internal ONAP repositories.
├── demo
├── integration
│ ├── csit
│ ├── docker
│ │ ├── onap-java11
│ │ └── onap-python
│ ├── ietf-actn-tools
│ ├── integration
│ ├── seccom
│ ├── simulators
│ │ ├──5G-core-nf-simulator
│ │ ├──A1-policy-enforcement-simulator
│ │ ├──core-nssmf-simulator
│ │ ├──nf-simulator
│ │ │ ├──avcn-manager
│ │ │ ├──netconf-server
│ │ │ ├──pm-https-server
│ │ │ └──ves-client
│ │ ├──pnf-simulator
│ │ ├──ran-nssmf-simulator
│ │ └──ran-simulator
│ ├── usecases
│ │ ├── A1-policy-enforcement
│ │ ├── A1-policy-enforcement-r-apps
│ └── xtesting
├── oparent
│ └── cia
└── testsuite
├── cds
├── cds-mock-odl
├── cds-mock-server
├── cds-mock-ssh
├── oom
├── python-testing-utils
├── pythonsdk-tests
└── robot-utils
Please note that integration and teststuite are repositories and groups hosting several sub-repositories.
Integration
The integration repository is the historical repository. As a consequence it includes several elements in the same repository:
Deployment scripts (deployment directory)
Tests: the first non robot tests (security, vCPE,..)
Simulators/emulators (test/mocks)
Integration and use cases documentation (docs)
Tools (bootstrap, S3Ptools)
Since Frankfurt version, we created more smaller repositories especially for the use cases and the simulators. It shall help improving the maintenance of the different elements. It shall also help identifying, leveraging and adopting existing simulators rather than systematically re-inventing the wheel.
Repository |
Description |
Link |
---|---|---|
integration |
Historical main repository including documentation, simulators (e.g. mass PNF simulator), non robot tests (e.g. security tests, vCPE Tosca,..), … |
|
integration/csit |
Repository hosting some tooling to start component functional tests in Jenkins (To be deprecated in Guilin as such tests must be reinsourced by the projects) |
|
integration/docker/onap-java11 |
Java11 baseline image conformed to SECCOM recommendations |
|
integration/docker/onap-python |
Python baseline image conformed to SECCOM recommendations |
|
integration/ietf-actn-tools |
IETF ACTN tools introduced in Honolulu) |
|
integration/seccom |
Repory hosting seccom recommended versions and security test waivers |
|
integration/usecases/A1-policy-enforcement |
A1 policy enforcement introduced in Honolulu |
|
integration/usecases/A1-policy-enforcement-r-apps |
A1 policy enforcement (analyticis part) introduced in Honolulu |
|
integration/xtesting |
Repository in charge to build th xtesting dockers used in CI/CD chains |
Repository |
Description |
Link |
---|---|---|
integration/simulators/A1-policy-enforcement-simulator |
A1 Policy Enforcement Simulator |
|
integration/simulators/5G-core-nf-simulator |
5G core nf simulator |
|
integration/simulators/core-nssmf-simulator |
Core NSSMF Simulator |
|
integration/simulators/nf-simulator |
NF simulator |
|
integration/simulators/nf-simulator/avcn-manager |
NF simulator avcn manager |
|
integration/simulators/nf-simulator/netconf-server |
NF simulator netconf server |
|
integration/simulators/nf-simulator/pm-https-server |
NF simulator pm https server |
|
integration/simulators/nf-simulator/ves-client |
NF simulator ves client |
|
integration/simulators/pnf-simulator |
PNF Simulator |
|
integration/simulators/ran-simulator |
RAN simulator |
|
integration/simulators/ran-nssmf-simulator |
RAN NSSMF simulator |
Testsuite
The testsuite repository and its sub repositories deal exclusively with tests.
The testsuite repository includes all the robotframework scripts. The robot pod that can be installed as part of the ONAP cluster is built from this repository.
Several tooling repositories are associated with the robot tests (heatbridge, robot-python-testing-utils).
Repository |
Description |
Link |
---|---|---|
testsuite |
repository hosting the robot test suites |
|
testsuite/cds |
Repository hosting (standalone) CDS test suites shared by Bell Canada team, not yet integrated in CI/CD |
|
testsuite/cds-mock-odl |
needed for cds regression tests |
|
testsuite/cds-mock-server |
needed for cds regression tests |
|
testsuite/cds-mock-ssh |
needed for cds regression tests |
|
testsuite/oom |
Helm chart for robot pod (to be deprecated in Honolulu and moved back to OOM) |
|
testsuite/python-testing-utils |
Python and robot util libraries used for robot tests |
|
testsuite/pythonsdk-tests |
Repository hosting the test scenarios leveraging python-onapsdk for end to end smoke tests |
|
testsuite/robot-utils |
Repository aiming to provide a robot wrapper for python-onapsdk |
Demo
In this repository you will find any artifacts needed for demo, PoC and use cases if they do not have their own repository (mainly old use cases).
Repository |
Description |
Link |
---|---|---|
demo |
Historical repository to host use case artifacts (heat templates, json files,..) |
Oparent
Repository |
Description |
Link |
---|---|---|
oparent |
Java dependencies for JAVA projects |
|
oparent/cia |
Dockerfile optimization and best practices |
Archived repositories
Some repositories are archived and marked as “read-only” due to the lack of any activity in them.
Repository |
Description |
Link |
---|---|---|
integration/benchmark |
Benchmark project |
|
integration/devtool |
Devtool project |
|
integration/simulators/dc-simulator |
Data Center simulator |
|
integration/simulators/masspnf-simulator |
Mass PNF Simulator |
|
integration/terraform |
Terraform based alternative infrastructure installation |
|
integration/terragrunt |
Compagnon repository of terraform |
|
integration/usecases/bbs |
BBS use case introduced in Dublin and extracted from global repository in frankfurt |
|
integration/usecases/mdons |
MDONS use case introduced in Frankfurt |
|
testsuite/heatbridge |
python utils to manage the heatbridge function to enrich cloud information to AAI (deprecated) |
External repositories
Additionally, the Integration team also deals with external gitlab.com repositories.
Repository |
Description |
Link |
---|---|---|
pythononapsdk |
Python SDK for ONAP, used to create use cases |
|
xtesting-onap |
Repository in charge of the test section of the CD chains |
|
integration-view |
Repository integration hosting the itegration portal including the hosting of the web site |
The python-onapsdk has been developed outside of ONAP as gitlab provided more enhanced built-in features for this kind of development.
The xtesting-onap repository is also hosted in gitlab.com as the CD part of Integration work is based on public gitlab-ci chains.
Integration Labs
Important
The Integration team deals with several community labs:
The Windriver/Intel lab
The Azure staging lab
The Orange openlab
The DT lab
The Nokia dualstack lab
Additionally integration contributors may deal with their own lab pushing results in the integration portal (See DT http://testresults.opnfv.org/onap-integration/dt/dt.html)
Windriver/Intel lab
The Historical Community Lab
This lab is the historical lab of ONAP integration team based on OpenStack Ocata.
The figure hereafter shows all the ONAP projects consuming Windriver/Intel lab resources (April 2020).

This lab is mainly used by the projects for the development. A staging lab named SB-00 is also available.
If you want to use this lab, you need a VPN access. The procedure is described in the wiki.
Environment Installation Scripts
In addition to the official OOM scripts, Integration used to provide some extra scripts/guidelines to install your OpenStack infrastructure thanks to a heat template. See Integration heat guideline for details. These scripts were used mainly in Windriver labs but are not actively maintained.
Azure staging lab
An additional Azure staging lab has been created for Guilin. It is installed as any daily/weekly/gating labs (see CI/CD sections). Contact the Integration team to get an access.
Orange Openlab
This lab is for community use. It is always provided with the last stable version, i.e. Honolulu release during Istanbul development time.
See Orange Openlab access procedure for details.
DT lab
The DT lab reported Master daily results in addition of Istanbul daily results. Results are shared with the community in https://logs.onap.org/onap-integration/daily/onap-master-daily-dell/
Nokia lab
Nokia setup a lab to support the dual stack IPv4/IPv6 tests. Results are shared with the community in https://logs.onap.org/onap-integration/daily/onap_daily_nokia_dualstack_master/
Tests
Important
Integration is in charge of several types of tests:
Use Cases: developed by use case teams, usually complex, demonstrating high value capabilities of ONAP. They may be partially automated and even integrated in CD.
CSIT Tests: functional tests created by the projects, partially hosted in CSIT repository
Automatic Test Cases: these use cases are usually more simple and aim to validate that ONAP is working properly. These tests have been developed to validate ONAP as a software solution. In theory all the main functions shall be covered by such tests in order to have more robust CI/CD and then avoid regressions. These tests are usually developed and maintained by the integration team.
We may also indicate that when the development of the test framework python-onapsdk follows standard development quality rules and imposes the creation of unit/functional/integration tests. As an example python-onapsdk requires a unit test coverage of 98% before merging a new feature, which is far above the project criteria in SonarCloud today.
Use Cases
The use cases of the last release are described in Verified Use cases.
CSIT Tests
The CSIT tests are functional tests executed by the projects on mocked environment to validate their components. Historically it was hosted in a CSIT repository.
Integration team invited the projects to bring back such tests back to home repository for 2 main reasons:
integration cannot be a bottleneck: +2/merge from integration needed for each project
most of the tests are abandoned and not maintained when hosted in a third party repository leading to CI/CD resource waste and misleading test reporting
Automated Tests
These tests are run daily/weekly on each new gate (new patchset in OOM, CLAMP or SO). They can be in any language (bash, go, python,…), leveraging any test framework (robotframework, MTS, python-onapsdk). They are all embedded in xtesting dockers.
Hint
Automatic tests are currently divided in 4 different categories:
infrastructure-healthcheck: tests from OOM checking the ONAP namespace, certificates…
healthcheck: basic tests on components
smoke tests: end to end tests
security tests
A dashboard summarizing the status and providing the links to the test result page or the logs is automatically created at the end of the execution of the tests.

Test dashboard (Guilin version)
All the pages and artifacts are pushed to LF backend:
Daily chains: https://logs.onap.org/onap-integration/daily
Weekly chains: https://logs.onap.org/onap-integration/weekly
Gating chains: the result link is indicated in gerrit
A video has been recorded to help launching some of the automated tests on ONAP Guilin. See Running ONAP tests in Guilin Video
Infrastructure Healthcheck Tests
Tests |
Description |
Code |
Comments |
---|---|---|---|
onap-helm |
Verify Helm chart status, the test has been updated to take into account Helm3 |
||
onap-k8s |
Check common resources of the ONAP Kubernetes namespace |
kubernetes python library |
|
nodeport_check_certs |
This test list the nodeports and tries to get SSL information to evaluate the validity of the certificates (expiration and issuer) used on the nodeports |
pyopenssl, kubernetes python libraries |
|
internal_check_certs |
This test list the internal ports and tries to get SSL information to evaluate the validity of the certificates (expiration and issuer) used |
pyopenssl, kubernetes python libraries |
See Infrastructure Healthcheck README to adapt then run infrastructure healthcheck tests on your own system.
Please note that the onap-k8s is run 2 times in CD chains. It is run just after the installation (onap-k8s) and at the end of the test execution (onap-k8s-teardown) in order to collect the logs of the different components during the test execution.

Healthcheck Tests
Tests |
Description |
Code |
Comments |
---|---|---|---|
core |
Robot healthcheck tests of the core components (AA&I, DMAAP, Portal, SDC, SDNC, SO) |
||
full |
Robot healthcheck tests for all the components, holmes healthcheck have been reintroduced |
||
healthdist |
Check the onboarding and distribution of the vFW |
||
postinstall |
Check dmaap and AA&I Design model DB tests |
||
ves-collector (new) |
Suite for checking handling events by VES Collector |
||
hv-ves |
HV-VES ‘Sunny Scenario’ Robot Framework test - message is sent to the collector and Kafka topic is checked if the message has been published. Content is decoded and checked. |
||
basic_cds |
CDS blueprint enrichment, open a nodeport on CDS then enrich CDS CBA |
||
basic_onboard |
onboard a model, subset of most of the other basic_* tests, created to perform stability testing |
||
dcaemod |
Check new DCAEmod |
||
cps-healthcheck |
Call liveness and readiness probes of the CPS module |
See Healthcheck README to adapt then run healthcheck tests on your own system.
Smoke Tests
Tests |
Description |
Code |
Comments |
---|---|---|---|
basic_vm |
Onboard, distribute and instantiate an Openstack VM using à la carte BPMN, replaced the former basic_vm test |
||
basic_network |
Onboard, distribute and instantiate a Neutron network |
||
basic_cnf |
Onboard (new), distribute and instantiate a Kubernetes pods |
||
5gbulkpm |
5G Bulk PM Usecase functionality. The test has been significantly enhanced in Honolulu |
||
pnf-registrate |
Executes the PNF registration test cases including setup and teardown |
||
cmpv2 |
CMPv2 Usecase functionality |
||
basic_clamp |
distribute a model, enrich it with a tca blueprint, call Clamp to create a loop then instantiate it in Policy and DCAE |
||
basic_vm_macro |
Instantiate a VM using macro bpmn |
There are 2 main families of smoke tests:
RobotFramework based tests, usually run from inside the cluster as a k8s job
Pythonsdk based tests. These tests (also known as onaptests) are consuming several SDKs: the Openstack and Kubernetes SDK for the management of the cloud resources and the python ONAP SDK for the interactions with ONAP
To launch the the robot based tests, please see Robot smoke test README Standard Robot html pages are generated. See Robot page.
To launch the pythonsdk based tests, please see Python smoke test README
An html page is generated by the pythonsdk-test tests.

Security Tests
Tests |
Description |
Code |
Comments |
---|---|---|---|
root_pods |
check that pods are nor using root user or started as root |
kubectl |
|
unlimitted_pods |
check that limits are set for pods |
kubectl |
|
cis_kubernetes |
perform the k8s cis test suite (upstream src aquasecurity) |
||
nonssl_endpoints |
check that all public HTTP endpoints exposed in ONAP cluster use SSL tunnels |
kubetl, nmap |
|
http_public_endpoints |
check that there is no public http endpoints exposed in ONAP cluster |
kubectl,nmap |
|
jdpw_ports |
check that there are no internal java ports |
kubectl, procfs |
|
kube_hunter |
security suite to search k8s vulnerabilities (upstream src aquasecurity) |
||
versions |
check that Java and Python are available only in versions recommended by SECCOM. This test is long and run only in Weekly CI chains |
cerberus, kubernetes python lib, |
|
tern |
Check the component licenses within the ONAP dockers |
kubectl |
See Security test README to adapt then run the security tests on your own system.
Note for security tests, integration team follows SECCOM recommendations and apply waivers granted by SECCOM if needed through xfail lists.
Stability/Resiliency tests
Ensuring the stability of ONAP is one of the missions of the Integration team. CI chains and stability tests are performed to help stabilising the release. See Integration stability tests for details.
CI/CD
Important
Integration team deals with 2 different CI/CD systems.
Jenkins CI/CD, CI managed by LF IT and CD by Integration team
GitLab-ci managed by Integration and OOM team
Continuous Integration
The CI part provides the following features:
Repository verification (format of the INFO.yaml)
Patchset verification thanks to json/yaml/python/go/rst/md linters. These Jenkins verification jobs are hosted in the ci-management repository. They can vote +1/-1 on patchset submission. Integration team systematically enables linters on any new repository
Docker build: Integration team builds testsuite dockers and xtesting dockers. These dockers are built then pushed to Nexus through a jjb also hosted in the ci-management repository.
The different verification chains are defined in https://jenkins.onap.org/:
testsuite: https://jenkins.onap.org/view/testsuite/
integration: https://jenkins.onap.org/view/integration/
integration-terragrunt: https://jenkins.onap.org/view/integration-terragrunt/
testsuite-robot-utils: https://jenkins.onap.org/view/testsuite-robot-utils/
The Jenkins jobs (jjb) are hosted in https://git.onap.org/ci-management/.
Continuous Deployment
There are 2 Continuous Deployment architectures.
Jenkins CD on Windriver/Intel lab
The CD part on Windriver/Intel is based on Jenkins.
It is based on a standalone VM hosting a Jenkins server. The credentials of this VM as well as the Jenkins server have been provided to integration committers.
Several jobs can be triggered from this Jenkins interface. Historically several chains were run daily (staging/release) but due to performance issues, they have all been stopped. Only SB-00 has been kept for use case support. The Jenkins interface was however used to launch the installation of SB-00.
This Jenkins script is leveraging resources available in OOM and integration repositories.
The replacement of this CD by a GitLab runner based CD to unify the CD management was planned, but finalizing the operation in Guilin was not possible due to performance issues.
GitLab CD
This CD is leveraging public gitlab-ci mechanism and used to deploy several ONAP labs:
Daily Master: daily run using OOM Master
Daily Guilin: daily run using the last stable version during Honolulu Release processing
Daily Honolulu: daily run setup at RC0 (candidate dockers available for integration)
Daily Istanbul: daily run setup at RC0 (candidate dockers available for integration)
Weekly Master: run once a week with longer tests
Weekly Istanbul: run once a week with longer tests
Gating: run on OOM, clamp or SO patchset submission. It means a full ONAP deployment on demand based on new patchset declared in gerrit.
See Integration CI guideline for details.
Simulators
Simulators are regularly created for use cases. The goal of this section is to:
Highlight the existing Simulators
Provide recommendations when starting developing a new simulator
Important
Before developing a new simulator, check that it does not exist…and refactor/contribute to existing simulators rather than recreating new ones.
Existing simulators
Name |
Description |
Link |
Contacts |
---|---|---|---|
NF Simulator |
Evolution of the pnf simulator, the Network service simulator |
K.Kuzmicki |
|
A1 Policy Enforcement Simulator |
Simulator that supports the A1-P OSC_2.1.0 interface and also provides internal API to manage the RAN elements (Cells, Ues) and allows to customize and send VES Events |
Krystian Kędroń |
|
Mass PNF Simulator |
Mimic the PNF for benchmark purposes |
Tamas Bakai |
|
Ran simulator |
RAN-SIM is a Radio Access Network Simulator, it is used to simulate the various functionalities of an eNodeB |
Priyadharshini B |
|
DC simulator |
Data Center simulator |
Xin Miao |
Recommendations
The simulator code
We recommend to create a dedicated repository (ask Integration team).
Repository |
Description |
Link |
---|---|---|
integration/simulators/A1-policy-enforcement-simulator |
A1 Policy Enforcement Simulator |
|
integration/simulators/5G-core-nf-simulator |
5G core nf simulator |
|
integration/simulators/core-nssmf-simulator |
Core NSSMF Simulator |
|
integration/simulators/nf-simulator |
NF simulator |
|
integration/simulators/nf-simulator/avcn-manager |
NF simulator avcn manager |
|
integration/simulators/nf-simulator/netconf-server |
NF simulator netconf server |
|
integration/simulators/nf-simulator/pm-https-server |
NF simulator pm https server |
|
integration/simulators/nf-simulator/ves-client |
NF simulator ves client |
|
integration/simulators/pnf-simulator |
PNF Simulator |
|
integration/simulators/ran-simulator |
RAN simulator |
|
integration/simulators/ran-nssmf-simulator |
RAN NSSMF simulator |
Dockerization
From this repository, create a jenkins job to automatically build the dockers.
Helm Chart
It is recommended to create a helm chart in order to run the simulators.
Wrapper for simulators
1. In order to deploy the Helm release with a simulator, place a YAML file describing the Helm release in src/onaptests/templates/helm_charts.
The structure of the YAML file should be like in the example below. Dependencies contain all the charts that need to be pulled.
# Helm release information api_version: # API_VERSION app_version: # APP_VERSION chart_name: # SIMULATOR_NAME version: # CHART_VERSION # Helm charts that need to be pulled dependencies: - name: # SIMULATOR_NAME version: # CHART_VERSION repository: # URL local_repo_name: # REPO_NAME
Install the Helm release:
from onaptests.steps.wrapper.helm_charts import HelmChartStep chart = HelmChartStep( cleanup = BOOLEAN, chart_info_file = YAML_FILE_NAME # name, not the path ) chart.execute()
Start the simulator via an API call:
start = SimulatorStartStep( cleanup = BOOLEAN, https = BOOLEAN, host = HOSTNAME, port = PORT, endpoint = START_ENDPOINT, # if applicable method = REQUEST_METHOD, # GET, POST etc. data = PAYLOAD # {"json": {...}, ...} ) start.execute()
Undeploy the Helm release:
chart.cleanup()
Tooling
Important
Integration team deals with lots of tools to complete its missions. The goal of this section is to highlight some of them and redirect to their official documentation. These tools can be used for CI/CD, Testing or platform management.
Upstream tools are privileged but when needed specific developments can be done.
Please note that none of these tools are imposed to test developers, in other words, any kind of test is accepted and can be integrated, the list of tools is just indicative.
Integration Project
Integration portal
A portal is built to report the status of the different labs collaborating in Integration, see http://testresults.opnfv.org/onap-integration/

The code of this web site is shared on a public gitlab project.
Communication channels
The main communication channel for real time support is the official ONAP Slack #integration-team chan (https://onapproject.slack.com/).
You can also send a mail to onap-discuss AT lists.onap.org with [ONAP] [Integration] prefix in the title.
Testing
Robotframework
robotframework is a well known test framework. Lots of ONAP tests are leveraging this framework. This framework is fully developed upstream even if some extensions (python modules) were created especially to deal with OpenStack (see python-testing-utils project).
Some GUI tests (using Robotframework Selenium extension) had been initiated but not maintained, as a consequence they are not integrated in CI/CD.
Python-onapsdk
The Openstack and Kubernetes python SDK are references widely adopted by the developers and the industry. Developing a python ONAP SDK aimed to follow the examples of the infrastructure SDK with the same expectations in term of code quality. After an evaluation of the CLI project (JAVA SDK re-exposing primitives through python system calls), and a first prototype (onap_tests used until Frankfurt for end to end tests) it was decided to develop a new python SDK.
This SDK has been developed in gitlab.com to benefit from the numerous built-in options offered by gitlab and ensure the best possible code quality.
The project is fully Open Source, released under the Apache v2 license. Integration committers are invited to join the project. The main maintainers are ONAP integration and OOM committers.
Any new feature shall respect the code quality criteria:
unit test coverage > 98%
functional tests (several components mock objects have been developed)
Attention
Python-onapsdk is a SDK, it means it is a tool allowing to communicate with ONAP. It is a middleware that can be used by test projects but it is NOT a test.
A compagnon project has been created in ONAP: pythonsdk-tests.
The pythonsdk-test project defines tests based on python-onapsdk.
The tests are hosted in this repository. They consume the different needed SDK: python-onapsdk but also the kubernetes, the OpenStack SDK and or any needed additional middlewares. The project developed the notion of steps that can been combined and reorganized as need to design a test. This project interacts with ONAP only through the python-onapsdk library. The tests are described in The Integration Test page.
The available steps are:
[CLAMP] OnboardClampStep: Onboard a SDC including a TCA blueprint
[CDS] ExposeCDSBlueprintprocessorNodePortStep: expose CDS blueprint nodeport (Guilin workaround)
[CDS] BootstrapBlueprintprocessor: Bootstrap a blueprint processor
[CDS] DataDictionaryUploadStep: Upload a Data Dictionary to CDS
[CDZ] CbaEnrichStep: Enrich CBA
[K8S plugin] K8SProfileStep: Create K8S profile
[SO] YamlTemplateVfModuleAlaCarteInstantiateStep: Instantiate VF module described in YAML using SO a’la carte method
[SO] YamlTemplateVlAlaCarteInstantiateStep: Instantiate network link described in YAML using SO a’la carte method.
[SO] YamlTemplateVfModuleAlaCarteInstantiateStep: Instantiate VF module described in YAML using SO a’la carte method
[SO] YamlTemplateVnfAlaCarteInstantiateStep: Instantiate vnf described in YAML using SO a’la carte method
[SO] YamlTemplateServiceAlaCarteInstantiateStep: Instantiate service described in YAML using SO a’la carte method
[AAI] ConnectServiceSubToCloudRegionStep: Connect service subscription with cloud region
[AAI] CustomerServiceSubscriptionCreateStep: Create customer’s service subscription
[AAI] CustomerCreateStep: Create customer
[AAI] LinkCloudRegionToComplexStep: Connect cloud region with complex
[AAI] ComplexCreateStep: Create complex
[AAI] RegisterCloudRegionStep: Register cloud region
[SDC] YamlTemplateServiceOnboardStep: Onboard service described in YAML file in SDC
[SDC] YamlTemplateVfOnboardStep: Onboard vf described in YAML file in SDC
[SDC] YamlTemplateVspOnboardStep: Onboard vsp described in YAML file in SDC
[SDC] VendorOnboardStep: Onboard vendor in SDC
You can reuse the existing steps to compose your test and/or code your own step if it is not supported yet.
The procedure to start a test is described in pythonsdk-test README
CI/CD
The CI/CD is key for integration. It consolidates the trustability in the solution by the automated verification of the deployment and the execution of tests. Integration tests complete the component tests (unit and functional known as CSIT tests).
As the tests can be very heterogeneous (framework, language, outputs), the integration team integrates the tests in simple isolated execution context based on docker called xtesting dockers.
Xtesting is a python library harmonizing the way to setup, run, teardown, manage the artifacts, manage the reporting of the tests (automatic push of the results on a DB backend). It was developed by OPNFV functest project. This python library is included in an alpine docker and contains the needed tests, their associated libraries as well as a testcases.yaml listing these tests. These docker files are built on any change in the integration/xtesting repository and daily to take into account the upstream changes.
The integration project manages 5 xtesting dockers, see Integration Test page.
Important
xtesting is a CI/CD framework, neither a test nor a test framework
Testers can provide tests independently from xtesting. However to be part of the CI/CD chains, an integration of the test in xtesting will be required.
The configuration files are provided as volumes and defined in each docker. The use of this CI/CD abstraction for the tests simplify the integration of the test suites in any CI/CD systems and harmonize the inputs and the outputs.
The official documentation can be found on xtesting official web site
The integration team shares a Test Result Database with the OPNFV project. All the test results of the CD are automatically pushed to this database. It is possible to retrieve the results through the Test API associated with this test Database.
The following information are available:
List of pods allowed to push results: http://testresults.opnfv.org/onap/api/v1/pods
List of projects that declared test cases for CI/CD: http://testresults.opnfv.org/onap/api/v1/projects
List of integration test cases: http://testresults.opnfv.org/onap/api/v1/projects/integration/cases
List of security test cases: http://testresults.opnfv.org/onap/api/v1/projects/security/cases
Results with lots of possible filter combinations: http://testresults.opnfv.org/onap/api/v1/results?last=3
It is possible to get results according to several criteria (version, case name, lab, period, last, CI id,..) See the OPNFV test API documentation.
Any company running ONAP Integration tests can be referenced to push their results to this database. This Database is hosted on a LF OPNFV server. Results are backuped daily. Integration committers can have access to this server.
VNF demo artifacts are hosted in the demo repositories and published in https://nexus.onap.org/content/repositories/releases/org/onap/demo/vnf/.
Integration Missions
Important
The Integration project is in charge of:
Providing testing environment
Supporting the use case teams
Managing ONAP CI/CD chains
Developing tests
Providing baseline images
Validating the ONAP releases
The different activities may be summarized as follows (proportions are indicative):
Community support
Lab support
Use case support
Test development
Management of daily/weekly CI chains
Build baseline images
Automate tests
Validate the release
For each release, the integration team provides the following artifacts:
A daily CI chain corresponding to the release
Staging labs to perform the pairwise testing (when not automated) and support the use case teams
Baseline Java and Python images
oparent library to manage Java dependencies
Test suites and tools to check the various ONAP components
Use-case documentation and artifacts
A testsuite docker included in the ONAP cluster to execute the robot based tests
Configuration files (scripts, Heat templates, CSAR files) to help installing and testing ONAP
Wiki release follow-up tables (blocking points, docker versions,…)
Please see the integration wiki page for details.