XDS15: Project Raisin

Post on 14-Apr-2017

267 views 0 download

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: xen-devel@xenproject.org

© 2015 Citrix | Confidential

Questions?