update comment in the template
[heat-templates.git] / qa / glusterfs.template
blob6c7a10aaa1be8e3cbc6de4d4a3cbbde295330e48
1 heat_template_version: 2013-05-23
3 description: |
4   Simple template to deploy a basic GlusterFS environment with 2 bricks and 2 clients
6 parameters:
8   gluster_server_name:
9     description: Base name for the GlusterFS servers
10     type: string
11     default: rtb-gluster-server
13   gluster_client_name:
14     description: Base name for the GlusterFS clients
15     type: string
16     default: rtb-gluster-client
17     
18   image:
19     type: string
20     description: Server image id to use
21     default: Ubuntu 12.04 LTS (Precise Pangolin)
22     constraints:
23     - allowed_values:
24       - Ubuntu 10.04 LTS (Lucid Lynx)
25       - Ubuntu 12.04 LTS (Precise Pangolin)
26       - Ubuntu 12.10 (Quantal Quetzal)
27       - Ubuntu 13.04 (Raring Ringtail)
28       description: must be a valid Ubuntu image id
30   volume_size:
31     type: number
32     description: Size of the volume to be created.
33     default: 100
34     constraints:
35     - range:
36         min: 100
37         max: 1024
38       description: must be between 100 and 1024 GB.
40   glusterserver_flavor:
41     description: Server flavor id to use
42     type: string
43     default: 8 GB Performance
44     constraints:
45     - allowed_values:
46       - 2GB Standard Instance
47       - 4GB Standard Instance
48       - 8GB Standard Instance
49       - 15GB Standard Instance
50       - 30GB Standard Instance 
51       - 2 GB Performance
52       - 4 GB Performance
53       - 8 GB Performance
54       - 15 GB Performance
55       - 30 GB Performance
56       - 60 GB Performance
57       - 90 GB Performance
58       - 120 GB Performance
59       description: must be a valid Rackspace Cloud Server flavor.
61   glusterclient_flavor:
62     description: Client flavor id to use
63     type: string
64     default: 4 GB Performance
65     constraints:
66     - allowed_values:
67       - 2GB Standard Instance
68       - 4GB Standard Instance
69       - 8GB Standard Instance
70       - 15GB Standard Instance
71       - 30GB Standard Instance 
72       - 2 GB Performance
73       - 4 GB Performance
74       - 8 GB Performance
75       - 15 GB Performance
76       - 30 GB Performance
77       - 60 GB Performance
78       - 90 GB Performance
79       - 120 GB Performance
80       description: must be a valid Rackspace Cloud Server flavor.
83 resources:
85   gluster_bricks:
86     type: OS::Heat::ResourceGroup
87     properties:
88       count: 2
89       resource_def:
90         type: OS::Cinder::Volume
91         properties:
92           size: { get_param: volume_size }
94   gluster_servers:
95     type: OS::Heat::ResourceGroup
96     properties: 
97       count: 2
98       resource_def:
99         type: Rackspace::Cloud::Server
100         properties:
101           image: { get_param: image }
102           flavor: { get_param: glusterserver_flavor }
103           user_data: |
104             #!/bin/bash -v
105             apt-get install -y build-essential
106             
107   volume_attachment_server1_brick1:
108     type: OS::Cinder::VolumeAttachment
109     properties:
110       volume_id: { get_attr: [ gluster_bricks, resource.0 ] }
111       instance_uuid: { get_attr: [ gluster_servers, resource.0 ] }
112       mountpoint: /dev/xvdc
114   volume_attachment_server2_brick2:
115     type: OS::Cinder::VolumeAttachment
116     properties:
117       volume_id: { get_attr: [ gluster_bricks, resource.1 ] }
118       instance_uuid:  { get_attr: [ gluster_servers, resource.1 ] }
119       mountpoint: /dev/xvdc
120       
121   gluster_clients:
122     type: OS::Heat::ResourceGroup
123     properties:
124       count: 2
125       resource_def:
126         type: Rackspace::Cloud::Server
127         properties:
128           image: { get_param: image }
129           flavor: { get_param: glusterclient_flavor }
130           user_data: |
131             #!/bin/bash -v
132             apt-get install -y build-essential
133       
134 outputs:
136   gluster_servers:
137     value: { get_attr: [ gluster_servers, refs ] }
138     description: server id's of the gluster servers
140   gluster_clients:
141     value: { get_attr: [ gluster_clients, refs ] }
142     description: server id's of the gluster clients
144   gluster_bricks:
145     value: { get_attr: [ gluster_bricks, refs ] }
146     description: volume id's of the gluster bricks
148   ssh_server_0:
149     value: 
150       str_replace:
151         template: ssh root@%host%
152         params:
153           "%host%":
154           get_attr:
155           - gluster_servers
156           - resource.0.PublicIp
157     description: ssh to gluster server 0
159   ssh_server_1:
160     value: 
161       str_replace:
162         template: ssh root@%host%
163         params:
164           "%host%":
165           get_attr:
166           - gluster_servers
167           - resource.1.PublicIp
168     description: ssh to gluster server 1
170   ssh_client_0:
171     value: 
172       str_replace:
173         template: ssh root@%host%
174         params:
175           "%host%":
176           get_attr:
177           - gluster_clients
178           - resource.0.PublicIp
179     description: ssh to gluster client 0
181   ssh_client_1:
182     value: 
183       str_replace:
184         template: ssh root@%host%
185         params:
186           "%host%":
187           get_attr:
188           - gluster_clients
189           - resource.1.PublicIp
190     description: ssh to gluster client 1