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
21 description: Should be used for arbitrary ips.
23 InternalApiVirtualFixedIPs:
26 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
27 [{'ip_address':'1.2.3.4'}]
29 NeutronControlPlaneID:
32 description: Neutron ID or name for ctlplane network.
33 NeutronPublicInterface:
35 description: What interface to bridge onto br-ex for network nodes.
37 PublicVirtualFixedIPs:
40 Control the IP allocation for the PublicVirtualInterface port. E.g.
41 [{'ip_address':'1.2.3.4'}]
46 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
47 StorageVirtualFixedIPs:
50 Control the IP allocation for the StorageVirtualInterface port. E.g.
51 [{'ip_address':'1.2.3.4'}]
53 StorageMgmtVirtualFixedIPs:
56 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
57 [{'ip_address':'1.2.3.4'}]
62 Control the IP allocation for the virtual IP used by Redis. E.g.
63 [{'ip_address':'1.2.3.4'}]
66 default: 'localdomain'
69 The DNS domain used for the hosts. This should match the dhcp_domain
70 configured in the Undercloud neutron. Defaults to localdomain.
74 Extra properties or metadata passed to Nova for the created nodes in
75 the overcloud. It's accessible via the Nova metadata API.
78 # Controller-specific params
82 controllerExtraConfig:
85 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
90 Additional configuration to inject into the cluster. The format required
91 may be implementation specific, e.g puppet hieradata. Any role specific
92 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
95 description: A random string to be used as a salt when hashing to determine mappings in the ring.
100 # Compute-specific params
104 HypervisorNeutronPhysicalBridge:
107 An OVS bridge to create on each hypervisor. This defaults to br-ex the
108 same as the control plane nodes, as we have a uniform configuration of
109 the openvswitch agent. Typically should not need to be changed.
111 HypervisorNeutronPublicInterface:
113 description: What interface to add to the HypervisorNeutronPhysicalBridge.
118 - OS::TripleO::Services::CephMon
119 - OS::TripleO::Services::CephExternal
120 - OS::TripleO::Services::CinderApi
121 - OS::TripleO::Services::CinderBackup
122 - OS::TripleO::Services::CinderScheduler
123 - OS::TripleO::Services::CinderVolume
124 - OS::TripleO::Services::Core
125 - OS::TripleO::Services::Kernel
126 - OS::TripleO::Services::Keystone
127 - OS::TripleO::Services::GlanceApi
128 - OS::TripleO::Services::GlanceRegistry
129 - OS::TripleO::Services::HeatApi
130 - OS::TripleO::Services::HeatApiCfn
131 - OS::TripleO::Services::HeatApiCloudwatch
132 - OS::TripleO::Services::HeatEngine
133 - OS::TripleO::Services::MySQL
134 - OS::TripleO::Services::NeutronDhcpAgent
135 - OS::TripleO::Services::NeutronL3Agent
136 - OS::TripleO::Services::NeutronMetadataAgent
137 - OS::TripleO::Services::NeutronApi
138 - OS::TripleO::Services::NeutronCorePlugin
139 - OS::TripleO::Services::NeutronOvsAgent
140 - OS::TripleO::Services::RabbitMQ
141 - OS::TripleO::Services::HAproxy
142 - OS::TripleO::Services::Keepalived
143 - OS::TripleO::Services::Memcached
144 - OS::TripleO::Services::Pacemaker
145 - OS::TripleO::Services::Redis
146 - OS::TripleO::Services::NovaConductor
147 - OS::TripleO::Services::MongoDb
148 - OS::TripleO::Services::NovaApi
149 - OS::TripleO::Services::NovaScheduler
150 - OS::TripleO::Services::NovaConsoleauth
151 - OS::TripleO::Services::NovaVncproxy
152 - OS::TripleO::Services::Ntp
153 - OS::TripleO::Services::SwiftProxy
154 - OS::TripleO::Services::SwiftStorage
155 - OS::TripleO::Services::SwiftRingBuilder
156 - OS::TripleO::Services::Snmp
157 - OS::TripleO::Services::Timezone
158 - OS::TripleO::Services::CeilometerApi
159 - OS::TripleO::Services::CeilometerCollector
160 - OS::TripleO::Services::CeilometerExpirer
161 - OS::TripleO::Services::CeilometerAgentCentral
162 - OS::TripleO::Services::CeilometerAgentNotification
163 - OS::TripleO::Services::Horizon
164 - OS::TripleO::Services::GnocchiApi
165 - OS::TripleO::Services::GnocchiMetricd
166 - OS::TripleO::Services::GnocchiStatsd
167 - OS::Tripleo::Services::ManilaApi
168 - OS::Tripleo::Services::ManilaScheduler
169 - OS::Tripleo::Services::ManilaShare
170 - OS::TripleO::Services::AodhApi
171 - OS::TripleO::Services::AodhEvaluator
172 - OS::TripleO::Services::AodhNotifier
173 - OS::TripleO::Services::AodhListener
174 - OS::TripleO::Services::SaharaApi
175 - OS::TripleO::Services::SaharaEngine
176 - OS::TripleO::Services::IronicApi
177 - OS::TripleO::Services::IronicConductor
178 - OS::TripleO::Services::NovaIronic
179 - OS::TripleO::Services::TripleoPackages
180 - OS::TripleO::Services::TripleoFirewall
181 description: A list of service resources (configured in the Heat
182 resource_registry) which represent nested stacks
183 for each service that should get installed on the Controllers.
184 type: comma_delimited_list
188 - OS::TripleO::Services::CephClient
189 - OS::TripleO::Services::CephExternal
190 - OS::TripleO::Services::Timezone
191 - OS::TripleO::Services::Ntp
192 - OS::TripleO::Services::Snmp
193 - OS::TripleO::Services::NovaCompute
194 - OS::TripleO::Services::NovaLibvirt
195 - OS::TripleO::Services::Kernel
196 - OS::TripleO::Services::ComputeNeutronCorePlugin
197 - OS::TripleO::Services::ComputeNeutronOvsAgent
198 - OS::TripleO::Services::ComputeCeilometerAgent
199 - OS::TripleO::Services::ComputeNeutronL3Agent
200 - OS::TripleO::Services::ComputeNeutronMetadataAgent
201 - OS::TripleO::Services::TripleoPackages
202 - OS::TripleO::Services::TripleoFirewall
203 description: A list of service resources (configured in the Heat
204 resource_registry) which represent nested stacks
205 for each service that should get installed on the Compute Nodes.
206 type: comma_delimited_list
208 # Block storage specific parameters
212 BlockStorageExtraConfig:
215 BlockStorage specific configuration to inject into the cluster. Same
216 structure as ExtraConfig.
218 BlockStorageServices:
220 - OS::TripleO::Services::CinderVolume
221 - OS::TripleO::Services::Kernel
222 - OS::TripleO::Services::Ntp
223 - OS::TripleO::Services::Timezone
224 - OS::TripleO::Services::Snmp
225 - OS::TripleO::Services::TripleoPackages
226 - OS::TripleO::Services::TripleoFirewall
227 description: A list of service resources (configured in the Heat
228 resource_registry) which represent nested stacks
229 for each service that should get installed on the BlockStorage nodes.
230 type: comma_delimited_list
232 # Object storage specific parameters
236 ObjectStorageExtraConfig:
239 ObjectStorage specific configuration to inject into the cluster. Same
240 structure as ExtraConfig.
242 ObjectStorageServices:
244 - OS::TripleO::Services::Kernel
245 - OS::TripleO::Services::Ntp
246 - OS::TripleO::Services::SwiftStorage
247 - OS::TripleO::Services::SwiftRingBuilder
248 - OS::TripleO::Services::Snmp
249 - OS::TripleO::Services::Timezone
250 - OS::TripleO::Services::TripleoPackages
251 - OS::TripleO::Services::TripleoFirewall
252 description: A list of service resources (configured in the Heat
253 resource_registry) which represent nested stacks
254 for each service that should get installed on the ObjectStorage nodes.
255 Note this role currently only supports steps 2, 3 and 4 configuration.
256 type: comma_delimited_list
259 # Ceph storage specific parameters
263 CephStorageExtraConfig:
266 CephStorage specific configuration to inject into the cluster. Same
267 structure as ExtraConfig.
271 - OS::TripleO::Services::CephOSD
272 - OS::TripleO::Services::Kernel
273 - OS::TripleO::Services::Ntp
274 - OS::TripleO::Services::Timezone
275 - OS::TripleO::Services::TripleoPackages
276 - OS::TripleO::Services::TripleoFirewall
277 description: A list of service resources (configured in the Heat
278 resource_registry) which represent nested stacks
279 for each service that should get installed on the CephStorage nodes.
280 type: comma_delimited_list
282 # Hostname format for each role
283 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
284 # and %stackname% is replaced with OS::stack_name in the template below.
285 # If you want to use the heat generated names, pass '' (empty string).
286 ControllerHostnameFormat:
288 description: Format for Controller node hostnames
289 default: '%stackname%-controller-%index%'
290 ComputeHostnameFormat:
292 description: Format for Compute node hostnames
293 default: '%stackname%-novacompute-%index%'
294 BlockStorageHostnameFormat:
296 description: Format for BlockStorage node hostnames
297 default: '%stackname%-blockstorage-%index%'
298 ObjectStorageHostnameFormat:
300 description: Format for SwiftStorage node hostnames
301 default: '%stackname%-objectstorage-%index%'
302 CephStorageHostnameFormat:
304 description: Format for CephStorage node hostnames
305 default: '%stackname%-cephstorage-%index%'
307 # Identifiers to trigger tasks on nodes
312 Setting to a previously unused value during stack-update will trigger
313 package update on all nodes
318 Setting this to a unique value will re-run any deployment tasks which
319 perform configuration on a Heat stack-update.
321 # If you want to remove a specific node from a resource group, you can pass
322 # the node name or id as a <Group>RemovalPolicies parameter, for example:
323 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
324 ControllerRemovalPolicies:
328 List of resources to be removed from ControllerResourceGroup when
329 doing an update which requires removal of specific resources.
330 ComputeRemovalPolicies:
334 List of resources to be removed from ComputeResourceGroup when
335 doing an update which requires removal of specific resources.
336 BlockStorageRemovalPolicies:
340 List of resources to be removed from BlockStorageResourceGroup when
341 doing an update which requires removal of specific resources.
342 ObjectStorageRemovalPolicies:
346 List of resources to be removed from ObjectStorageResourceGroup when
347 doing an update which requires removal of specific resources.
348 CephStorageRemovalPolicies:
352 List of resources to be removed from CephStorageResourceGroup when
353 doing an update which requires removal of specific resources.
357 description: Do not use deprecated params, they will be removed.
359 - controllerExtraConfig
364 HeatAuthEncryptionKey:
365 type: OS::Heat::RandomString
368 type: OS::Heat::RandomString
373 type: OS::Heat::RandomString
378 type: OS::TripleO::ServiceNetMap
381 type: OS::TripleO::EndpointMap
383 CloudName: {get_param: CloudName}
384 NetIpMap: {get_attr: [VipMap, net_ip_map]}
385 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
387 ControllerServiceChain:
388 type: OS::TripleO::Services
390 Services: {get_param: ControllerServices}
391 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
392 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
393 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
396 type: OS::Heat::ResourceGroup
399 count: {get_param: ControllerCount}
400 removal_policies: {get_param: ControllerRemovalPolicies}
402 type: OS::TripleO::Controller
404 CloudDomain: {get_param: CloudDomain}
405 controllerExtraConfig: {get_param: controllerExtraConfig}
406 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
407 HorizonSecret: {get_resource: HorizonSecret}
408 PcsdPassword: {get_resource: PcsdPassword}
409 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
410 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
411 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
412 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
415 template: {get_param: ControllerHostnameFormat}
417 '%stackname%': {get_param: 'OS::stack_name'}
419 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
420 ServiceNames: {get_attr: [ControllerServiceChain, role_data, service_names]}
423 type: OS::TripleO::Services
425 Services: {get_param: ComputeServices}
426 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
427 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
428 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
431 type: OS::Heat::ResourceGroup
434 count: {get_param: ComputeCount}
435 removal_policies: {get_param: ComputeRemovalPolicies}
437 type: OS::TripleO::Compute
439 CloudDomain: {get_param: CloudDomain}
440 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
441 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
442 # L3 HA and Failover is not relevant for Computes, should be removed
443 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
444 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
445 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
446 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
449 template: {get_param: ComputeHostnameFormat}
451 '%stackname%': {get_param: 'OS::stack_name'}
453 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
454 ServiceNames: {get_attr: [ComputeServiceChain, role_data, service_names]}
456 BlockStorageServiceChain:
457 type: OS::TripleO::Services
459 Services: {get_param: BlockStorageServices}
460 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
461 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
462 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
465 type: OS::Heat::ResourceGroup
468 count: {get_param: BlockStorageCount}
469 removal_policies: {get_param: BlockStorageRemovalPolicies}
471 type: OS::TripleO::BlockStorage
473 UpdateIdentifier: {get_param: UpdateIdentifier}
476 template: {get_param: BlockStorageHostnameFormat}
478 '%stackname%': {get_param: 'OS::stack_name'}
479 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
480 ExtraConfig: {get_param: ExtraConfig}
481 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
482 CloudDomain: {get_param: CloudDomain}
483 ServerMetadata: {get_param: ServerMetadata}
485 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
486 ServiceNames: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
488 ObjectStorageServiceChain:
489 type: OS::TripleO::Services
491 Services: {get_param: ObjectStorageServices}
492 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
493 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
494 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
497 type: OS::Heat::ResourceGroup
500 count: {get_param: ObjectStorageCount}
501 removal_policies: {get_param: ObjectStorageRemovalPolicies}
503 type: OS::TripleO::ObjectStorage
505 HashSuffix: {get_param: SwiftHashSuffix}
506 UpdateIdentifier: {get_param: UpdateIdentifier}
507 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
510 template: {get_param: ObjectStorageHostnameFormat}
512 '%stackname%': {get_param: 'OS::stack_name'}
513 ExtraConfig: {get_param: ExtraConfig}
514 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
515 CloudDomain: {get_param: CloudDomain}
516 ServerMetadata: {get_param: ServerMetadata}
518 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
519 ServiceNames: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
521 CephStorageServiceChain:
522 type: OS::TripleO::Services
524 Services: {get_param: CephStorageServices}
525 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
526 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
527 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
530 type: OS::Heat::ResourceGroup
533 count: {get_param: CephStorageCount}
534 removal_policies: {get_param: CephStorageRemovalPolicies}
536 type: OS::TripleO::CephStorage
538 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
539 UpdateIdentifier: {get_param: UpdateIdentifier}
542 template: {get_param: CephStorageHostnameFormat}
544 '%stackname%': {get_param: 'OS::stack_name'}
545 ExtraConfig: {get_param: ExtraConfig}
546 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
547 CloudDomain: {get_param: CloudDomain}
548 ServerMetadata: {get_param: ServerMetadata}
550 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
551 ServiceNames: {get_attr: [CephStorageServiceChain, role_data, service_names]}
554 type: OS::TripleO::Network::Ports::NetIpListMap
556 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
557 ExternalIpList: {get_attr: [Controller, external_ip_address]}
558 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
559 StorageIpList: {get_attr: [Controller, storage_ip_address]}
560 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
561 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
562 ManagementIpList: {get_attr: [Controller, management_ip_address]}
565 type: OS::TripleO::AllNodes::SoftwareConfig
570 - {get_attr: [Compute, hosts_entry]}
573 - {get_attr: [Controller, hosts_entry]}
576 - {get_attr: [BlockStorage, hosts_entry]}
579 - {get_attr: [ObjectStorage, hosts_entry]}
582 - {get_attr: [CephStorage, hosts_entry]}
583 controller_ips: {get_attr: [Controller, ip_address]}
584 controller_names: {get_attr: [Controller, hostname]}
585 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RabbitmqNetwork]}]}
586 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MongodbNetwork]}]}
587 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RedisNetwork]}]}
588 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MemcachedNetwork]}]}
589 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MysqlNetwork]}]}
590 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HorizonNetwork]}]}
591 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
592 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
593 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
594 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
595 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
596 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
597 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaMetadataNetwork]}]}
598 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
599 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceRegistryNetwork]}]}
600 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
601 manila_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
602 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
603 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
604 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
605 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
606 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
607 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CephPublicNetwork]}]}
608 ceph_mon_node_names: {get_attr: [Controller, hostname]}
609 DeployIdentifier: {get_param: DeployIdentifier}
610 UpdateIdentifier: {get_param: UpdateIdentifier}
613 type: OS::Heat::RandomString
618 type: OS::Heat::RandomString
621 salt: {get_param: RabbitCookieSalt}
624 type: OS::TripleO::DefaultPasswords
626 DefaultMysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
627 DefaultRabbitCookie: {get_attr: [RabbitCookie, value]}
628 DefaultHeatAuthEncryptionKey: {get_attr: [HeatAuthEncryptionKey, value]}
629 DefaultPcsdPassword: {get_attr: [PcsdPassword, value]}
630 DefaultHorizonSecret: {get_attr: [HorizonSecret, value]}
632 # creates the network architecture
634 type: OS::TripleO::Network
637 type: OS::Neutron::Port
640 name: control_virtual_ip
641 network: {get_param: NeutronControlPlaneID}
642 fixed_ips: {get_param: ControlFixedIPs}
643 replacement_policy: AUTO
647 type: OS::TripleO::Network::Ports::RedisVipPort
649 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
650 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
651 PortName: redis_virtual_ip
652 NetworkName: {get_attr: [ServiceNetMap, service_net_map, RedisNetwork]}
654 FixedIPs: {get_param: RedisVirtualFixedIPs}
656 # The public VIP is on the External net, falls back to ctlplane
659 type: OS::TripleO::Network::Ports::ExternalVipPort
661 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
662 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
663 PortName: public_virtual_ip
664 FixedIPs: {get_param: PublicVirtualFixedIPs}
666 InternalApiVirtualIP:
668 type: OS::TripleO::Network::Ports::InternalApiVipPort
670 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
671 PortName: internal_api_virtual_ip
672 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
676 type: OS::TripleO::Network::Ports::StorageVipPort
678 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
679 PortName: storage_virtual_ip
680 FixedIPs: {get_param: StorageVirtualFixedIPs}
682 StorageMgmtVirtualIP:
684 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
686 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
687 PortName: storage_management_virtual_ip
688 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
691 type: OS::TripleO::Network::Ports::NetVipMap
693 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
694 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
695 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
696 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
697 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
698 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
699 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
700 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
701 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
702 # No tenant or management VIP required
705 type: OS::TripleO::VipConfig
708 type: OS::Heat::StructuredDeployments
711 config: {get_resource: VipConfig}
712 servers: {get_attr: [Controller, attributes, nova_server_resource]}
714 # service VIP mappings
715 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
716 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
717 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
718 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
719 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
720 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceRegistryNetwork]}]}
721 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
722 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
723 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaMetadataNetwork]}]}
724 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
725 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
726 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
727 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
728 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HorizonNetwork]}]}
729 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
730 manila_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
731 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MysqlNetwork]}]}
732 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RabbitMqNetwork]}]}
733 # direct configuration of Virtual IPs for each network
734 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
735 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
736 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
737 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
738 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
739 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
740 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
742 ControllerSwiftDeployment:
743 type: OS::Heat::StructuredDeployments
745 name: ControllerSwiftDeployment
746 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
747 servers: {get_attr: [Controller, attributes, nova_server_resource]}
749 ObjectStorageSwiftDeployment:
750 type: OS::Heat::StructuredDeployments
752 name: ObjectStorageSwiftDeployment
753 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
754 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
756 SwiftDevicesAndProxyConfig:
757 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
759 controller_swift_devices: {get_attr: [Controller, swift_device]}
760 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
761 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
763 ControllerAllNodesDeployment:
764 type: OS::Heat::StructuredDeployments
766 name: ControllerAllNodesDeployment
767 config: {get_attr: [allNodesConfig, config_id]}
768 servers: {get_attr: [Controller, attributes, nova_server_resource]}
770 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
771 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
773 ComputeAllNodesDeployment:
774 type: OS::Heat::StructuredDeployments
776 name: ComputeAllNodesDeployment
777 config: {get_attr: [allNodesConfig, config_id]}
778 servers: {get_attr: [Compute, attributes, nova_server_resource]}
780 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
781 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
783 BlockStorageAllNodesDeployment:
784 type: OS::Heat::StructuredDeployments
786 name: BlockStorageAllNodesDeployment
787 config: {get_attr: [allNodesConfig, config_id]}
788 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
790 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
791 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
793 ObjectStorageAllNodesDeployment:
794 type: OS::Heat::StructuredDeployments
796 name: ObjectStorageAllNodesDeployment
797 config: {get_attr: [allNodesConfig, config_id]}
798 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
800 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
801 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
803 CephStorageAllNodesDeployment:
804 type: OS::Heat::StructuredDeployments
806 name: CephStorageAllNodesDeployment
807 config: {get_attr: [allNodesConfig, config_id]}
808 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
810 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
811 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
813 # All Nodes Validations
814 AllNodesValidationConfig:
815 type: OS::TripleO::AllNodes::Validation
820 - - {get_attr: [Controller, resource.0.external_ip_address]}
821 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
822 - {get_attr: [Controller, resource.0.storage_ip_address]}
823 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
824 - {get_attr: [Controller, resource.0.tenant_ip_address]}
825 - {get_attr: [Controller, resource.0.management_ip_address]}
827 ControllerAllNodesValidationDeployment:
828 type: OS::Heat::StructuredDeployments
829 depends_on: ControllerAllNodesDeployment
831 name: ControllerAllNodesValidationDeployment
832 config: {get_resource: AllNodesValidationConfig}
833 servers: {get_attr: [Controller, attributes, nova_server_resource]}
835 ComputeAllNodesValidationDeployment:
836 type: OS::Heat::StructuredDeployments
837 depends_on: ComputeAllNodesDeployment
839 name: ComputeAllNodesValidationDeployment
840 config: {get_resource: AllNodesValidationConfig}
841 servers: {get_attr: [Compute, attributes, nova_server_resource]}
843 BlockStorageAllNodesValidationDeployment:
844 type: OS::Heat::StructuredDeployments
845 depends_on: BlockStorageAllNodesDeployment
847 name: BlockStorageAllNodesValidationDeployment
848 config: {get_resource: AllNodesValidationConfig}
849 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
851 ObjectStorageAllNodesValidationDeployment:
852 type: OS::Heat::StructuredDeployments
853 depends_on: ObjectStorageAllNodesDeployment
855 name: ObjectStorageAllNodesValidationDeployment
856 config: {get_resource: AllNodesValidationConfig}
857 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
859 CephStorageAllNodesValidationDeployment:
860 type: OS::Heat::StructuredDeployments
861 depends_on: CephStorageAllNodesDeployment
863 name: CephStorageAllNodesValidationDeployment
864 config: {get_resource: AllNodesValidationConfig}
865 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
868 type: OS::TripleO::Tasks::UpdateWorkflow
870 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
871 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
872 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
873 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
874 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
876 deploy_identifier: {get_param: DeployIdentifier}
877 update_identifier: {get_param: UpdateIdentifier}
879 # Optional ExtraConfig for all nodes - all roles are passed in here, but
880 # the nested template may configure each role differently (or not at all)
882 type: OS::TripleO::AllNodesExtraConfig
885 - ComputeAllNodesValidationDeployment
886 - BlockStorageAllNodesValidationDeployment
887 - ObjectStorageAllNodesValidationDeployment
888 - CephStorageAllNodesValidationDeployment
889 - ControllerAllNodesValidationDeployment
891 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
892 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
893 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
894 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
895 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
897 # Nested stack deployment runs after all other controller deployments
898 ControllerNodesPostDeployment:
899 type: OS::TripleO::ControllerPostDeployment
900 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment]
902 servers: {get_attr: [Controller, attributes, nova_server_resource]}
903 RoleData: {get_attr: [ControllerServiceChain, role_data]}
905 ComputeNodesPostDeployment:
906 type: OS::TripleO::ComputePostDeployment
907 depends_on: [ComputeAllNodesDeployment]
909 servers: {get_attr: [Compute, attributes, nova_server_resource]}
910 RoleData: {get_attr: [ComputeServiceChain, role_data]}
912 ObjectStorageNodesPostDeployment:
913 type: OS::TripleO::ObjectStoragePostDeployment
914 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
916 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
917 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
919 BlockStorageNodesPostDeployment:
920 type: OS::TripleO::BlockStoragePostDeployment
921 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
923 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
924 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
926 CephStorageNodesPostDeployment:
927 type: OS::TripleO::CephStoragePostDeployment
928 depends_on: [ControllerNodesPostDeployment, CephStorageAllNodesDeployment]
930 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
931 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
935 description: URL for the Overcloud Keystone service
936 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
938 description: Keystone Admin VIP endpoint
939 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
941 description: Controller VIP for public API endpoints
942 value: {get_attr: [VipMap, net_ip_map, external]}
944 description: VIP for Aodh API internal endpoint
945 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
946 CeilometerInternalVip:
947 description: VIP for Ceilometer API internal endpoint
948 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
950 description: VIP for Cinder API internal endpoint
951 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
953 description: VIP for Glance API internal endpoint
954 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
956 description: VIP for Gnocchi API internal endpoint
957 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
959 description: VIP for Heat API internal endpoint
960 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
962 description: VIP for Ironic API internal endpoint
963 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
965 description: VIP for Keystone API internal endpoint
966 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
968 description: VIP for Manila API internal endpoint
969 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
971 description: VIP for Neutron API internal endpoint
972 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
974 description: VIP for Nova API internal endpoint
975 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
977 description: VIP for Sahara API internal endpoint
978 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
980 description: VIP for Swift Proxy internal endpoint
981 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
984 Mapping of the resources with the needed info for their endpoints.
985 This includes the protocol used, the IP, port and also a full
986 representation of the URI.
987 value: {get_attr: [EndpointMap, endpoint_map]}
990 The content that should be appended to your /etc/hosts if you want to get
991 hostname-based access to the deployed nodes (useful for testing without
993 value: {get_attr: [allNodesConfig, hosts_entries]}
995 description: The services enabled on each role
997 Controller: {get_attr: [ControllerServiceChain, role_data, service_names]}
998 Compute: {get_attr: [ComputeServiceChain, role_data, service_names]}
999 BlockStorage: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
1000 ObjectStorage: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
1001 CephStorage: {get_attr: [CephStorageServiceChain, role_data, service_names]}