Heat-Translator

Tool to translate non-heat templates to Heat Orchestration Template.

Overview
Heat-Translator is an Openstack project and licensed under Apache 2. It is a command line tool which takes non-Heat templates as an input and produces a Heat Orchestration Template (HOT) which can be deployed by Heat. Currently the development and testing is done with an aim to translate OASIS Topology and Orchestration Specification for Cloud Applications (TOSCA) templates to HOT. However, the tool is designed to be easily extended to use with any format other than TOSCA.

Architecture
Heat-Translator tool takes an in-memory graph from TOSCA Parser as an input, maps it to Heat resources and then produces a HOT.

Link to the TOSCA Parser project: https://github.com/openstack/tosca-parser

Documentation
http://docs.openstack.org/developer/heat-translator/index.html

Repositories
https://github.com/openstack/heat-translator

Development Meetings
The development team meets every Thursday at 1600UTC on IRC #openstack-heat-translator channel.

Launchpad
https://launchpad.net/heat-translator

IRC Channel
The IRC channel is #openstack-heat-translator

Enhancements made under 0.3.0 release
OpenStack Nova flavor for TOSCA flavor constraints - until now there was a pre-defined set of flavors to use with translation but with this feature flavors are fetched dynamically from Nova, based on constraints defined in the TOSCA template, when run heat-translator in an OpenStack environment.

New option to only validate template - allows user to only validate TOSCA template file without running translation.

New option to save translation output to desired file  produces a ready to deploy HOT template.

New test suite for the shell

Leverage the new features of latest 0.3.0 PyPI release of TOSCA-Parser

Documentation update

Other small fixes

Enhancements made under 0.4.0 release
Code changes to use latest tosca-parser 0.4.0 release

Introduced support for TOSCA Policy translation

Introduced support for TOSCA NFV translation

New test suite for OpenStackClient (OSC) plug-in

Allows user to provide parameters at the deployment time by using Heat get_param function

Dynamic handling of Nova server specific key_name property which is not part of TOSCA template, and TOSCA Compute specific capabilities properties for constraints based selection of flavor and image

Enhanced interfaces translation with support for get_artifact function

Bug fixes

Doc updates

Targeted work items for 0.5.0 release
Enable deployment of translated template https://blueprints.launchpad.net/heat-translator/+spec/stack-create-translated-template

Bug Fixes

Enhancements made under 0.5.0 release
Dynamic image querying with Glance for TOSCA operating system constraints

New CLI option to automatically deploy translated template with Heat

Translation support for Ansible and Puppet scripts

Update to use latest tosca-parser release 0.5.0

Bug fixes

Doc update

Enhancements made under 0.6.0 release
Python 3.5 support

Auto deployment of translated templates with proper authentication with Keystone and using Heat client to create stack. Also Nova and Glance clients, instead of direct REST calls, are now used to query available flavors and images in the user environment. This was a needed update on initial deployment support where OS_* environment variables were used to determine deployment instead of Keystone auth.

Translation support for Senlin cluster and auto scaling policy resources

Translation support for AutoScalingGroup, ScalingPolicy and Aodh resources

Support for TOSCA get_operation_output and concat function translation

New CLI option to provide a desired stack name when auto deploy translated template

Handling of Ansible roles used with TOSCA artifacts

Refactoring of shell program to use argparse

Requirement updates

Documentation update and bug fixes etc.