30/11/2016: OpenStack Snap update

James Page james.page at ubuntu.com
Wed Nov 30 09:59:54 UTC 2016


Hi All

I've been working with Corey Bryant for the last few weeks on snapping
various bits of OpenStack with the objective of having a minimal set of
snaps, including a hypervisor snap, supporting a functional OpenStack Cloud
on a single machine, bootstrapping the snap work around OpenStack.

The work done by the team on snapcraft to support python has been great -
using the python plugin to create snaps of the core control plane
components was super easy, and the following are now published into the
snap store on the edge channel:

 https://github.com/openstack-snaps/snap-glance
 https://github.com/openstack-snaps/snap-keystone
 https://github.com/openstack-snaps/snap-neutron
 https://github.com/openstack-snaps/snap-nova

those snaps all work pretty well and you can try them out using the
snap-deploy script in:

 https://github.com/openstack-snaps/snap-test

We've made some progress on the nova-hypervisor snap, but it will still
only run in devmode (pending support for management of network namespaces
in snaps - bug raised and jdstrand is working on this).

 https://github.com/openstack-snaps/snap-nova-hypervisor

I'd originally planned to write the hypervisor snap to use libvirt running
from deb install on the host OS (accessed via the liibvirt interface).
This worked up until the point where libvirt tried to plumb an instance
into openvswitch (which was originally included in the snap and was working
OK) - and running with one foot in the host OS and one foot in the snap
felt awkward anyway.  So as of today, the nova-hypervisor snap relies on
libvirt and openvswitch running on the host OS, accessing via the UNIX
sockets for both services to perform management.

Pull request raise against snapd for the required updates to support
openvswitch in a snap, and use of openvswitch on the host OS via its unix
socket:

  https://github.com/snapcore/snapd/pull/2378

I did spend some time trying to bend libvirt into a snap - however it does
a-lot of build time detection and setting of paths which was not playing
nicely with the installed locations of the binaries. It was also awkward to
line up the build of libvirt-python as part of the nova part whilst still
ending up with a functional libvirt at the end of the process.  We'll
revisit libvirt in the snap in a future iteration (as I really want the
ability to ship the virt stack as part of the snap story around OpenStack).

Anyway I think that just about covers work to-date; I intend on raising the
OpenStack project-config reviews this week to pull the git repositories
under /openstack and start the process to making this work an official part
of OpenStack!

Cheers

James
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/snapcraft/attachments/20161130/1b96dfd2/attachment.html>


More information about the Snapcraft mailing list