2.5 KiB
OpenStack Heat Orchestration Template (HOT) Generator
https://blueprints.launchpad.net/heat/+spec/os-hot-gen
An python library used to generate a given HOT template with given version.
Problem description
There are different users, who needs a library to generate an valid HOT template, as given below:
- Automation
OpenStack heat service is getting used widely in other OpenStack services such as Murano, Magnum, Tacker, etc and some of these projects generate HOT template during the runtime as part of the automation supported by them.
- Cloud providers
Every Cloud providers uses different designer tools for drawing topology visually and each of these tool use it's own way to generate the HOT template, as heat does not provide sdk for hot template generation. It's an redundant effort and maintaining them over HOT template schema changes is an overhead.
Proposed change
HOT template has following aspects and model each of them as python programmable construct such as class and provide required/supporting python api for generating HOT template by writing the python code.
- Version
- Description
- Parameters and Parameter group
- Resources and Properties
- Intrinsic Functions
- Outputs
- Environment
An sample SDK is provided here as POC.
This POC has modeled almost everything of above mentioned aspects and for functions it does provide only for get_param as an sample one, which can be extended further for other supported functions.
Alternatives
None
Implementation
Assignee(s)
- Primary assignee:
-
kanagaraj-manickam
jdob
Milestones
Target Milestone for completion: newton-2
Work Items
- Make POC into stable version
- Create new repository under OpenStack github and migrate the POC code under it. Also, add the new repository under OpenStack heat goverenance.
- Provide example python snippets to generate sample HOT templates
- Add option to generate the Resource properties and outputs based on given resource type schema generated from heat service.
- Add functional test cases to validate the generated HOT template using heat template validation command.
Dependencies
None