[openstack-dev] [nova][glance] Austin summit nova/glance cross-project session recap
mriedem at linux.vnet.ibm.com
Mon May 9 20:49:16 UTC 2016
On Thursday afternoon of the design summit the nova and glance teams had
a cross-project session. The full etherpad is here .
This was all about glance v2 integration in nova, the spec for which is
We agreed to add an immediately deprecated use_glancev2 config option
per Sean Dague's spec addendum . This would default to False so we
continue using the glance v1 code path and give deployers some time to
move to glance v2, if they haven't already. We could also use this in a
CI job to enforce only using glance v2 within nova to test out that this
is all working.
We know there are going to be some API compat issues when moving to
* Case sensitive image properties - this is just going to be lossy in
the nova proxy image API.
* Nested image properties - glance v2 doesn't nest custom properties.
* Size 0 volume-backed snapshots, glance v1 lets you specify size=0 when
creating the image, glance v2 does not. Mike Fedosin has a workaround
* RBD fast snapshots rely on the image location/direct_url. As far as I
can tell this should still work with glance v2, the operator still has
to enable it on their glance server though. The devstack ceph plugin
repo will need to be updated to configure glance v2 for this so we can
tell it's still working when we switch to v2 .
We also agreed that the v2 code should be a copy of the v1 tree and then
adjusted for talking to the glance v2 API. Everything should be written
in such a way that we touch the v1 code as little as possible so it can
be easily dropped in a subsequent release. This means no refactoring of
common code to make it pretty and re-usable by both v1 and v2 paths in Nova.
Both glance v1 and v2 are enabled in our standard gate job today. Nova
is hard-coded to use just v1 though.
The patches will be written in such a way that they'll use glance v2
code paths if v2 is available, else they'll use v1.
We'll add a job that disables glance v1 and configures nova to use
glance v2 only. This will tell us if we're missing anything.
Other random things mentioned
* Jay Pipes wants to make CONF.glance.api_servers not a list in Nova.
There was agreement in the room on doing this but it's not a requirement
or dependency for the glance v2 integration in Nova. We should just
consider it separate cleanup, or it might end up being replaced by the
service catalog at some point.
* Nova doesn't care about glance 3 or glare at this point. We assume
glance v2 won't be deprecated any time soon, so as long as Nova doesn't
need to use glare, we won't worry about adopting it.
* Mike Fedosin needs to address the comments in the spec  and merge
it with Sean's addendum .
* Nikhil Komawar is going to create the CI job that disables glance v1
and configures Nova's use_glancev2=True option.
* The existing patches depend on version discovery and it makes them
more complicated. Mike is going to assess what would be less painful,
starting from scratch on the code series or cleanup what's already there
but keeping in mind that we want to dump the v1 path as soon as
possible. The Nova team really wants to avoid the version discovery and
conditional logic while building up this series. The v2 parts can be
unit tested and then the top of the series will be tested against the
new job that disables glance v1 and sets use_glancev2=True, so we'll
know when that whole stack is working from the top (sort of like how we
build new API changes from the bottom (virt driver) to the REST API and
then test the whole stack from the top API change).
* Before we can change the default value of use_glancev2 to True, we'll
need to validate it works with ceph/xen/hyper-v/libvirt testing. We have
gate jobs for ceph and libvirt, so we'll need to confirm with the xen
and hyper-v driver sub-teams on the v2 validation when the time comes.
More information about the OpenStack-dev