Extra-Data

Registered by justinsb

I'm trying to avoid using the metadata word, hence "extra data"! The idea is to allow the use of key/value pairs to further influence nova, rather than explicitly defining every possible desire or policy in a centralized way.

Examples of these properties could be:
* to request that a compute node be located near a volume, or not-near to a particular node
* that the compute node have some specific capabilities (e.g. GPUs, MMX instructions, SSD drives, RAID-1 or RAID-5, 10-gigE)
* to indicate that the workload is likely to have a particular profile, to enable better scheduling (e.g. high CPU vs high IO)
* that the nodes be operated under some policy (e.g. PCI or HIPAA compliance)

Extra information could also be communicated 'back' from the system, e.g. openstack:price-per-hour

Requests could also easily be tagged as required, or desired, or even with weightings. For example, we could use a "+" for a required, or a "!" for require-not. Or we could simply use weightings on each: required could be +1.0, required-not could be -1.0 etc, would-like would be ~0.8, nice-to-have maybe ~0.2

There is obviously some overlap with existing ways of doing these things, but consistent use of properties on all objects would make OpenStack powerful, flexible and extensible.

For example, if we were to put them into the existing instance "Metadata", we would say that prefixes that start with "openstack:" are for system use. We could also put these properties into a parallel collection e.g. "SystemProperties".

Blueprint information

Status:
Complete
Approver:
Vish Ishaya
Priority:
Medium
Drafter:
justinsb
Direction:
Approved
Assignee:
None
Definition:
Approved
Series goal:
None
Implementation:
Implemented
Milestone target:
None
Started by
Thierry Carrez
Completed by
Thierry Carrez

Related branches

Sprints

(?)

Work Items