XDS15: Project Raisin
-
Upload
stefano-stabellini -
Category
Software
-
view
267 -
download
0
Transcript of XDS15: Project Raisin
© 2015 Citrix | Confidential
Stefano Stabellini, August 2015
© 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
© 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
© 2015 Citrix | Confidential
OpenStack
© 2015 Citrix | Confidential
OpenStack
© 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.”
© 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
© 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
© 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
© 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
© 2015 Citrix | Confidential
Tests
© 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
© 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
© 2015 Citrix | Confidential
© 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
© 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
© 2015 Citrix | Confidential
Raisin – Future
© 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
© 2015 Citrix | Confidential
Resources
Raisin git repository: git://xenbits.xenproject.org/raisin.git
Raisin documentation: raisin/README
Mailing list: [email protected]
© 2015 Citrix | Confidential
Questions?