forked from docs/doc-exports
Reviewed-by: Hasko, Vladimir <vladimir.hasko@t-systems.com> Co-authored-by: Qin Ying, Fan <fanqinying@huawei.com> Co-committed-by: Qin Ying, Fan <fanqinying@huawei.com>
3.7 KiB
3.7 KiB
Template Structure
Templates are blueprints for describing infrastructure and architecture and can be used to create stacks. The compiler defines resource requirements and configuration details in the template and describes the dependency between resources.
A template must be in the YAML format and consists of the following parts:
heat_template_version: xxxx-xx-xx # Indicates the template version. This field is mandatory. description: # Provides template information, template application scenarios, and architecture. This field is optional. parameter_groups: # Indicates the parameter groups and parameter sequence. This field is optional. parameters: # Indicates the parameters to be input. Using parameters improves template flexibility and reusability. This field is optional. resources: # Indicates user-defined resources (such as VMs, networks, and volumes), dependencies among resources, and configuration details. This field is optional. outputs: # Indicates outputs of the created resources. This field is optional. conditions: # Indicates the conditions that stack creation time and update time must meet. This field is optional.
The following is an example template for creating an ECS.
heat_template_version: 2013-05-23 description: Simple template to deploy a single compute instance parameters: key_name: type: string label: Key Name description: Name of key-pair to be used for compute instance image_id: type: string label: Image ID description: Image to be used for compute instance instance_type: type: string label: Instance Type description: Type of instance (flavor) to be used net_id: type: string label: Network UUID description: The network to be used resources: my_instance: type: OS::Nova::Server properties: key_name: { get_param: key_name } image: { get_param: image_id } flavor: { get_param: instance_type } networks: [ { network: { get_param: net_id } } ]
Description:
- heat_template_version: indicates the HOT template version. The value is a specified version. For details, see Template Version.
- description: describes resources to be created using the template. This field is optional and can be user-defined.
- parameters: defines some parameters, which are used in function get_param to define resource attributes. This field is optional.
- resources: defines all resources to be created by RTS and dependencies between these resources. This field is the core of the template. type: indicates the resource type.
Parent topic: Template Syntax