Update OS::Nova::Flavor Resource Type to Support Multi-project private flavors

https://blueprints.launchpad.net/heat/+spec/nova-flavor-resource

An administrator would like the ability to associate a flavor with multiple projects that are not the one’s creating the flavor. This blueprint proposes an update to an existing resource type, nova flavor.

Problem description

The traditional OS::Nova::Flavor allows the definition of a private flavor, but it only associates the flavor with the project making the request. This change allows the resource type to be used by an Admin user to associate a private flavor with multiple projects that are not the one’s creating the flavor.

This feature becomes necessary in a large Openstack cloud operator where there might be dozens or hundreds of regions. Managing flavors manually across multiple regions becomes untenable. The notion of building tools that, via orchestrating, help manage this largely distributed environment is what the purpose of this enhancement is.

Proposed change

This blueprint proposes to alter an existing resource type OS::Nova::Flavor in heat to address the problem described. This will be done by taking the existing flavor.py and updating the resource type.

From that file we will add PROJECTS to the list of PROPERTIES as well as its schema. The schema will look something like:

PROJECTS: properties.Schema(
    properties.Schema.LIST,
    _('List of projects.'),
    update_allowed=True,
    default=None
)

Alternatives

An alternative would be to add the association to each project manually.

Implementation

Assignee(s)

Primary assignee:

  • Chris Martin - cm876n

Additional Assignees:

  • Tanvir Talukder - tanvirt

Milestones

Target Milestone for completion:

ocata-2

Work Items

  • Implement changes to resource type OS::Nova::Flavor

  • Implement unit and functional tests

  • Document changes to existing resource type

Dependencies

None