Make turning debug on globally easy.
[apex-tripleo-heat-templates.git] / undercloud-source.yaml
1 description: All-in-one baremetal OpenStack and all dependencies.
2 heat_template_version: 2013-05-23
3 parameters:
4   AdminPassword:
5     default: unset
6     description: The password for the keystone admin account, used for monitoring, querying neutron etc.
7     type: string
8     hidden: true
9   AdminToken:
10     default: unset
11     description: The keystone auth secret.
12     type: string
13     hidden: true
14   CinderLVMLoopDeviceSize:
15     default: 5000
16     description: The size of the loopback file used by the cinder LVM driver.
17     type: number
18   BaremetalArch:
19     default: i386
20     description: The architecture to use in Nova-BM - i386 or amd64.
21     type: string
22   CeilometerMeteringSecret:
23     default: unset
24     description: Secret shared by the ceilometer services.
25     type: string
26     hidden: true
27   CeilometerPassword:
28     default: unset
29     description: The password for the ceilometer service account.
30     type: string
31     hidden: true
32   Debug:
33     default: ''
34     description: Set to True to enable debugging on all services.
35     type: string
36   SnmpdReadonlyUserName:
37     default: ro_snmp_user
38     description: The user name for SNMPd with readonly rights running on all Overcloud nodes
39     type: string
40   SnmpdReadonlyUserPassword:
41     default: unset
42     description: The user password for SNMPd with readonly rights running on all Overcloud nodes
43     type: string
44     hidden: true
45   ExtraConfig:
46     default: {}
47     description: |
48       Additional configuration to inject into the cluster. The JSON should have
49       the following structure:
50         {"FILEKEY":
51           {"config:
52             [{"section": "SECTIONNAME",
53               "values":
54                [{"option": "OPTIONNAME",
55                   "value": "VALUENAME"
56                 }
57                ]
58              }
59             ]
60           }
61         }
62       For instance:
63         {"nova":
64           {"config":
65             [{"section": "default",
66               "values":
67                 [{"option": "compute_manager",
68                   "value": "ironic.nova.compute.manager.ClusterComputeManager"
69                  }
70                 ]
71              },
72              {"section": "cells",
73               "values":
74                 [{"option": "driver",
75                   "value": "nova.cells.rpc_driver.CellsRPCDriver"
76                  }
77                 ]
78              }
79             ]
80           }
81         }
82     type: json
83   Flavor:
84     default: baremetal
85     description: Flavor to request when deploying.
86     type: string
87   GlancePort:
88    default: 9292
89    description: Glance port.
90    type: string
91   GlanceProtocol:
92    default: http
93    description: Protocol to use when connecting to glance, set to https for SSL.
94    type: string
95   GlancePassword:
96     default: unset
97     description: The password for the glance service account, used by the glance services.
98     type: string
99     hidden: true
100   GlanceNotifierStrategy:
101     description: Strategy to use for Glance notification queue
102     type: string
103     default: noop
104   GlanceLogFile:
105     description: The filepath of the file to use for logging messages from Glance.
106     type: string
107     default: ''
108   KeyName:
109     default: default
110     description: Name of an existing EC2 KeyPair to enable SSH access to the instances
111     type: string
112   HeatPassword:
113     default: unset
114     description: The password for the Heat service account, used by the Heat services.
115     type: string
116     hidden: true
117   ImageUpdatePolicy:
118     default: REBUILD_PRESERVE_EPHEMERAL
119     description: What policy to use when reconstructing instances. REBUILD for rebuilds,
120       REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
121     type: string
122   undercloudImage:
123     default: undercloud
124     type: string
125   NeutronPassword:
126     default: unset
127     description: The password for the neutron service account, used by neutron agents.
128     type: string
129     hidden: true
130   NovaPassword:
131     default: unset
132     description: The password for the nova service account, used by nova-api.
133     type: string
134     hidden: true
135   NeutronPublicInterfaceDefaultRoute:
136     default: ''
137     description: A custom default route for the NeutronPublicInterface.
138     type: string
139   NeutronPublicInterfaceIP:
140     default: ''
141     description: A custom IP address to put onto the NeutronPublicInterface.
142     type: string
143   NeutronPublicInterfaceRawDevice:
144     default: ''
145     description: If set, the public interface is a vlan with this device as the raw device.
146     type: string
147   NtpServer:
148     type: string
149     default: ''
150   RabbitUserName:
151     default: guest
152     description: The username for RabbitMQ
153     type: string
154   RabbitPassword:
155     default: guest
156     description: The password for RabbitMQ
157     type: string
158     hidden: true
159   RabbitCookieSalt:
160     type: string
161     default: unset
162     description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
163   HeatStackDomainAdminPassword:
164     description: Password for heat_domain_admin user.
165     type: string
166     default: ''
167     hidden: true
168   MysqlInnodbBufferPoolSize:
169     description: >
170         Specifies the size of the buffer pool in megabytes. Setting to
171         zero should be interpreted as "no value" and will defer to the
172         lower level default.
173     type: number
174     default: 0
175   KeystoneCACertificate:
176     default: ''
177     description: Keystone self-signed certificate authority certificate.
178     type: string
179   KeystoneSigningCertificate:
180     default: ''
181     description: Keystone certificate for verifying token validity.
182     type: string
183   KeystoneSigningKey:
184     default: ''
185     description: Keystone key for signing tokens.
186     type: string
187     hidden: true
188 resources:
189   RabbitCookie:
190     type: OS::Heat::RandomString
191     properties:
192       length: 20
193       salt:
194         get_param: RabbitCookieSalt
195   undercloudConfig:
196     type: OS::Heat::StructuredConfig
197     properties:
198       config:
199         completion-signal: {get_input: deploy_signal_id}
200         admin-password:
201           get_param: AdminPassword
202         admin-token:
203           get_param: AdminToken
204         bootstrap_host:
205           bootstrap_nodeid:
206             Fn::Select:
207             - 0
208             - Fn::Select:
209               - 0
210               - Merge::Map:
211                   undercloud:
212                   - Fn::Select:
213                     - name
214                     - get_attr:
215                       - undercloud
216                       - show
217           nodeid: {get_input: bootstack_nodeid}
218         bootstack:
219           public_interface_ip:
220             get_param: NeutronPublicInterfaceIP
221         controller-address:
222           get_input: controller_host
223         corosync:
224           bindnetaddr: {get_input: controller_host}
225           mcastport: 5577
226           nodes:
227             Merge::Map:
228               controller0:
229                 ip: {get_attr: [undercloud, networks, ctlplane, 0]}
230         pacemaker:
231           stonith_enabled : false
232           recheck_interval : 5
233           quorum_policy : ignore
234         ceilometer:
235           db: mysql://ceilometer:unset@localhost/ceilometer
236           debug: {get_param: Debug}
237           metering_secret: {get_param: CeilometerMeteringSecret}
238           snmpd_readonly_user_name:
239             get_param: SnmpdReadonlyUserName
240           snmpd_readonly_user_password:
241             get_param: SnmpdReadonlyUserPassword
242           service-password:
243             get_param: CeilometerPassword
244         db-password: unset
245         glance:
246           backend: file
247           db: mysql://glance:unset@localhost/glance
248           debug: {get_param: Debug}
249           host: 127.0.0.1
250           port:
251             get_param: GlancePort
252           protocol:
253             get_param: GlanceProtocol
254           service-password:
255             get_param: GlancePassword
256           notifier-strategy:
257             get_param: GlanceNotifierStrategy
258           log-file:
259             get_param: GlanceLogFile
260         heat:
261           admin_password:
262             get_param: HeatPassword
263           admin_tenant_name: service
264           admin_user: heat
265           auth_encryption_key: unset___________
266           db: mysql://heat:unset@localhost/heat
267           debug: {get_param: Debug}
268           stack_domain_admin_password: {get_param: HeatStackDomainAdminPassword}
269           watch_server_url: {get_input: heat.watch_server_url}
270           metadata_server_url: {get_input: heat.metadata_server_url}
271           waitcondition_server_url: {get_input: heat.waitcondition_server_url}
272         keystone:
273           db: mysql://keystone:unset@localhost/keystone
274           debug: {get_param: Debug}
275           host: 127.0.0.1
276           ca_certificate: {get_param: KeystoneCACertificate}
277           signing_key: {get_param: KeystoneSigningKey}
278           signing_certificate: {get_param: KeystoneSigningCertificate}
279         mysql:
280           innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize}
281         neutron:
282           debug: {get_param: Debug}
283           host: 127.0.0.1
284           ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8
285           ovs:
286             public_interface:
287               get_param: NeutronPublicInterface
288             public_interface_raw_device:
289               get_param: NeutronPublicInterfaceRawDevice
290             public_interface_route:
291               get_param: NeutronPublicInterfaceDefaultRoute
292             physical_bridge: br-ctlplane
293             physical_network: ctlplane
294             network_vlan_ranges: ctlplane
295             bridge_mappings: ctlplane:br-ctlplane
296             tenant_network_type: vlan
297             enable_tunneling: 'False'
298           service-password:
299             get_param: NeutronPassword
300         rabbit:
301           host: 127.0.0.1
302           username:
303             get_param: RabbitUserName
304           password:
305             get_param: RabbitPassword
306           cookie:
307             get_attr:
308             - RabbitCookie
309             - value
310         ntp:
311           servers:
312             - {server: {get_param: NtpServer}, fudge: "stratum 0"}
313   undercloudPassthroughConfig:
314     type: OS::Heat::StructuredConfig
315     properties:
316       config: {get_input: passthrough_config}
317   undercloud:
318     type: OS::Nova::Server
319     properties:
320       image:
321         get_param: undercloudImage
322       flavor:
323         get_param: Flavor
324       key_name:
325         get_param: KeyName
326       image_update_policy:
327         get_param: ImageUpdatePolicy
328       networks:
329         - network: ctlplane
330       user_data_format: SOFTWARE_CONFIG
331   99_undercloudDeployment:
332     type: OS::Heat::StructuredDeployment
333     properties:
334       config: {get_resource: undercloudConfig}
335       server: {get_resource: undercloud}
336       input_values:
337         bootstack_nodeid:
338           get_attr:
339           - undercloud
340           - show
341           - name
342         controller_host:
343           get_attr:
344           - undercloud
345           - networks
346           - ctlplane
347           - 0
348         heat.watch_server_url:
349           Fn::Join:
350             - ''
351             - - 'http://'
352               - get_attr: [undercloud, networks, ctlplane, 0]
353               - ':8003'
354         heat.metadata_server_url:
355           Fn::Join:
356             - ''
357             - - 'http://'
358               - {get_attr: [undercloud, networks, ctlplane, 0]}
359               - ':8000'
360         heat.waitcondition_server_url:
361           Fn::Join:
362             - ''
363             - - 'http://'
364               - {get_attr: [undercloud, networks, ctlplane, 0]}
365               - ':8000/v1/waitcondition'
366   00_undercloudPassthroughDeployment:
367     type: OS::Heat::StructuredDeployment
368     properties:
369       config: {get_resource: undercloudPassthroughConfig}
370       server: {get_resource: undercloud}
371       signal_transport: NO_SIGNAL
372       input_values:
373         passthrough_config: {get_param: ExtraConfig}