Integration & Testing
OPNFV will use many upstream open source projects to create the reference platform. All these projects are developed and tested independently and in many cases, have use cases of other projects in mind. Therefore it is to be expected that integration of these projects probably will unveil some gaps in functionality, since testing the OPNFV use cases needs the interworking of many upstream projects. Thus this integration work will bring major benefit to the community.
Therefore the goal of the CI project – Octopus – is to provide integration of a set of upstream projects. That is it will provide development environment with automated test and verification as a continuous integration environment, supporting both, the parallel evolutionary work in the upstream projects, and the improvement of NFV support in this reference platform.
The CI project provides the mechanism to build and verify OPNFV and upstream software as reference platforms based on the platform definition projects. The project will integrate stable versions of upstream projects and any necessary patches, and from there build and verify a reference platform for OPNFV.
The following list shows all necessary tasks for creation of the final environment and gives some idea how the work will be approached. More details need to be worked out during the project lifetime; the appendix provides some more details that are already available.
Octopus will create the complete basic development and build environment for OPNFV and start the periodic execution of the automatic build and basic Jenkins verification.
It will pull definition, configuration and packaging files from OPNFV or upstream projects' repositories and produce the OPNFV artifacts for deploying on bare metal datacenters as well as virtual environements.
Octopus will invoke the basic Jenkins test and verification environment on every relevant change to the project source. It will also be able to invoke more involved testing suites form the integration and verification project
Documentation regarding the developer processes will be captured and maintained on wiki.opnfv.org.
Documentation of CI processes and functionality will be maintained in the CI project repository for CI developers and maintainers
Octopus leverages the Bootstrap/Get-started project.
Octopus will pull from both upstream communities and OPNFV projects. These dependencies will be defined in detail by the projects providing the relevant information regarding the way those projects and sources will be built.
Octopus will also utilise test and verification artifacts from the test and verification projects to invoke the automated build and release test cases.
The first step of integration has no dependency on other OPNFV projects. However it depends on decisions that will be made outside the project, like for example the selection of Linux distributions, which may need TSC approval.
Test and verification in later project stages is dependent on the test objects provided by VNF deployment test cases project.
Octopus Continuous integration in later project stages is dependent on the Simultaneous Release project.
Octopus will develop and maintain the automated integration build and test environment. It will also execute the periodic builds of the defined OPNFV reference platforms.