Add Resource describing cloud-init config

Registered by Steven Hardy

When the raw user-data patch lands ref blueprint raw-user-data, we can implement a resource which encapsulates the various options to cloud-init/cloud-config, whose Ref provides the user-data string which can be consumed by the OS::Nova::Server resource

Blueprint information

Status:
Complete
Approver:
Steve Baker
Priority:
High
Drafter:
Steve Baker
Direction:
Approved
Assignee:
Steve Baker
Definition:
Approved
Series goal:
Accepted for icehouse
Implementation:
Implemented
Milestone target:
milestone icon 2014.1
Started by
Steve Baker
Completed by
Steve Baker

Related branches

Sprints

Whiteboard

(stevebaker) I started on some resources, but it is turning out to be just string manipulation, so I'm now looking at doing most of this as intrinsic functions, specifically:

mime_multi_part: takes a list of strings (with optional content types) and formats them as a MIMEMultipart string.
as_yaml_str: takes a dict/list/whatever and writes it as a yaml formatted string. Useful for writing cloud-config with template structures rather than a block string

With these and raw-user-data it should be possible to make the most of cloud-init

Gerrit topic: https://review.openstack.org/#q,topic:bp/cloud-init-resource,n,z

Addressed by: https://review.openstack.org/59555
    Implement as_yaml_str hot intrinisic function

Addressed by: https://review.openstack.org/59309
    Allow intrinsic functions to be called in any order

Addressed by: https://review.openstack.org/59594
    Implement multi_part_mime hot intrinisic function

(stevebaker) Depending on hot-software-config, since the current approach is to implement a cloud-config resource and a multipart-mime resource which both subclass the SoftwareConfig resource.

Addressed by: https://review.openstack.org/63214
    A cloud-config resource based on SoftwareConfig

Addressed by: https://review.openstack.org/63215
    A multipart cloud-init resource based on SoftwareConfig

Addressed by: https://review.openstack.org/58880
    OS::Nova::Server support for software config

Addressed by: https://review.openstack.org/58878
    REST API for software config/deployment

Addressed by: https://review.openstack.org/58879
    Resource types for software config/deployment

Addressed by: https://review.openstack.org/58876
    Database model for software config/deployment

Addressed by: https://review.openstack.org/58877
    RPC service for software config/deployment

Addressed by: https://review.openstack.org/67621
    Resource type for software configuration

Addressed by: https://review.openstack.org/69238
    Nova server to ref cloud-config resources in user_data

Gerrit topic: https://review.openstack.org/#q,topic:bp/hot-software-config,n,z

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.