67 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
		
		
			
		
	
	
			67 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
|   | openstack:
 | ||
|  |   valid: &valid
 | ||
|  |     id: openstack_template
 | ||
|  |     provider: openstack
 | ||
|  |     template_body: |
 | ||
|  |       heat_template_version: 2013-05-23
 | ||
|  | 
 | ||
|  |       description: >
 | ||
|  |         Hello world HOT template that just defines a single server.
 | ||
|  |         Contains just base features to verify base HOT support.
 | ||
|  |       parameters:
 | ||
|  |         key_name:
 | ||
|  |           type: string
 | ||
|  |           description: Name of an existing key pair to use for the server
 | ||
|  |           constraints:
 | ||
|  |             - custom_constraint: nova.keypair
 | ||
|  |         flavor:
 | ||
|  |           type: string
 | ||
|  |           description: Flavor for the server to be created
 | ||
|  |           default: m1.small
 | ||
|  |           constraints:
 | ||
|  |             - custom_constraint: nova.flavor
 | ||
|  |         image:
 | ||
|  |           type: string
 | ||
|  |           description: Image ID or image name to use for the server
 | ||
|  |           constraints:
 | ||
|  |             - custom_constraint: glance.image
 | ||
|  |         admin_pass:
 | ||
|  |           type: string
 | ||
|  |           description: Admin password
 | ||
|  |           hidden: true
 | ||
|  |           constraints:
 | ||
|  |             - length: { min: 6, max: 8 }
 | ||
|  |               description: Password length must be between 6 and 8 characters
 | ||
|  |             - allowed_pattern: "[a-zA-Z0-9]+"
 | ||
|  |               description: Password must consist of characters and numbers only
 | ||
|  |             - allowed_pattern: "[A-Z]+[a-zA-Z0-9]*"
 | ||
|  |               description: Password must start with an uppercase character
 | ||
|  |         db_port:
 | ||
|  |           type: number
 | ||
|  |           description: Database port number
 | ||
|  |           default: 50000
 | ||
|  |           constraints:
 | ||
|  |             - range: { min: 40000, max: 60000 }
 | ||
|  |               description: Port number must be between 40000 and 60000
 | ||
|  | 
 | ||
|  |       resources:
 | ||
|  |         server:
 | ||
|  |           type: OS::Nova::Server
 | ||
|  |           properties:
 | ||
|  |             key_name: { get_param: key_name }
 | ||
|  |             image: { get_param: image }
 | ||
|  |             flavor: { get_param: flavor }
 | ||
|  |             admin_pass: { get_param: admin_pass }
 | ||
|  |             user_data:
 | ||
|  |               str_replace:
 | ||
|  |                 template: |
 | ||
|  |                   #!/bin/bash
 | ||
|  |                   echo db_port
 | ||
|  |                 params:
 | ||
|  |                   db_port: { get_param: db_port }
 | ||
|  | 
 | ||
|  |       outputs:
 | ||
|  |         server_networks:
 | ||
|  |           description: The networks of the deployed server
 | ||
|  |           value: { get_attr: [server, networks] }
 |