1 heat_template_version: 2016-04-08
4 Deploy an OpenStack environment, consisting of several node types (roles),
5 Controller, Compute, BlockStorage, SwiftStorage and CephStorage. The Storage
6 roles enable independent scaling of the storage components, but the minimal
7 deployment is one Controller and one Compute node.
10 # TODO(shadower): we should probably use the parameter groups to put
14 # Common parameters (not specific to a role)
17 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
20 default: overcloud.internalapi.localdomain
22 The DNS name of this cloud's internal API endpoint. E.g.
23 'ci-overcloud.internalapi.tripleo.org'.
26 default: overcloud.storage.localdomain
28 The DNS name of this cloud's storage endpoint. E.g.
29 'ci-overcloud.storage.tripleo.org'.
31 CloudNameStorageManagement:
32 default: overcloud.storagemgmt.localdomain
34 The DNS name of this cloud's storage management endpoint. E.g.
35 'ci-overcloud.storagemgmt.tripleo.org'.
38 default: overcloud.management.localdomain
40 The DNS name of this cloud's storage management endpoint. E.g.
41 'ci-overcloud.management.tripleo.org'.
45 description: Should be used for arbitrary ips.
47 InternalApiVirtualFixedIPs:
50 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
51 [{'ip_address':'1.2.3.4'}]
53 NeutronControlPlaneID:
56 description: Neutron ID or name for ctlplane network.
57 NeutronPublicInterface:
59 description: What interface to bridge onto br-ex for network nodes.
61 PublicVirtualFixedIPs:
64 Control the IP allocation for the PublicVirtualInterface port. E.g.
65 [{'ip_address':'1.2.3.4'}]
70 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
71 StorageVirtualFixedIPs:
74 Control the IP allocation for the StorageVirtualInterface port. E.g.
75 [{'ip_address':'1.2.3.4'}]
77 StorageMgmtVirtualFixedIPs:
80 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
81 [{'ip_address':'1.2.3.4'}]
86 Control the IP allocation for the virtual IP used by Redis. E.g.
87 [{'ip_address':'1.2.3.4'}]
90 default: 'localdomain'
93 The DNS domain used for the hosts. This should match the dhcp_domain
94 configured in the Undercloud neutron. Defaults to localdomain.
98 Extra properties or metadata passed to Nova for the created nodes in
99 the overcloud. It's accessible via the Nova metadata API.
102 # Controller-specific params
106 controllerExtraConfig:
109 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
114 Additional configuration to inject into the cluster. The format required
115 may be implementation specific, e.g puppet hieradata. Any role specific
116 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
119 # Compute-specific params
123 HypervisorNeutronPhysicalBridge:
126 An OVS bridge to create on each hypervisor. This defaults to br-ex the
127 same as the control plane nodes, as we have a uniform configuration of
128 the openvswitch agent. Typically should not need to be changed.
130 HypervisorNeutronPublicInterface:
132 description: What interface to add to the HypervisorNeutronPhysicalBridge.
137 - OS::TripleO::Services::CACerts
138 - OS::TripleO::Services::CephMon
139 - OS::TripleO::Services::CephExternal
140 - OS::TripleO::Services::CinderApi
141 - OS::TripleO::Services::CinderBackup
142 - OS::TripleO::Services::CinderScheduler
143 - OS::TripleO::Services::CinderVolume
144 - OS::TripleO::Services::Core
145 - OS::TripleO::Services::Kernel
146 - OS::TripleO::Services::Keystone
147 - OS::TripleO::Services::GlanceApi
148 - OS::TripleO::Services::GlanceRegistry
149 - OS::TripleO::Services::HeatApi
150 - OS::TripleO::Services::HeatApiCfn
151 - OS::TripleO::Services::HeatApiCloudwatch
152 - OS::TripleO::Services::HeatEngine
153 - OS::TripleO::Services::MySQL
154 - OS::TripleO::Services::NeutronDhcpAgent
155 - OS::TripleO::Services::NeutronL3Agent
156 - OS::TripleO::Services::NeutronMetadataAgent
157 - OS::TripleO::Services::NeutronApi
158 - OS::TripleO::Services::NeutronCorePlugin
159 - OS::TripleO::Services::NeutronOvsAgent
160 - OS::TripleO::Services::RabbitMQ
161 - OS::TripleO::Services::HAproxy
162 - OS::TripleO::Services::Keepalived
163 - OS::TripleO::Services::Memcached
164 - OS::TripleO::Services::Pacemaker
165 - OS::TripleO::Services::Redis
166 - OS::TripleO::Services::NovaConductor
167 - OS::TripleO::Services::MongoDb
168 - OS::TripleO::Services::NovaApi
169 - OS::TripleO::Services::NovaScheduler
170 - OS::TripleO::Services::NovaConsoleauth
171 - OS::TripleO::Services::NovaVncproxy
172 - OS::TripleO::Services::Ntp
173 - OS::TripleO::Services::SwiftProxy
174 - OS::TripleO::Services::SwiftStorage
175 - OS::TripleO::Services::SwiftRingBuilder
176 - OS::TripleO::Services::Snmp
177 - OS::TripleO::Services::Timezone
178 - OS::TripleO::Services::CeilometerApi
179 - OS::TripleO::Services::CeilometerCollector
180 - OS::TripleO::Services::CeilometerExpirer
181 - OS::TripleO::Services::CeilometerAgentCentral
182 - OS::TripleO::Services::CeilometerAgentNotification
183 - OS::TripleO::Services::Horizon
184 - OS::TripleO::Services::GnocchiApi
185 - OS::TripleO::Services::GnocchiMetricd
186 - OS::TripleO::Services::GnocchiStatsd
187 - OS::Tripleo::Services::ManilaApi
188 - OS::Tripleo::Services::ManilaScheduler
189 - OS::Tripleo::Services::ManilaShare
190 - OS::TripleO::Services::AodhApi
191 - OS::TripleO::Services::AodhEvaluator
192 - OS::TripleO::Services::AodhNotifier
193 - OS::TripleO::Services::AodhListener
194 - OS::TripleO::Services::SaharaApi
195 - OS::TripleO::Services::SaharaEngine
196 - OS::TripleO::Services::IronicApi
197 - OS::TripleO::Services::IronicConductor
198 - OS::TripleO::Services::NovaIronic
199 - OS::TripleO::Services::TripleoPackages
200 - OS::TripleO::Services::TripleoFirewall
201 description: A list of service resources (configured in the Heat
202 resource_registry) which represent nested stacks
203 for each service that should get installed on the Controllers.
204 type: comma_delimited_list
208 - OS::TripleO::Services::CACerts
209 - OS::TripleO::Services::CephClient
210 - OS::TripleO::Services::CephExternal
211 - OS::TripleO::Services::Timezone
212 - OS::TripleO::Services::Ntp
213 - OS::TripleO::Services::Snmp
214 - OS::TripleO::Services::NovaCompute
215 - OS::TripleO::Services::NovaLibvirt
216 - OS::TripleO::Services::Kernel
217 - OS::TripleO::Services::ComputeNeutronCorePlugin
218 - OS::TripleO::Services::ComputeNeutronOvsAgent
219 - OS::TripleO::Services::ComputeCeilometerAgent
220 - OS::TripleO::Services::ComputeNeutronL3Agent
221 - OS::TripleO::Services::ComputeNeutronMetadataAgent
222 - OS::TripleO::Services::TripleoPackages
223 - OS::TripleO::Services::TripleoFirewall
224 - OS::TripleO::Services::NeutronSriovAgent
225 description: A list of service resources (configured in the Heat
226 resource_registry) which represent nested stacks
227 for each service that should get installed on the Compute Nodes.
228 type: comma_delimited_list
230 # Block storage specific parameters
234 BlockStorageExtraConfig:
237 BlockStorage specific configuration to inject into the cluster. Same
238 structure as ExtraConfig.
240 BlockStorageServices:
242 - OS::TripleO::Services::CACerts
243 - OS::TripleO::Services::CinderVolume
244 - OS::TripleO::Services::Kernel
245 - OS::TripleO::Services::Ntp
246 - OS::TripleO::Services::Timezone
247 - OS::TripleO::Services::Snmp
248 - OS::TripleO::Services::TripleoPackages
249 - OS::TripleO::Services::TripleoFirewall
250 description: A list of service resources (configured in the Heat
251 resource_registry) which represent nested stacks
252 for each service that should get installed on the BlockStorage nodes.
253 type: comma_delimited_list
255 # Object storage specific parameters
259 ObjectStorageExtraConfig:
262 ObjectStorage specific configuration to inject into the cluster. Same
263 structure as ExtraConfig.
265 ObjectStorageServices:
267 - OS::TripleO::Services::CACerts
268 - OS::TripleO::Services::Kernel
269 - OS::TripleO::Services::Ntp
270 - OS::TripleO::Services::SwiftStorage
271 - OS::TripleO::Services::SwiftRingBuilder
272 - OS::TripleO::Services::Snmp
273 - OS::TripleO::Services::Timezone
274 - OS::TripleO::Services::TripleoPackages
275 - OS::TripleO::Services::TripleoFirewall
276 description: A list of service resources (configured in the Heat
277 resource_registry) which represent nested stacks
278 for each service that should get installed on the ObjectStorage nodes.
279 Note this role currently only supports steps 2, 3 and 4 configuration.
280 type: comma_delimited_list
283 # Ceph storage specific parameters
287 CephStorageExtraConfig:
290 CephStorage specific configuration to inject into the cluster. Same
291 structure as ExtraConfig.
295 - OS::TripleO::Services::CACerts
296 - OS::TripleO::Services::CephOSD
297 - OS::TripleO::Services::Kernel
298 - OS::TripleO::Services::Ntp
299 - OS::TripleO::Services::Timezone
300 - OS::TripleO::Services::TripleoPackages
301 - OS::TripleO::Services::TripleoFirewall
302 description: A list of service resources (configured in the Heat
303 resource_registry) which represent nested stacks
304 for each service that should get installed on the CephStorage nodes.
305 type: comma_delimited_list
307 # Hostname format for each role
308 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
309 # and %stackname% is replaced with OS::stack_name in the template below.
310 # If you want to use the heat generated names, pass '' (empty string).
311 ControllerHostnameFormat:
313 description: Format for Controller node hostnames
314 default: '%stackname%-controller-%index%'
315 ComputeHostnameFormat:
317 description: Format for Compute node hostnames
318 default: '%stackname%-novacompute-%index%'
319 BlockStorageHostnameFormat:
321 description: Format for BlockStorage node hostnames
322 default: '%stackname%-blockstorage-%index%'
323 ObjectStorageHostnameFormat:
325 description: Format for SwiftStorage node hostnames
326 default: '%stackname%-objectstorage-%index%'
327 CephStorageHostnameFormat:
329 description: Format for CephStorage node hostnames
330 default: '%stackname%-cephstorage-%index%'
332 # Identifiers to trigger tasks on nodes
337 Setting to a previously unused value during stack-update will trigger
338 package update on all nodes
343 Setting this to a unique value will re-run any deployment tasks which
344 perform configuration on a Heat stack-update.
346 # If you want to remove a specific node from a resource group, you can pass
347 # the node name or id as a <Group>RemovalPolicies parameter, for example:
348 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
349 ControllerRemovalPolicies:
353 List of resources to be removed from ControllerResourceGroup when
354 doing an update which requires removal of specific resources.
355 ComputeRemovalPolicies:
359 List of resources to be removed from ComputeResourceGroup when
360 doing an update which requires removal of specific resources.
361 BlockStorageRemovalPolicies:
365 List of resources to be removed from BlockStorageResourceGroup when
366 doing an update which requires removal of specific resources.
367 ObjectStorageRemovalPolicies:
371 List of resources to be removed from ObjectStorageResourceGroup when
372 doing an update which requires removal of specific resources.
373 CephStorageRemovalPolicies:
377 List of resources to be removed from CephStorageResourceGroup when
378 doing an update which requires removal of specific resources.
382 description: Do not use deprecated params, they will be removed.
384 - controllerExtraConfig
389 HeatAuthEncryptionKey:
390 type: OS::Heat::RandomString
393 type: OS::Heat::RandomString
398 type: OS::Heat::RandomString
403 type: OS::TripleO::ServiceNetMap
406 type: OS::TripleO::EndpointMap
409 external: {get_param: CloudName}
410 internal_api: {get_param: CloudNameInternal}
411 storage: {get_param: CloudNameStorage}
412 storage_mgmt: {get_param: CloudNameStorageManagement}
413 management: {get_param: CloudNameManagement}
414 NetIpMap: {get_attr: [VipMap, net_ip_map]}
415 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
417 ControllerServiceChain:
418 type: OS::TripleO::Services
420 Services: {get_param: ControllerServices}
421 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
422 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
423 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
426 type: OS::Heat::ResourceGroup
429 count: {get_param: ControllerCount}
430 removal_policies: {get_param: ControllerRemovalPolicies}
432 type: OS::TripleO::Controller
434 CloudDomain: {get_param: CloudDomain}
435 controllerExtraConfig: {get_param: controllerExtraConfig}
436 HorizonSecret: {get_resource: HorizonSecret}
437 PcsdPassword: {get_resource: PcsdPassword}
438 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
439 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
440 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
441 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
444 template: {get_param: ControllerHostnameFormat}
446 '%stackname%': {get_param: 'OS::stack_name'}
448 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
449 ServiceNames: {get_attr: [ControllerServiceChain, role_data, service_names]}
452 type: OS::TripleO::Services
454 Services: {get_param: ComputeServices}
455 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
456 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
457 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
460 type: OS::Heat::ResourceGroup
463 count: {get_param: ComputeCount}
464 removal_policies: {get_param: ComputeRemovalPolicies}
466 type: OS::TripleO::Compute
468 CloudDomain: {get_param: CloudDomain}
469 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
470 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
471 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
472 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
475 template: {get_param: ComputeHostnameFormat}
477 '%stackname%': {get_param: 'OS::stack_name'}
479 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
480 ServiceNames: {get_attr: [ComputeServiceChain, role_data, service_names]}
482 BlockStorageServiceChain:
483 type: OS::TripleO::Services
485 Services: {get_param: BlockStorageServices}
486 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
487 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
488 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
491 type: OS::Heat::ResourceGroup
494 count: {get_param: BlockStorageCount}
495 removal_policies: {get_param: BlockStorageRemovalPolicies}
497 type: OS::TripleO::BlockStorage
499 UpdateIdentifier: {get_param: UpdateIdentifier}
502 template: {get_param: BlockStorageHostnameFormat}
504 '%stackname%': {get_param: 'OS::stack_name'}
505 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
506 ExtraConfig: {get_param: ExtraConfig}
507 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
508 CloudDomain: {get_param: CloudDomain}
509 ServerMetadata: {get_param: ServerMetadata}
511 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
512 ServiceNames: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
514 ObjectStorageServiceChain:
515 type: OS::TripleO::Services
517 Services: {get_param: ObjectStorageServices}
518 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
519 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
520 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
523 type: OS::Heat::ResourceGroup
526 count: {get_param: ObjectStorageCount}
527 removal_policies: {get_param: ObjectStorageRemovalPolicies}
529 type: OS::TripleO::ObjectStorage
531 UpdateIdentifier: {get_param: UpdateIdentifier}
532 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
535 template: {get_param: ObjectStorageHostnameFormat}
537 '%stackname%': {get_param: 'OS::stack_name'}
538 ExtraConfig: {get_param: ExtraConfig}
539 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
540 CloudDomain: {get_param: CloudDomain}
541 ServerMetadata: {get_param: ServerMetadata}
543 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
544 ServiceNames: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
546 CephStorageServiceChain:
547 type: OS::TripleO::Services
549 Services: {get_param: CephStorageServices}
550 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
551 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
552 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
555 type: OS::Heat::ResourceGroup
558 count: {get_param: CephStorageCount}
559 removal_policies: {get_param: CephStorageRemovalPolicies}
561 type: OS::TripleO::CephStorage
563 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
564 UpdateIdentifier: {get_param: UpdateIdentifier}
567 template: {get_param: CephStorageHostnameFormat}
569 '%stackname%': {get_param: 'OS::stack_name'}
570 ExtraConfig: {get_param: ExtraConfig}
571 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
572 CloudDomain: {get_param: CloudDomain}
573 ServerMetadata: {get_param: ServerMetadata}
575 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
576 ServiceNames: {get_attr: [CephStorageServiceChain, role_data, service_names]}
579 type: OS::TripleO::Network::Ports::NetIpListMap
581 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
582 ExternalIpList: {get_attr: [Controller, external_ip_address]}
583 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
584 StorageIpList: {get_attr: [Controller, storage_ip_address]}
585 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
586 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
587 ManagementIpList: {get_attr: [Controller, management_ip_address]}
590 type: OS::TripleO::AllNodes::SoftwareConfig
595 - {get_attr: [Compute, hosts_entry]}
598 - {get_attr: [Controller, hosts_entry]}
601 - {get_attr: [BlockStorage, hosts_entry]}
604 - {get_attr: [ObjectStorage, hosts_entry]}
607 - {get_attr: [CephStorage, hosts_entry]}
608 controller_ips: {get_attr: [Controller, ip_address]}
609 controller_names: {get_attr: [Controller, hostname]}
610 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RabbitmqNetwork]}]}
611 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MongodbNetwork]}]}
612 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RedisNetwork]}]}
613 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MemcachedNetwork]}]}
614 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MysqlNetwork]}]}
615 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HorizonNetwork]}]}
616 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
617 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
618 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
619 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
620 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
621 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
622 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaMetadataNetwork]}]}
623 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
624 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceRegistryNetwork]}]}
625 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
626 manila_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
627 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
628 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
629 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
630 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
631 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
632 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CephPublicNetwork]}]}
633 ceph_mon_node_names: {get_attr: [Controller, hostname]}
634 DeployIdentifier: {get_param: DeployIdentifier}
635 UpdateIdentifier: {get_param: UpdateIdentifier}
638 type: OS::Heat::RandomString
643 type: OS::Heat::RandomString
646 salt: {get_param: RabbitCookieSalt}
649 type: OS::TripleO::DefaultPasswords
651 DefaultMysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
652 DefaultRabbitCookie: {get_attr: [RabbitCookie, value]}
653 DefaultHeatAuthEncryptionKey: {get_attr: [HeatAuthEncryptionKey, value]}
654 DefaultPcsdPassword: {get_attr: [PcsdPassword, value]}
655 DefaultHorizonSecret: {get_attr: [HorizonSecret, value]}
657 # creates the network architecture
659 type: OS::TripleO::Network
662 type: OS::Neutron::Port
665 name: control_virtual_ip
666 network: {get_param: NeutronControlPlaneID}
667 fixed_ips: {get_param: ControlFixedIPs}
668 replacement_policy: AUTO
672 type: OS::TripleO::Network::Ports::RedisVipPort
674 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
675 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
676 PortName: redis_virtual_ip
677 NetworkName: {get_attr: [ServiceNetMap, service_net_map, RedisNetwork]}
679 FixedIPs: {get_param: RedisVirtualFixedIPs}
681 # The public VIP is on the External net, falls back to ctlplane
684 type: OS::TripleO::Network::Ports::ExternalVipPort
686 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
687 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
688 PortName: public_virtual_ip
689 FixedIPs: {get_param: PublicVirtualFixedIPs}
691 InternalApiVirtualIP:
693 type: OS::TripleO::Network::Ports::InternalApiVipPort
695 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
696 PortName: internal_api_virtual_ip
697 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
701 type: OS::TripleO::Network::Ports::StorageVipPort
703 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
704 PortName: storage_virtual_ip
705 FixedIPs: {get_param: StorageVirtualFixedIPs}
707 StorageMgmtVirtualIP:
709 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
711 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
712 PortName: storage_management_virtual_ip
713 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
716 type: OS::TripleO::Network::Ports::NetVipMap
718 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
719 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
720 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
721 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
722 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
723 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
724 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
725 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
726 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
727 # No tenant or management VIP required
730 type: OS::TripleO::VipConfig
733 type: OS::Heat::StructuredDeployments
736 config: {get_resource: VipConfig}
737 servers: {get_attr: [Controller, attributes, nova_server_resource]}
739 # service VIP mappings
740 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
741 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
742 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
743 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
744 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
745 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceRegistryNetwork]}]}
746 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
747 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
748 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaMetadataNetwork]}]}
749 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
750 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
751 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
752 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
753 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HorizonNetwork]}]}
754 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
755 manila_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
756 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MysqlNetwork]}]}
757 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RabbitMqNetwork]}]}
758 # direct configuration of Virtual IPs for each network
759 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
760 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
761 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
762 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
763 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
764 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
765 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
767 ControllerSwiftDeployment:
768 type: OS::Heat::StructuredDeployments
770 name: ControllerSwiftDeployment
771 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
772 servers: {get_attr: [Controller, attributes, nova_server_resource]}
774 ObjectStorageSwiftDeployment:
775 type: OS::Heat::StructuredDeployments
777 name: ObjectStorageSwiftDeployment
778 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
779 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
781 SwiftDevicesAndProxyConfig:
782 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
784 controller_swift_devices: {get_attr: [Controller, swift_device]}
785 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
786 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
788 ControllerAllNodesDeployment:
789 type: OS::Heat::StructuredDeployments
791 name: ControllerAllNodesDeployment
792 config: {get_attr: [allNodesConfig, config_id]}
793 servers: {get_attr: [Controller, attributes, nova_server_resource]}
795 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
796 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
798 ComputeAllNodesDeployment:
799 type: OS::Heat::StructuredDeployments
801 name: ComputeAllNodesDeployment
802 config: {get_attr: [allNodesConfig, config_id]}
803 servers: {get_attr: [Compute, attributes, nova_server_resource]}
805 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
806 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
808 BlockStorageAllNodesDeployment:
809 type: OS::Heat::StructuredDeployments
811 name: BlockStorageAllNodesDeployment
812 config: {get_attr: [allNodesConfig, config_id]}
813 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
815 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
816 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
818 ObjectStorageAllNodesDeployment:
819 type: OS::Heat::StructuredDeployments
821 name: ObjectStorageAllNodesDeployment
822 config: {get_attr: [allNodesConfig, config_id]}
823 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
825 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
826 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
828 CephStorageAllNodesDeployment:
829 type: OS::Heat::StructuredDeployments
831 name: CephStorageAllNodesDeployment
832 config: {get_attr: [allNodesConfig, config_id]}
833 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
835 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
836 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
838 # All Nodes Validations
839 AllNodesValidationConfig:
840 type: OS::TripleO::AllNodes::Validation
845 - - {get_attr: [Controller, resource.0.external_ip_address]}
846 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
847 - {get_attr: [Controller, resource.0.storage_ip_address]}
848 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
849 - {get_attr: [Controller, resource.0.tenant_ip_address]}
850 - {get_attr: [Controller, resource.0.management_ip_address]}
852 ControllerAllNodesValidationDeployment:
853 type: OS::Heat::StructuredDeployments
854 depends_on: ControllerAllNodesDeployment
856 name: ControllerAllNodesValidationDeployment
857 config: {get_resource: AllNodesValidationConfig}
858 servers: {get_attr: [Controller, attributes, nova_server_resource]}
860 ComputeAllNodesValidationDeployment:
861 type: OS::Heat::StructuredDeployments
862 depends_on: ComputeAllNodesDeployment
864 name: ComputeAllNodesValidationDeployment
865 config: {get_resource: AllNodesValidationConfig}
866 servers: {get_attr: [Compute, attributes, nova_server_resource]}
868 BlockStorageAllNodesValidationDeployment:
869 type: OS::Heat::StructuredDeployments
870 depends_on: BlockStorageAllNodesDeployment
872 name: BlockStorageAllNodesValidationDeployment
873 config: {get_resource: AllNodesValidationConfig}
874 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
876 ObjectStorageAllNodesValidationDeployment:
877 type: OS::Heat::StructuredDeployments
878 depends_on: ObjectStorageAllNodesDeployment
880 name: ObjectStorageAllNodesValidationDeployment
881 config: {get_resource: AllNodesValidationConfig}
882 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
884 CephStorageAllNodesValidationDeployment:
885 type: OS::Heat::StructuredDeployments
886 depends_on: CephStorageAllNodesDeployment
888 name: CephStorageAllNodesValidationDeployment
889 config: {get_resource: AllNodesValidationConfig}
890 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
893 type: OS::TripleO::Tasks::UpdateWorkflow
895 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
896 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
897 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
898 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
899 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
901 deploy_identifier: {get_param: DeployIdentifier}
902 update_identifier: {get_param: UpdateIdentifier}
904 # Optional ExtraConfig for all nodes - all roles are passed in here, but
905 # the nested template may configure each role differently (or not at all)
907 type: OS::TripleO::AllNodesExtraConfig
910 - ComputeAllNodesValidationDeployment
911 - BlockStorageAllNodesValidationDeployment
912 - ObjectStorageAllNodesValidationDeployment
913 - CephStorageAllNodesValidationDeployment
914 - ControllerAllNodesValidationDeployment
916 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
917 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
918 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
919 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
920 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
922 # Nested stack deployment runs after all other controller deployments
923 ControllerNodesPostDeployment:
924 type: OS::TripleO::ControllerPostDeployment
925 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment]
927 servers: {get_attr: [Controller, attributes, nova_server_resource]}
928 RoleData: {get_attr: [ControllerServiceChain, role_data]}
930 ComputeNodesPostDeployment:
931 type: OS::TripleO::ComputePostDeployment
932 depends_on: [ComputeAllNodesDeployment]
934 servers: {get_attr: [Compute, attributes, nova_server_resource]}
935 RoleData: {get_attr: [ComputeServiceChain, role_data]}
937 ObjectStorageNodesPostDeployment:
938 type: OS::TripleO::ObjectStoragePostDeployment
939 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
941 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
942 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
944 BlockStorageNodesPostDeployment:
945 type: OS::TripleO::BlockStoragePostDeployment
946 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
948 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
949 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
951 CephStorageNodesPostDeployment:
952 type: OS::TripleO::CephStoragePostDeployment
953 depends_on: [ControllerNodesPostDeployment, CephStorageAllNodesDeployment]
955 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
956 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
960 description: URL for the Overcloud Keystone service
961 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
963 description: Keystone Admin VIP endpoint
964 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
966 description: Controller VIP for public API endpoints
967 value: {get_attr: [VipMap, net_ip_map, external]}
969 description: VIP for Aodh API internal endpoint
970 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
971 CeilometerInternalVip:
972 description: VIP for Ceilometer API internal endpoint
973 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
975 description: VIP for Cinder API internal endpoint
976 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
978 description: VIP for Glance API internal endpoint
979 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
981 description: VIP for Gnocchi API internal endpoint
982 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
984 description: VIP for Heat API internal endpoint
985 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
987 description: VIP for Ironic API internal endpoint
988 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
990 description: VIP for Keystone API internal endpoint
991 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
993 description: VIP for Manila API internal endpoint
994 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
996 description: VIP for Neutron API internal endpoint
997 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
999 description: VIP for Nova API internal endpoint
1000 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
1002 description: VIP for Sahara API internal endpoint
1003 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
1005 description: VIP for Swift Proxy internal endpoint
1006 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
1009 Mapping of the resources with the needed info for their endpoints.
1010 This includes the protocol used, the IP, port and also a full
1011 representation of the URI.
1012 value: {get_attr: [EndpointMap, endpoint_map]}
1015 The content that should be appended to your /etc/hosts if you want to get
1016 hostname-based access to the deployed nodes (useful for testing without
1018 value: {get_attr: [allNodesConfig, hosts_entries]}
1020 description: The services enabled on each role
1022 Controller: {get_attr: [ControllerServiceChain, role_data, service_names]}
1023 Compute: {get_attr: [ComputeServiceChain, role_data, service_names]}
1024 BlockStorage: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
1025 ObjectStorage: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
1026 CephStorage: {get_attr: [CephStorageServiceChain, role_data, service_names]}