User Tools

Site Tools


continuous_integration_ci

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
continuous_integration_ci [2014/10/17 16:24]
Ulrich Kleber [Scope:] and Rest of page added
continuous_integration_ci [2014/11/13 13:57] (current)
Ulrich Kleber [Appendix:]
Line 10: Line 10:
  
 ==== Project description:​ ==== ==== Project description:​ ====
 +
 +=== Problem Statement: ===
 +
 +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, not 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 quickly provide prototype integration of a first set of upstream projects. Step by step this later will be evolved to a full blown 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.
  
 === Summary === === Summary ===
-The CI project provides the starting point for all OPNFV development activities. It starts by integrating stable versions of basic upstream projects, and from there creates a full development environment for OPNFV including automatic builds and basic verification. 
  
-  ​* Select a basic set of upstream projects to be integrated in the first step +The CI project provides the starting point for all OPNFV development activities. It starts by integrating stable versions of basic upstream projects, and from there creates a full development environment for OPNFV including automatic builds and basic verification. This is a very complex task and therefore needs a step by step approach. At the same time it is urgent to have a basic environment in place very soon.  
-  * Select a basic hardware definition for the build servers and for the basic verification + 
-  * Select the tools for code repository, build processes and automation +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. 
-  * Define the image formats for code deployment in the test environment + 
-  * Define the branching rules for the code repositories +  * **Select a basic set of upstream projects to be integrated in the first step** \\ //we will start with the list from the F2F (see below) and adjust if necessary// 
-  * Provide the code repositories +  ​* **Select a basic hardware definition for the build servers and for the basic verification** \\ //Linux Foundation provides the initial environment//​ 
-  * Integrate the basic set of upstream projects  +  ​* **Select the tools for code repository, build processes and automation** \\ //Linux Foundation provides the initial tool environment//​ 
-  * Implement build process for developers +  ​* **Define the image formats for code deployment in the test environment** \\ //Start with a quick solution and later decide for a format allowing easy deployment for developers and automated verification//​ 
-  * Implement automatic build process on central servers +  ​* **Define the branching rules for the code repositories** \\ //this will be defined by TSC in the development process and used here// 
-  * Provide or implement basic test objects (VNFs and VNFM, NFVO)  +  ​* **Provide the code repositories** \\ //part of Linux Foundation support// 
-  * Provide necessary OPNFV glue code to integrate different upstream ​project ​codes. ​ +  ​* **Integrate the basic set of upstream projects** \\ //Main part of the first step of the project// 
-  * Implement automatic process for basic verification of the build images on central servers +  ​* **Provide necessary OPNFV glue code to integrate different upstream project codes** \\ //necessary in main part of the project// 
-  * Implement the process for continuous upgrade to newer versions of upstream projects +  * **Implement build process for developers** \\ //start off with basic build tools and adjust step by step. If necessary, a separate project for build environment can be established//​ 
-  * Implement the process for adding more upstream projects to the automated build and verification +  ​* **Implement automatic build process on central servers** \\ //as before, start with basic tools and adjust step by step or via separate project// 
-  * Execute the continuous automated builds and basic verification+  ​* **Provide or implement basic test objects** (VNFs and VNFM, NFVO) \\ //will be done in project ​"VNF deployment test cases"//​ 
 +  ​* **Implement automatic process for basic verification of the build images on central servers** \\ //as above, start with basic tools and adjust step by step or via separate project// 
 +  ​* **Implement the process for continuous upgrade to newer versions of upstream projects** \\ //cover by project “Simultaneous Release” and development process// 
 +  ​* **Implement the process for adding more upstream projects to the automated build and verification** \\ //part of later stages of the project// 
 +  ​* **Execute the continuous automated builds and basic verification** \\ //part of later stages of the project// 
 + 
 +The above topics interlink to each other very closely. 
 + 
 +=== Basic set of upstream projects === 
 + 
 +The initial set was already identified during face-to-face on October 2, 2014: 
 + 
 +  * Open Stack - subprojects to be selected  
 +  * KVM / QEMU / libvirt (Support under Nova) 
 +  * Open Daylight (Support along with Neutron) 
 +  * Linux Kernel ( Supported Compute nodes) 
 +  * OVS (accelerated version using DPDK user space patches) 
 +  * CEPH - block, data, image… \\ //can start with Cinder and progress to Ceph as it evolves// 
 + 
 +The initial set is meant to be as small as possible, so the initial environment can be provided early. 
 + 
 +Of course together with any of those projects, also all dependencies,​ e.g. MySQL (or some other SQL DBs) as the database, RabbitMQ (or some other MQs) as the message bus, etc.. must be included.  
 + 
 +==== Scope: ==== 
 + 
 +Octopus will create the complete basic development and build environment for OPNFV and start the periodic execution of the automatic build and basic verification. It will provide the processes for development,​ for upgrade to newer versions of upstream projects and for adding more components or upstream projects.  
 + 
 +Octopus will not decide when and which upstream project to be added to OPNFV. 
 + 
 +==== Testability:​ ==== 
 + 
 +Octopus will provide the basic test and verification environment. Details will be specified later. 
 +==== Documentation:​ ==== 
 + 
 +The whole environment as created by Octopus will be well documented with user guides for all developers. For any specifics in the upstream projects, it will refer to the documentation in the upstream project. 
 + 
 +Require Management API for OPNFV Platform and Tools for OPNFV CLI/GUI. 
 + 
 +==== Dependencies:​ ==== 
 + 
 +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. 
 + 
 +Continuous integration in later project stages is dependent on the Simultaneous Release project. 
 + 
 +==== Committers and Contributors:​ ==== 
 + 
 +== Companies/​affiliations committed to the project and willing to provide substantial resources: == 
 + 
 +  * Huawei, contacts: Uli Kleber (ulrich.kleber ad huawei.com),​ Prakash Ramchandran (prakash.ramchandran ad huawei.com) 
 +  * Cisco, contact: Ian Wells (iawells ad cisco.com) 
 +  * RedHat, contact: Dave Neary (dneary ad redhat.com 
 +  * HP, contact: Dave Lenrow (david.lenrow ad hp.com) 
 +  * .. 
 + 
 +== Maintainers:​ == 
 + 
 +== Committers: == 
 + 
 +==== Planned deliverables:​ ==== 
 + 
 +The first step will be to generate a build of all the upstream components.  
 +==== Proposed Release Schedule: ==== 
 + 
 +  * 1st Alfa release 6 months from start date  
 +  * to be dependent on start version like Juno on Openstack in Nov 1st week as one to launch. 
 + 
 + 
 + 
 + 
 +==== Appendix: ====
  
-The above topics interlink to each other very closely, so they are bundled in a single ​project.+This project will be executed using Agile Development methodology. This Appendix provides exemplary tasks and some other details at project execution for informational purpose. Those exemplary tasks and details ​are living content, and subject to further evolution during ​project ​lifetime. Jira tool will be used to further develop the details.
  
 === Basic set of upstream projects === === Basic set of upstream projects ===
Line 75: Line 151:
  
   * Central build servers for the automatic builds   * Central build servers for the automatic builds
-  * Recommendations for developers+  * Recommendations for developers ​how to build their hardware and software environment
  
 === Tools for Code Repository, Build Processes and Automation === === Tools for Code Repository, Build Processes and Automation ===
Line 161: Line 237:
  
 Octopus covers both the initial creation of the development and build environment,​ as well as maintaining the environment and executing the automated builds and tests. Octopus covers both the initial creation of the development and build environment,​ as well as maintaining the environment and executing the automated builds and tests.
- 
-==== Scope: ==== 
- 
-Octopus will create the complete basic development and build environment for OPNFV and start the periodic execution of the automatic build and basic verification. It will provide the processes for development,​ for upgrade to newer versions of upstream projects and for adding more components or upstream projects. ​ 
- 
-Octopus will not decide when and which upstream project to be added to OPNFV. 
- 
-==== Testability:​ ==== 
-(optional, Project Categories: Integration & Testing) 
- 
-not applicable 
- 
-==== Documentation:​ ==== 
-(optional, Project Categories: Documention) 
- 
-The whole environment as created by Octopus will be well documented with user guides for all developers. For any specifics in the upstream projects, it will refer to the documentation in the upstream project. 
- 
-Require Management API for OPNFV Platform and Tools for OPNFV CLI/GUI. 
- 
-==== Dependencies:​ ==== 
- 
-None, except on upstream projects. ​ 
- 
-Octopus is the initial project others will depend on. 
- 
-==== Committers and Contributors:​ ==== 
-== Companies/​affiliations committed to the project and willing to provide substantial resources: == 
-  * Huawei (10), contacts: Uli Kleber (ulrich.kleber ad huawei.com),​ Prakash Ramchandran (p.ramchandran ad huawei.com) 
-  * Cisco, contact: Ian Wells (iawells ad cisco.com) 
-  * RedHat 
-  * .. 
- 
-== Maintainers:​ == 
- 
-== Committers: == 
- 
-==== Planned deliverables:​ ==== 
- 
-See project description 
- 
-==== Proposed Release Schedule: ==== 
- 
-  * 1st Alfa release 6 months from start date  
-  * to be dependent on start version like Juno on Openstack in Nov 1st week as one to launch. 
- 
  
  
continuous_integration_ci.1413563055.txt.gz · Last modified: 2014/10/17 16:24 by Ulrich Kleber