Composing of complex templates from smaller ones by the means of include-like statements

Registered by Sergey Kraynev on 2013-11-27

The main idea is to make it possible to compose complex Heat templates from smaller ones by the means of include-like statements. python-heatclient seems to be a good place to implement this: it would process the given template file resolving include statements and replacing them with the contents of files referenced; eventually, the resulting template would be sent to Heat.

Currently we must define all resources and parameters in one template file. Unfortunately, taking of this approach results in big templates, which are difficult for understanding and are not reusable.

The proposed solution is to create small targeted templates for each part of complex stacks. Those parts are merged into one Heat template by the means of python-heatclient and after that this template is sent to heat-api service as one entire definition. Small templates can be reused for other stacks.

E.g. this would be very helpful for deploying complex stacks used in TripleO project. Currently, TripleO has a special script for merging of Heat templates: https://github.com/openstack/tripleo-heat-templates/blob/master/merge.py. But it would be nice to have this feature implemented directly in python-heatclient.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Sergey Kraynev
Direction:
Needs approval
Assignee:
Sergey Kraynev
Definition:
Drafting
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.