"My company has a xyz feature for CloudStack. Can someone help me test it?"
This page is a proposal for creating a unified design for QA testing and automation. It should be looked at as a blueprint to follow for a QA set-up.
Any comments / suggestions will be much appreciated.
It is important to note that keeping it simple and easy to replicate is one of the main goals of this exercise. Thus, it may not cater to every possible use case.
The code is based on Prasanna's effort on similar lines (big thanks to Prasanna!)
Every single set-up would contain
At the heart is a VM that serves as a Jenkins slave, and contains a set of tools to allow one to run QA tests on a clean environment. These tools, hosted on the VM (lets call it "Provisioner"), are :
Tool / Software |
Use |
Comments |
|---|---|---|
Cobbler |
Provision baremetal hosts with hypervisor |
Cobbler integrates well with Puppet and provides useful helper scripts |
Puppet |
Configure management server with mysql etc |
|
DNSMASQ |
DHCP + DNS |
Used to provision hosts |
Squid |
HTTP Proxy |
Testing infrastructure uses isolated network. Some tasks, like yum install, need internet access |
NFS Server |
As NFS secondary storage |
|
ipmitool |
Interact with baremetal machines through IPMI network |
|
Marvin |
Deployment and testing framework for CloudStack |
|
The whole code is Python based making it easier to package as needed in future.