More Related Content Similar to XDS15: Project Raisin (20) More from Stefano Stabellini (17) XDS15: Project Raisin2. © 2015 Citrix | Confidential
xen-unstable
• Tries to be everything to everybody:
– Xen hypervisor repository
– Xen tools repository
– builds required third party components:
QEMU, SeaBIOS
– builds optional third party components:
OVMF, qemu-trad, pvgrub
– builds stubdoms: minios, newlib, qemu-
traditional, etc
3. © 2015 Citrix | Confidential
xen-unstable: shortcomings
• Cloning and building external projects make distro
packagers unhappy
• Very limited as a build system for external components
• Conflicting requirements
6. © 2015 Citrix | Confidential
DevStack
an opinionated script to quickly create an OpenStack dev environment
“DevStack's mission is to provide and maintain tools used
for the installation of the central OpenStack services from
source (git repository master, or specific branches) suitable
for development and operational testing.
It also demonstrates and documents examples of
configuring and running services as well as command line
client usage.”
7. © 2015 Citrix | Confidential
Raisin - Raise Xen!
• a set of bash scripts to build, install and configure Xen and
any other Xen related components from source
• extremely simple to use
• easy to read, helps documenting best practices
• easy to extends and add more components to it
8. © 2015 Citrix | Confidential
Raisin - Raise Xen!
• With Raisin we can remove third party builds from
xen-unstable, like QEMU and SeaBIOS
• Users will find a single place where to build everything they
need
9. © 2015 Citrix | Confidential
Raisin - configuration
MAKE="make -j2"
PREFIX=/usr
DESTDIR=dist
ENABLED_COMPONENTS="seabios ovmf xen qemu qemu_traditional
grub libvirt"
XEN_URL="git://xenbits.xen.org/xen.git"
QEMU_URL="git://xenbits.xen.org/qemu-upstream-unstable.git“
XEN_REVISION="RELEASE-4.5"
QEMU_REVISION="master
10. © 2015 Citrix | Confidential
Raisin - examples
$ raise build
– install dependencies
– creates a deb/rpm package
$ raise install
– installs the package
$ raise configure
– init scripts, xenbr0 bridge, etc
12. © 2015 Citrix | Confidential
Unit Tests vs. CI-loop
Unit and functional tests
Small and quick to run
Single host
Do not need special licenses or isos
Can be run be individual contributors before submitting patches
CI-loop tests
Comprehensive
Cover most usages
Includes multi-host tests
Takes hours to run
Tight to the gating infrastructure
13. © 2015 Citrix | Confidential
Unit Tests vs. CI-loop
Unit and functional tests
Small and quick to run
Single host
Do not need special licenses or isos
Can be run be individual contributors before submitting patches
CI-loop tests
Comprehensive
Cover most usages
Includes multi-host tests
Takes hours to run
Tight to the gating infrastructure
OSSTest
Missing
15. © 2015 Citrix | Confidential
Raisin – Raise Test!
• Introduce simple and quick unit and functional tests
• Based on busybox-static, very few requirements
• Can be run on any test box
$ raise test
16. © 2015 Citrix | Confidential
Raisin – Status
• Build, install and configure completed
• Currently active components are:
seabios ovmf xen qemu qemu_traditional grub libvirt
• A few stackable tests have been added
busybox-hvm-test → busybox-hvm-localmigrate-test
• Integration with OSSTest is work-in-progress
18. © 2015 Citrix | Confidential
Raisin – A peek into the future
• OSSTest to use Raisin to build Xen, Libvirt, etc
• OSSTest to run Raisin tests regularly
• QEMU, SeaBIOS & co to be removed from xen-unstable
• Raisin to become the canonical way to build Xen, QEMU
and all the other Xen related components
• Developers to refer to Raisin as the way to setup a dev
environment
• Packagers to refer to Raisin as the mainstream way to build
and setup a Xen system
19. © 2015 Citrix | Confidential
Resources
Raisin git repository:
git://xenbits.xenproject.org/raisin.git
Raisin documentation:
raisin/README
Mailing list:
xen-devel@xenproject.org