XDS15: Project Raisin

20
© 2015 Citrix | Confidential Stefano Stabellini, August 2015

Transcript of XDS15: Project Raisin

Page 1: XDS15: Project Raisin

© 2015 Citrix | Confidential

Stefano Stabellini, August 2015

Page 2: XDS15: Project Raisin

© 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

Page 3: XDS15: Project Raisin

© 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

Page 4: XDS15: Project Raisin

© 2015 Citrix | Confidential

OpenStack

Page 5: XDS15: Project Raisin

© 2015 Citrix | Confidential

OpenStack

Page 6: XDS15: Project Raisin

© 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.”

Page 7: XDS15: Project Raisin

© 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

Page 8: XDS15: Project Raisin

© 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

Page 9: XDS15: Project Raisin

© 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

Page 10: XDS15: Project Raisin

© 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

Page 11: XDS15: Project Raisin

© 2015 Citrix | Confidential

Tests

Page 12: XDS15: Project Raisin

© 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

Page 13: XDS15: Project Raisin

© 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

Page 14: XDS15: Project Raisin

© 2015 Citrix | Confidential

Page 15: XDS15: Project Raisin

© 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

Page 16: XDS15: Project Raisin

© 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

Page 17: XDS15: Project Raisin

© 2015 Citrix | Confidential

Raisin – Future

Page 18: XDS15: Project Raisin

© 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

Page 19: XDS15: Project Raisin

© 2015 Citrix | Confidential

Resources

Raisin git repository: git://xenbits.xenproject.org/raisin.git

Raisin documentation: raisin/README

Mailing list: [email protected]

Page 20: XDS15: Project Raisin

© 2015 Citrix | Confidential

Questions?