Chapter 7. Working with heat templates Use heat templates and environment files to define certain aspects of the overcloud. The structure of a heat template has three main sections: Parameters Parameters are settings passed to heat. Use these parameters to define and customize both default and non-default values. Define these parameters in the parameters section of a template. Resources Resources are the specific objects that you want to create and configure as part of a stack. RHOSP contains a set of core resources that span across all components. Output These are values passed from heat after the stack creation. You can access these values either through the heat API or through the client tools. Define these values in the output section of a template. When heat processes a template, it creates a stack for the template and a set of child stacks for resource templates. This hierarchy of stacks descends from the main stack that you define with your template. You can view the stack hierarchy with the following command: 7.1. Core heat templates Red Hat OpenStack Platform (RHOSP) contains a collection of core heat templates for the overcloud. You can find this collection in the /usr/share/openstack-tripleo-heat-templates directory. There are many heat templates and environment files in this collection. You can use the main files and directories to customize your deployment. overcloud.j2.yaml This template file creates the overcloud environment. It uses Jinja2 syntax and iterates over certain sections in the template to create custom roles. During the overcloud deployment, director renders the Jinja2 formatting into YAML. overcloud-resource-registry-puppet.j2.yaml This environment file creates the overcloud environment. It contains a set of configurations for Puppet modules on the overcloud image. After director writes the overcloud image to each node, Heat starts the Puppet configuration for each node by using the resources that are registered in this environment file. This file uses Jinja2 syntax and iterates over certain sections in the template to create custom roles. During the overcloud deployment, director renders the Jinja2 formatting into YAML. roles_data.yaml This file contains definitions of the roles in an overcloud, and maps services to each role. network_data.yaml This file contains definitions of the networks in an overcloud and their properties, including subnets, allocation pools, and VIP status. The default network_data.yaml file contains only the default networks: External, Internal Api, Storage, Storage Management, Tenant, and Management. You can create a custom network_data.yaml file and include it in the openstack overcloud deploy command with the -n option. plan-environment.yaml This file contains definitions of the metadata for your overcloud plan, including the plan name, the main template that you want to use, and environment files that you want to apply to the overcloud. capabilities-map.yaml This file contains a mapping of environment files for an overcloud plan. Use this file to describe and enable environment files in the director web UI. If you include custom environment files in the environments directory but do not define these files in the capabilities-map.yaml file, you can find these environment files in the Other sub-tab of the Overall Settings page on the web UI. environments This directory contains additional heat environment files that you can use with your overcloud creation. These environment files enable extra functions for your RHOSP environment. For example, you can use the cinder-netapp-config.yaml environment file to enable a 3rd-party back end storage option for the Block Storage service (cinder). If you include custom environment files in the environments directory but do not define these files in the capabilities-map.yaml file, you can find these environment files in the Other sub-tab of the Overall Settings page on the web UI. network This directory contains a set of heat templates that you can use to create isolated networks and ports. puppet This directory contains puppet templates. The overcloud-resource-registry-puppet.j2.yaml environment file uses the files in the puppet directory to drive the application of the Puppet configuration on each node. puppet/services This directory contains heat templates for all services in the composable service architecture. extraconfig This directory contains templates that you can use to enable extra functionality. For example, you can use the extraconfig/pre_deploy/rhel-registration directory to register your nodes with the Red Hat Content Delivery network, or with your own Red Hat Satellite server.

Commands:
heat stack-list --show-nested