Add CIMI Support to Nova

Registered by Doug Davis

The DMTF is producing a specification called CIMI (Cloud Infrastructure Management Interface) which aims to standardize access to common IaaS features across providers. The CIMI APIs are leveraging the experience learned from a variety of Cloud vendors and customers to focus on the common/core sets of features needed for the self-servicing of cloud compute resources. While the specification is still under development, they are reaching the point of having the main portions of the specification completed and would benefit from as much interoperability testing as possible. Adding support for CIMI to Nova will provide invaluable feedback into the specification's development cycle before version 1.0 is completed.

The current publicly available working draft can be found at: http://dmtf.org/standards/cloud - there's also a Primer available which should be read first as an introduction.

The Nova team decided to support third party APIs (like CIMI) via 3rd party repositories and then distros can pick them up. In the case of CIMI the 3rd party repo can be found at:
    https://github.com/OSaddon/cimi

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Doug Davis
Direction:
Needs approval
Assignee:
Tong Li
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Vish Ishaya

Related branches

Sprints

Whiteboard

The CIMI specification defines a set of REST/HTTP APIs for provisioning and managing the core IaaS resources. These include: Machines, Volumes, Networks, Systems and some related monitoring resources. While not all of these resources are currently supported by OpenStack, the CIMI specification allows for providers to support just the portions of the model that suits their needs. The plan is to support the CIMI APIs as an alternative set of APIs to the existing features of OpenStack - similar to how EC2 APIs are available today.

The initial implementation of the APIs will focus on the following CIMI resources:
- Machine: maps to "Instance"
- MachineConfiguration:maps to "Instance Type"
- MachineImage: maps to "Image"
- Network: maps to Quantum "Network"
- VSP: maps to Quantum "Port"
- Machine.NetworkInterface: maps to Quantum "Attachment"
- Credentials maps to Key
(as CIMI is not yet completed and some features are not yet publicly visible, this list will grow and change)

Support for other entities, such as Systems, might be possible but its not clear if there's a direct mapping yet to existing OpenStack entities. More investigation on this will be forthcoming.

As CIMI supports both JSON and XML, we propose to support both in this implementation.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.