image metadata prefiltering

Registered by sean mooney

Nova support specifying hyperviors sepcific device model via image properties.
Today when such properties are set on an image they are not considered when
scheduling unless the operator manually configures the ImagePropertiesFilter.
If the operator does not configure the ImagePropertiesFilter and an instance
is scheduled to a host that cannot support the requested device model a late
check in the virt driver will fail the spawn and trigger a reschedule.
If only a subset of hosts can support the requested device model this
frequently results in a ``No valid host`` error.

This proposal suggests using standardised traits and placement to address device
model compatibility by extending existing virt drivers to declare the
device models they support as traits.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Low
Drafter:
sean mooney
Direction:
Approved
Assignee:
sean mooney
Definition:
Approved
Series goal:
Accepted for ussuri
Implementation:
Implemented
Milestone target:
milestone icon ussuri-3
Started by
Matt Riedemann
Completed by
sean mooney

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:image-metadata-prefiltering,n,z

Addressed by: https://review.openstack.org/647578
    add spec for image metadata prefiltering

Gerrit topic: https://review.openstack.org/#/q/topic:bp/image-metadata-prefiltering

Addressed by: https://review.openstack.org/652101
    Updates to image-metadata-prefiltering spec

Gerrit topic: https://review.opendev.org/#/q/topic:bp/image-metadata-prefiltering

Addressed by: https://review.opendev.org/665775
    create initial image metadata prefilter

Addressed by: https://review.opendev.org/665844
    add StorageTransform class to prefilter

Addressed by: https://review.opendev.org/666914
    [WIP] Libvirt: report storage bus traits

Addressed by: https://review.opendev.org/666915
    [WIP] use domain capablites to get supported device models

Gerrit topic: https://review.opendev.org/#/q/topic:get_domain_capabilities

Addressed by: https://review.opendev.org/670189
    libvirt: harden get_domain_capabilities

[efried 20190905] Agreed to defer this to ussuri to make room for other conflicting patches that are "closer".

Addressed by: https://review.opendev.org/683258
    resubmit image metadata prefiltering spec for ussuri

[efried 20190923] Fast approved for ussuri per http://specs.openstack.org/openstack/nova-specs/readme.html#previously-approved-specifications

[efried 20200220] Agreed in the Nova meeting to Direction:Approve all Definition:Approved blueprints http://eavesdrop.openstack.org/meetings/nova/2020/nova.2020-02-20-14.00.log.html#l-131

Addressed by: https://review.opendev.org/708912
    trivial: Update '_get_foo_traits' docstrings

Addressed by: https://review.opendev.org/709233
    Enforce os-traits/SUPPORTED_STORAGE_BUSES sync

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.