Hey folks, For a while now we've been working on virt device role tagging. The full spec is here [1], but the quick gist of it is that device tagging is a way for the user to assign arbitrary string tags to either vNICs or block devices. Those tags then get exposed by the metadata API to the guest, along with other device metadata such as bus and address, for example PCI 0000:00:02.0. This work is being done for the libvirt driver, and we would obviously love it if other drivers implemented the functionality. This email is meant to get this cooperation started. A good starting point for developers of other drivers is our own libvirt implementation [2]. The basic idea is that we use new objects from [3] to build the metadata hierarchy. The hierarchy is then saved in the database in the instance_extra table, of which you can see the details here [4]. This is pretty much the only functionality that other virt drivers would need to implement. Everything else (API, metadata API) is being handled by us, though of course we welcome your feedback. I hope I've been concise yet complete. If you have any questions don't hesitate to ask either vladikr or artom on IRC. Cheers! [1] http://specs.openstack.org/openstack/nova-specs/specs/newton/approved/virt-device-role-tagging.html [2] https://review.openstack.org/#/c/264016/42/nova/virt/libvirt/driver.py [3] https://github.com/openstack/nova/blob/master/nova/objects/virt_device_metadata.py [4] https://review.openstack.org/#/c/327920/ -- Artom Lifshitz