Implementing Heat Orchestration Templates (HOT)

The Metacloud Orchestration service is compatible with these flexible template languages that enable application developers to describe and automate the deployment of infrastructure, services, and applications:

  • Amazon Web Services (AWS) CloudFormation
  • OpenStack Heat Orchestration Template (HOT)

Heat Orchestration Templates enable the creation of most Metacloud resource types, such as instances, floating IP addresses, volumes, security groups, and users. You must indicate the HOT version in the YAML file that corresponds to the Liberty release of OpenStack:

heat_template_version: 2013-05-23

Note
To learn how to create robust templates for Metacloud, see the Cisco DevNet Learning Lab.

Prerequisites—You must prepare your environment to access the command-line interface:

Orchestration requires the Heat client installation. To install the OpenStack Heat Client:

(virtualenv_name) $ pip install python-heatclient

Confirm the Heat client installed properly and the Orchestration service is available by listing the resource types supported by Metacloud:

$ openstack orchestration resource type list
+------------------------------------------+
| Resource Type                            |
+------------------------------------------+
| AWS::AutoScaling::AutoScalingGroup       |
| AWS::AutoScaling::LaunchConfiguration    |
| AWS::AutoScaling::ScalingPolicy          |
| AWS::CloudFormation::Stack               |
| AWS::CloudFormation::WaitCondition       |
| AWS::CloudFormation::WaitConditionHandle |
| AWS::CloudWatch::Alarm                   |
| AWS::EC2::EIP                            |
| AWS::EC2::EIPAssociation                 |
| AWS::EC2::Instance                       |
| AWS::EC2::InternetGateway                |
| AWS::EC2::NetworkInterface               |
| AWS::EC2::RouteTable                     |
| AWS::EC2::SecurityGroup                  |
| AWS::EC2::Subnet                         |
| AWS::EC2::SubnetRouteTableAssociation    |
| AWS::EC2::VPC                            |
| AWS::EC2::VPCGatewayAttachment           |
| AWS::EC2::Volume                         |
| AWS::EC2::VolumeAttachment               |
| AWS::ElasticLoadBalancing::LoadBalancer  |
| AWS::IAM::AccessKey                      |
| AWS::IAM::User                           |
| AWS::RDS::DBInstance                     |
| OS::Cinder::EncryptedVolumeType          |
| OS::Cinder::Volume                       |
| OS::Cinder::VolumeAttachment             |
| OS::Cinder::VolumeType                   |
| OS::Glance::Image                        |
| OS::Heat::AccessPolicy                   |
| OS::Heat::AutoScalingGroup               |
| OS::Heat::CloudConfig                    |
| OS::Heat::HARestarter                    |
| OS::Heat::InstanceGroup                  |
| OS::Heat::MultipartMime                  |
| OS::Heat::None                           |
| OS::Heat::RandomString                   |
| OS::Heat::ResourceGroup                  |
| OS::Heat::ScalingPolicy                  |
| OS::Heat::SoftwareComponent              |
| OS::Heat::SoftwareConfig                 |
| OS::Heat::SoftwareDeployment             |
| OS::Heat::SoftwareDeploymentGroup        |
| OS::Heat::SoftwareDeployments            |
| OS::Heat::Stack                          |
| OS::Heat::StructuredConfig               |
| OS::Heat::StructuredDeployment           |
| OS::Heat::StructuredDeploymentGroup      |
| OS::Heat::StructuredDeployments          |
| OS::Heat::TestResource                   |
| OS::Heat::UpdateWaitConditionHandle      |
| OS::Heat::WaitCondition                  |
| OS::Heat::WaitConditionHandle            |
| OS::Keystone::Endpoint                   |
| OS::Keystone::Group                      |
| OS::Keystone::GroupRoleAssignment        |
| OS::Keystone::Project                    |
| OS::Keystone::Role                       |
| OS::Keystone::Service                    |
| OS::Keystone::User                       |
| OS::Keystone::UserRoleAssignment         |
| OS::Neutron::ExtraRoute                  |
| OS::Neutron::Firewall                    |
| OS::Neutron::FirewallPolicy              |
| OS::Neutron::FirewallRule                |
| OS::Neutron::FloatingIP                  |
| OS::Neutron::FloatingIPAssociation       |
| OS::Neutron::HealthMonitor               |
| OS::Neutron::IKEPolicy                   |
| OS::Neutron::IPsecPolicy                 |
| OS::Neutron::IPsecSiteConnection         |
| OS::Neutron::LoadBalancer                |
| OS::Neutron::MeteringLabel               |
| OS::Neutron::MeteringRule                |
| OS::Neutron::Net                         |
| OS::Neutron::NetworkGateway              |
| OS::Neutron::Pool                        |
| OS::Neutron::PoolMember                  |
| OS::Neutron::Port                        |
| OS::Neutron::ProviderNet                 |
| OS::Neutron::Router                      |
| OS::Neutron::RouterInterface             |
| OS::Neutron::SecurityGroup               |
| OS::Neutron::Subnet                      |
| OS::Neutron::VPNService                  |
| OS::Nova::FloatingIP                     |
| OS::Nova::FloatingIPAssociation          |
| OS::Nova::KeyPair                        |
| OS::Nova::Server                         |
| OS::Nova::ServerGroup                    |
+------------------------------------------+

Note
Detailed definitions for the resource types are on the Heat Template Guide site.