Adding SNMPd auth credentials
[apex-tripleo-heat-templates.git] / overcloud-source.yaml
1 Description: Nova API,Keystone,Heat Engine and API,Glance,Neutron,Dedicated MySQL
2   server,Dedicated RabbitMQ Server,Group of Nova Computes
3 HeatTemplateFormatVersion: '2012-12-12'
4 Parameters:
5   AdminPassword:
6     Default: unset
7     Description: The password for the keystone admin account, used for monitoring, querying neutron etc.
8     Type: String
9     NoEcho: true
10   AdminToken:
11     Default: unset
12     Description: The keystone auth secret.
13     Type: String
14     NoEcho: true
15   CinderPassword:
16     Default: unset
17     Description: The password for the cinder service account, used by cinder-api.
18     Type: String
19     NoEcho: true
20   CinderISCSIHelper:
21     Default: tgtadm
22     Description: The iSCSI helper to use with cinder.
23     Type: String
24   ExtraConfig:
25     Default: {}
26     Description: |
27       Additional configuration to inject into the cluster. The JSON should have
28       the following structure:
29         {"FILEKEY":
30           {"config":
31             [{"section": "SECTIONNAME",
32               "values":
33                 [{"option": "OPTIONNAME",
34                   "value": "VALUENAME"
35                  }
36                 ]
37              }
38             ]
39           }
40         }
41       For instance:
42         {"nova":
43           {"config":
44             [{"section": "default",
45               "values":
46                 [{"option": "compute_manager",
47                   "value": "ironic.nova.compute.manager.ClusterComputeManager"
48                  }
49                 ]
50              },
51              {"section": "cells",
52               "values":
53                 [{"option": "driver",
54                   "value": "nova.cells.rpc_driver.CellsRPCDriver"
55                  }
56                 ]
57              }
58             ]
59           }
60         }
61     Type: Json
62   OvercloudControlFlavor:
63     Default: baremetal
64     Description: Flavor for control nodes to request when deploying.
65     Type: String
66   OvercloudComputeFlavor:
67     Default: baremetal
68     Description: Flavor for compute nodes to request when deploying.
69     Type: String
70   GlancePassword:
71     Default: unset
72     Description: The password for the glance service account, used by the glance services.
73     Type: String
74     NoEcho: true
75   GlanceNotifierStrategy:
76     Description: Strategy to use for Glance notification queue
77     Type: String
78     Default: noop
79   GlanceLogFile:
80     Description: The filepath of the file to use for logging messages from Glance.
81     Type: String
82     Default: ''
83   HeatPassword:
84     Default: unset
85     Description: The password for the Heat service account, used by the Heat services.
86     Type: String
87     NoEcho: true
88   ImageUpdatePolicy:
89     Default: 'REBUILD_PRESERVE_EPHEMERAL'
90     Description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
91     Type: String
92   KeyName:
93     Default: default
94     Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
95     Type: String
96   NeutronBridgeMappings:
97     Description: The OVS logical->physical bridge mappings to use.
98     Type: String
99     Default: ''
100   NeutronPassword:
101     Default: unset
102     Description: The password for the neutron service account, used by neutron agents.
103     Type: String
104     NoEcho: true
105   CeilometerComputeAgent:
106     Description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
107     Type: String
108     Default: ''
109     AllowedValues: ['', Present]
110   CeilometerMeteringSecret:
111     Default: unset
112     Description: Secret shared by the ceilometer services.
113     Type: String
114     NoEcho: true
115   CeilometerPassword:
116     Default: unset
117     Description: The password for the ceilometer service account.
118     Type: String
119     NoEcho: true
120   SnmpdReadonlyUserName:
121     Default: ro_snmp_user
122     Description: The user name for SNMPd with readonly rights running on all Overcloud nodes
123     Type: String
124   SnmpdReadonlyUserPassword:
125     Default: unset
126     Description: The user password for SNMPd with readonly rights running on all Overcloud nodes
127     Type: String
128     NoEcho: true
129   CloudName:
130     Default: ''
131     Description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
132     Type: String
133   NovaComputeDriver:
134     Default: libvirt.LibvirtDriver
135     Type: String
136   NovaComputeLibvirtType:
137     Default: ''
138     Type: String
139   NovaImage:
140     Type: String
141     Default: overcloud-compute
142   NovaPassword:
143     Default: unset
144     Description: The password for the nova service account, used by nova-api.
145     Type: String
146     NoEcho: true
147   NeutronFlatNetworks:
148     Type: String
149     Default: ''
150     Description: If set, flat networks to configure in neutron plugins.
151   HypervisorNeutronPhysicalBridge:
152     Default: ''
153     Description: An OVS bridge to create on each hypervisor.
154     Type: String
155   HypervisorNeutronPublicInterface:
156     Default: ''
157     Description: What interface to add to the HypervisorNeutronPhysicalBridge.
158     Type: String
159   NeutronPublicInterface:
160     Default: eth0
161     Description: What interface to bridge onto br-ex for network nodes.
162     Type: String
163   NeutronPublicInterfaceDefaultRoute:
164     Default: ''
165     Description: A custom default route for the NeutronPublicInterface.
166     Type: String
167   NeutronPublicInterfaceIP:
168     Default: ''
169     Description: A custom IP address to put onto the NeutronPublicInterface.
170     Type: String
171   NeutronPublicInterfaceRawDevice:
172     Default: ''
173     Description: If set, the public interface is a vlan with this device as the raw device.
174     Type: String
175   controllerImage:
176     Type: String
177     Default: overcloud-control
178   NtpServer:
179     Type: String
180     Default: ''
181   RabbitUserName:
182     Default: guest
183     Description: The username for RabbitMQ
184     Type: String
185   RabbitPassword:
186     Default: guest
187     Description: The password for RabbitMQ
188     Type: String
189     NoEcho: true
190   RabbitCookieSalt:
191     Type: String
192     Default: unset
193     Description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
194   HeatStackDomainAdminPassword:
195     Description: Password for heat_domain_admin user.
196     Type: String
197     Default: ''
198     NoEcho: true
199   LiveUpdateUserName:
200     Type: String
201     Description: The live-update username for the undercloud Glance API.
202     Default: ''
203   LiveUpdateTenantName:
204     Type: String
205     Description: The live-update tenant name for the undercloud Glance API.
206     Default: ''
207   LiveUpdateHost:
208     Type: String
209     Description: The IP address for the undercloud Glance API.
210     Default: ''
211   LiveUpdatePassword:
212     Type: String
213     Default: ''
214     Description: The live-update password for the undercloud Glance API.
215     NoEcho: true
216   LiveUpdateComputeImage:
217     Type: String
218     Description: The image ID for live-updates to the overcloud compute nodes.
219     Default: ''
220   MysqlInnodbBufferPoolSize:
221     Description: Specifies the size of the buffer pool in megabytes.
222     Type: Number
223     Default: 100
224 Resources:
225   RabbitCookie:
226     Type: OS::Heat::RandomString
227     Properties:
228       length: 20
229       salt:
230         Ref: RabbitCookieSalt
231   NovaCompute0Config:
232     Type: FileInclude
233     Path: nova-compute-instance.yaml
234     SubKey: Resources.NovaCompute0Deploy
235     Parameters:
236         NovaApiHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
237         KeystoneHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
238         RabbitHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
239         NeutronHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
240         GlanceHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
241         NovaDSN: {"Fn::Join": ['', ['mysql://nova:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ]}, '/nova']]}
242         CeilometerDSN: {"Fn::Join": ['', ['mysql://ceilometer:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ]}, '/ceilometer']]}
243         NeutronDSN: {"Fn::Join": ['', ['mysql://neutron:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ]}, '/neutron']]}
244         NeutronNetworkType: "gre"
245         NeutronEnableTunnelling: "True"
246         NeutronFlatNetworks:
247             Ref: NeutronFlatNetworks
248         NeutronNetworkVLANRanges: ""
249         NeutronPhysicalBridge:
250             Ref: HypervisorNeutronPhysicalBridge
251         NeutronPublicInterface:
252             Ref: HypervisorNeutronPublicInterface
253         NeutronBridgeMappings:
254             Ref: NeutronBridgeMappings
255         StaticHosts:
256           Fn::Join:
257           - "\n"
258           - - Fn::Join:
259               - "\n"
260               - Merge::Map:
261                   NovaCompute0:
262                     Fn::Join:
263                     - ' '
264                     - - Fn::Select:
265                         - 0
266                         - Fn::Select:
267                           - ctlplane
268                           - Fn::GetAtt:
269                             - NovaCompute0
270                             - networks
271                       - Fn::Select:
272                         - name
273                         - Fn::GetAtt:
274                           - NovaCompute0
275                           - show
276                       - Fn::Join:
277                         - '.'
278                         - - Fn::Select:
279                             - name
280                             - Fn::GetAtt:
281                               - NovaCompute0
282                               - show
283                           - 'novalocal'
284             - Fn::Join:
285               - ' '
286               - - Fn::Select:
287                   - 0
288                   - Fn::Select:
289                     - ctlplane
290                     - Fn::GetAtt:
291                       - controller0
292                       - networks
293                 - {Ref: CloudName}
294                 # If CloudName is unset, make the hosts line still valid
295                 - unused
296   NovaCompute0Passthrough:
297     Type: OS::Heat::StructuredDeployment
298     Properties:
299       config: {Ref: NovaComputePassthrough}
300       server: {Ref: NovaCompute0}
301       signal_transport: NO_SIGNAL
302       input_values:
303         passthrough_config: {Ref: ExtraConfig}
304   NovaCompute0:
305     Type: FileInclude
306     Path: nova-compute-instance.yaml
307     SubKey: Resources.NovaCompute0
308   controllerConfig:
309     Type: OS::Heat::StructuredConfig
310     Properties:
311       config:
312         completion-signal: {get_input: deploy_signal_id}
313         admin-password:
314           Ref: AdminPassword
315         admin-token:
316           Ref: AdminToken
317         bootstack:
318           public_interface_ip:
319             Ref: NeutronPublicInterfaceIP
320         cinder:
321           db: mysql://cinder:unset@localhost/cinder
322           volume_size_mb: '5000'
323           service-password:
324             Ref: CinderPassword
325           iscsi-helper:
326             Ref: CinderISCSIHelper
327         controller-address:
328           get_input: controller_host
329         db-password: unset
330         glance:
331           backend: swift
332           db: mysql://glance:unset@localhost/glance
333           host:
334             get_input: controller_host
335           service-password:
336             Ref: GlancePassword
337           swift-store-user: service:glance
338           swift-store-key:
339             Ref: GlancePassword
340           notifier-strategy:
341             Ref: GlanceNotifierStrategy
342           log-file:
343             Ref: GlanceLogFile
344         heat:
345           admin_password:
346             Ref: HeatPassword
347           admin_tenant_name: service
348           admin_user: heat
349           auth_encryption_key: unset___________
350           db: mysql://heat:unset@localhost/heat
351           stack_domain_admin_password: {Ref: HeatStackDomainAdminPassword}
352           watch_server_url: {get_input: heat.watch_server_url}
353           metadata_server_url: {get_input: heat.metadata_server_url}
354           waitcondition_server_url: {get_input: heat.waitcondition_server_url}
355         hosts: {get_input: hosts}
356         keystone:
357           db: mysql://keystone:unset@localhost/keystone
358           host:
359             get_input: controller_host
360         mysql:
361           innodb_buffer_pool_size: {Ref: MysqlInnodbBufferPoolSize}
362         neutron:
363           flat-networks: {Ref: NeutronFlatNetworks}
364           host:
365             get_input: controller_host
366           metadata_proxy_shared_secret: unset
367           ovs:
368             enable_tunneling: 'True'
369             local_ip:
370               get_input: controller_host
371             bridge_mappings: {Ref: NeutronBridgeMappings}
372             public_interface:
373               Ref: NeutronPublicInterface
374             public_interface_raw_device:
375               Ref: NeutronPublicInterfaceRawDevice
376             public_interface_route:
377               Ref: NeutronPublicInterfaceDefaultRoute
378             physical_bridge: br-ex
379             tenant_network_type: gre
380           ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8
381           service-password:
382             Ref: NeutronPassword
383         ceilometer:
384           db: mysql://ceilometer:unset@localhost/ceilometer
385           metering_secret: {Ref: CeilometerMeteringSecret}
386           service-password:
387             Ref: CeilometerPassword
388         snmpd:
389           export_MIB: UCD-SNMP-MIB
390           readonly_user_name:
391             Ref: SnmpdReadonlyUserName
392           readonly_user_password:
393             Ref: SnmpdReadonlyUserPassword
394         nova:
395           compute_driver: libvirt.LibvirtDriver
396           db: mysql://nova:unset@localhost/nova
397           default_floating_pool:
398             ext-net
399           host:
400             get_input: controller_host
401           metadata-proxy: true
402           service-password:
403             Ref: NovaPassword
404         rabbit:
405           host:
406             get_input: controller_host
407           username:
408             Ref: RabbitUserName
409           password:
410             Ref: RabbitPassword
411           cookie:
412             Fn::GetAtt:
413             - RabbitCookie
414             - value
415         ntp:
416           servers:
417               - {server: {Ref: NtpServer}, fudge: "stratum 0"}
418   controllerPassthrough:
419     Type: OS::Heat::StructuredConfig
420     Properties:
421       config: {get_input: passthrough_config}
422   controller0:
423     Type: OS::Nova::Server
424     Properties:
425       image:
426         Ref: controllerImage
427       image_update_policy:
428         Ref: ImageUpdatePolicy
429       flavor:
430         Ref: OvercloudControlFlavor
431       key_name:
432         Ref: KeyName
433       user_data_format: SOFTWARE_CONFIG
434   controller0Deployment:
435     Type: OS::Heat::StructuredDeployment
436     Properties:
437       config: {Ref: controllerConfig}
438       server: {Ref: controller0}
439       input_values:
440         controller_host:
441           Fn::Select:
442             - 0
443             - Fn::Select:
444               - ctlplane
445               - Fn::GetAtt:
446                 - controller0
447                 - networks
448         heat.watch_server_url:
449           Fn::Join:
450             - ''
451             - - 'http://'
452               - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ controller0, networks ]}]]}
453               - ':8003'
454         heat.metadata_server_url:
455           Fn::Join:
456             - ''
457             - - 'http://'
458               - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ controller0, networks ]}]]}
459               - ':8000'
460         heat.waitcondition_server_url:
461           Fn::Join:
462             - ''
463             - - 'http://'
464               - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ controller0, networks ]}]]}
465               - ':8000/v1/waitcondition'
466         hosts:
467           Fn::Join:
468           - ' '
469           - - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ controller0, networks ]}]]}
470             - {Ref: CloudName}
471   controller0SSLDeployment:
472     Type: OS::Heat::StructuredDeployment
473     Properties:
474       config: {Ref: SSLConfig}
475       server: {Ref: controller0}
476       signal_transport: NO_SIGNAL
477       input_values:
478         ssl_certificate: {Ref: SSLCertificate}
479         ssl_key: {Ref: SSLKey}
480   controller0Passthrough:
481     Type: OS::Heat::StructuredDeployment
482     Properties:
483       config: {Ref: controllerPassthrough}
484       server: {Ref: controller0}
485       signal_transport: NO_SIGNAL
486       input_values:
487         passthrough_config: {Ref: ExtraConfig}
488 Outputs:
489   KeystoneURL:
490     Description: URL for the Overcloud Keystone service
491     Value:
492       Fn::Join:
493       - ''
494       - - http://
495         - Fn::Select:
496           - 0
497           - Fn::Select:
498             - ctlplane
499             - Fn::GetAtt:
500               - controller0
501               - networks
502         - :5000/v2.0/