Device tagging, new in Newton

Device tagging in OpenStack Nova is a mechanism to communicate to the guest OS the intended usage of virtual network interfaces andĀ disks. For example, if an instance has two virtual network interfaces, one connected to a public network and the other to a private management network, the interfaces can be tagged with ‘pub’ and ‘pvt’ respectively. An application in the guest OS can fetch the tags and provision each interface accordingly.

With python-novaclient, in order to boot an instance with tagged devices, use the tag key in the –nic and –block-device arguments to the nova boot command. For example:

$ nova boot --flavor 1 --image cirros \
--nic net-id=149f5beb-2be5-4be6-9f0e-5290049945ab,tag=pub \
--nic net-id=bda05031-7651-41bd-825c-29ba89a4f08b,tag=pvt \
--block-device \
  id=e44d2fee-f3df-4a2c-9e2b-e016855b5522,\
  source=volume,dest=volume,bootindex=1,tag=db \
--block-device \
  id=6dab970b-3777-4ace-84ee-82829041084e,\
  source=volume,dest=volume,bootindex=1,tag=cache \
device-tagging-guest

You can also take a look at the full REST API reference.

As a reminder, an instance can access metadata in two ways. The first is to curl http://169.254.169.254/openstack/latest/meta_data.json. The second is to look on the configdrive underĀ openstack/latest/meta_data.json (if the configdrive is enabled). In the above example, a devices section will appear in the metadata, looking something like this:

"devices": [
  {
    "type": "nic",
    "bus": "pci",
    "address": "00:01.0",
    "mac": "d5:d9:b3:0d:c8:b0",
    "tags": ["pub"]
  },
  {
    "type": "nic",
    "bus": "pci",
    "address": "00:02.0",
    "mac": "df:8b:d6:58:9b:b1",
    "tags": ["pvt"]
  },
  {
    "type": "disk",
    "bus": "ide",
    "address": "0:1",
    "tags": ["db"]
  },
  {
    "type": "disk",
    "bus": "ide",
    "address": "1:0",
    "tags": ["cache"]
  }
]

In the Ocata cycle we plan on implementing attaching tagged interfaces and volumes.

If you’re interested in diving deeper, you can take a look at the full spec as it was approved in Newton, and if you’re really crazy you can search for the review topic in Gerrit.