Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The purpose of the CIS is to provide a means to test and monitor the the health of ASC master. This in turn will help in stabilising Cloud-platform

which is built out of ACS master.

 

References

https://cwiki.apache.org/confluence/display/CLOUDSTACK/Marvin+-+Testing+with+Python

...

  • CI : Continuos integration.

  • CS: CloudStack

  • CIS: Continuos Integration system.

  • MTF: Marvin test framework.

  • MCF: Marvin config file.

  • MS: Management server.

Use cases

The CIS is required to  

  • Create a fully working test bed, run tests and publish the results.

  • Provide a means to access test logs for debugging purposes.

  • Dynamically pull newly added test cases into the CI runs.

  • Provide a mens to separate tests that can be run using CS simulator. 

  • Proved self service to create on demand test setups and run tests.

Functional requirements

We have limited the scope of the CI to address the immediate needs. Once we are able to reach these goals, we will add means to provide self service and shift to dynamic resource allocation.

  1. CIS will create a test setup comprising of single management server supporting one hypervisor at a time. It will be a development environment. Currently we will not support clustered management server setups.
  2. On successful creation of MS VM it will add it to the database and try to reuse it on subsequent test runs. The reuse of MS VM means we will not create new VM and install dev tools every time, we will always tear down the old CS setup and create a new one with a new build form the latest code base. 
  3. CIS will work based on a static configuration files added to its database, the configuration file will be in accordance with the CS (marvin test framework) MTF. It may contain additional details that are not required by MTF but are used by CIS system.
  4. As of now we do not pick the resources dynamically and generate the MCF. It has to be created manually and  added to the CIS database. There is no validation of the MCF agains other MCFs that may be present in the CIS database. we have to make sure that we do not add overlapping resources in MCF files.
  5. CIS will use only open source tools to function. Currently we will use Jenkins, Cobbler and Puppet to create CS test beds.
  6. It will run tests and publish the results in mail and archive the test results and logs on a nfs server.

...

  1. CIS is meant only to run CI to stabilise ACS master, It is not meant to offer testing services to developers for now

  2. CIS test resources and hardware will not be used by any other system or person.

...

  1. Log into Jenkins, create a  Automation CI view and add all the CIS related jobs to this view. The CIS related jobs can be crated from the xml file located in the CIS source code.
  2. Configure the Automation CI trigger job to schedule the CI runs. This job will trigger the CI run jobs on each of the hypervisor.
  3. There is a job associated to run the CI on each type of hypervisor. Add the default values of build parameters and save the config.The default parameters will be  used to for the daily automated CI runs.
  4. Configure the test executor job by specifiying the number of test that can be run in parallel.
  5. Once all the jobs are in place, Enable these jobs. CIS system should now be completely operational.  

Troubleshooting



Design

...

 

Image RemovedImage Added

 

Component Description

...

  Jenkins, puppet, cobbler, marvin, python virtual environment.

Resources required.

Each test run needs at least

  • A xenserver to host the management server,driverVM, NFs storage etc.
  • Three IPMI enabled servers  which will be used as hosts in cloudstack setup.
  • couple of vlans (in case of advanced network) and ip ranges.

References:

CI Design Doc

Cloudstack - Continuous Integration