Bug 1042242

Summary: [RFE][heat]: Composing of complex templates from smaller ones by the means of include-like statements
Product: Red Hat OpenStack Reporter: RHOS Integration <rhos-integ>
Component: RFEsAssignee: RHOS Maint <rhos-maint>
Status: CLOSED UPSTREAM QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: markmc, yeylon
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/heat/+spec/compose-templates-using-includes
Whiteboard: upstream_milestone_none upstream_status_unknown upstream_definition_drafting
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-19 17:13:13 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description RHOS Integration 2013-12-12 21:29:41 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/heat/+spec/compose-templates-using-includes.

Description:

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.

Specification URL (additional information):

None