HOT file catalog integration for Solum

Registered by Adrian Otto

Solum is conceived to interact with HOT files in the following ways:

1) Accept a HOT file that was supplied by the Solum user, and store it as an artifact (in swift, or some catalog service), and pass it to Heat for orchestration.

2) Generate a HOT file on the fly, store it as an artifact , and submit it to Heat for orchestration.

3) Consult a catalog of existing HOT templates using metadata that describes various characteristics offered by the template. For example, I might be looking for 3-tier-app layout, and just pass a parameter to Heat using that existing template, allowing for maintenance of the "base" template by the service provider as new best practices are established without requiring extensions or patches to Solum to change the way it generates templates. Upon passing the selected template and parameters to Heat, a stack results begins orchestration for CD purposes.

4) Allowing composition of components that influence the arrangement of a nested stack in Heat. I might look for "MySQL Database", "Django App Server", and "HA Proxy Load Balancer" components in a catalog that all have the same metadata indicating they are compatible with each other. For example, they all might have metadata called Compatibility: 3-tier-app indicating they may be composed in a preconceived system architecture.

To accomplish the above, what Solum needs from a catalog service for HOT files is:

1) Ability to store and retrieve a template by name/id.
2) Ability to tag templates with arbitrary metadata.
3) Ability search for templates by tag values.

It might also be nice if Heat understood how to compose a nested stack using a reference (key) to a HOT that's in the catalog. That would allow me to bypass the fetching and passing of them by value in order to make a composed assembly.

NOTE: The Heater project[1] concept for heat is currently under discussion[2]. Perhaps we can leverage Heater or Murano[3].

[1] https://wiki.openstack.org/wiki/Heat/htr
[2] http://lists.openstack.org/pipermail/openstack-dev/2013-December/021216.html
[3] https://wiki.openstack.org/wiki/Murano

Blueprint information

Status:
Complete
Approver:
Adrian Otto
Priority:
Undefined
Drafter:
Adrian Otto
Direction:
Needs approval
Assignee:
None
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Adrian Otto

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.