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)
16 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
20 description: The password for the aodh services.
23 CinderEnableNfsBackend:
25 description: Whether to enable or not the NFS backend for Cinder
27 CinderEnableRbdBackend:
29 description: Whether to enable or not the Rbd backend for Cinder
33 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
37 description: Should be used for arbitrary ips.
41 description: Enable IPv6 in Corosync
45 description: Set to True to enable debugging on all services.
49 description: Syslog address where HAproxy will send its log
52 default: 'REBUILD_PRESERVE_EPHEMERAL'
53 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
55 InternalApiVirtualFixedIPs:
58 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
59 [{'ip_address':'1.2.3.4'}]
63 description: Name of an existing Nova key pair to enable SSH access to the instances
66 - custom_constraint: nova.keypair
69 description: Enable IPv6 features in Memcached.
71 NeutronControlPlaneID:
74 description: Neutron ID or name for ctlplane network.
76 description: The password for the neutron service account, used by neutron agents.
79 NeutronPublicInterface:
81 description: What interface to bridge onto br-ex for network nodes.
85 description: Enable IPv6 features in Nova
88 description: The password for the nova service account, used by nova-api.
91 PublicVirtualFixedIPs:
94 Control the IP allocation for the PublicVirtualInterface port. E.g.
95 [{'ip_address':'1.2.3.4'}]
100 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
103 description: The username for RabbitMQ
106 description: The password for RabbitMQ
112 Rabbit client subscriber parameter to specify
113 an SSL connection to the RabbitMQ host.
117 description: Set rabbit subscriber port, change this if using SSL
120 description: The password for Redis
123 StorageVirtualFixedIPs:
126 Control the IP allocation for the StorageVirtualInterface port. E.g.
127 [{'ip_address':'1.2.3.4'}]
129 StorageMgmtVirtualFixedIPs:
132 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
133 [{'ip_address':'1.2.3.4'}]
136 default: 'localdomain'
139 The DNS domain used for the hosts. This should match the dhcp_domain
140 configured in the Undercloud neutron. Defaults to localdomain.
144 Extra properties or metadata passed to Nova for the created nodes in
145 the overcloud. It's accessible via the Nova metadata API.
148 # Controller-specific params
154 controllerExtraConfig:
157 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
161 default: overcloud-full
163 - custom_constraint: glance.image
164 OvercloudControlFlavor:
165 description: Flavor for control nodes to request when deploying.
169 - custom_constraint: nova.flavor
170 ControlVirtualInterface:
172 description: Interface where virtual ip will be assigned.
176 description: Whether to enable fencing in Pacemaker or not.
180 description: Whether to use Galera instead of regular MariaDB.
182 ControllerSchedulerHints:
184 description: Optional scheduler hints to pass to nova
189 Additional configuration to inject into the cluster. The format required
190 may be implementation specific, e.g puppet hieradata. Any role specific
191 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
196 Pacemaker fencing configuration. The JSON should have
197 the following structure:
201 "agent": "AGENT_NAME",
202 "host_mac": "HOST_MAC_ADDRESS",
203 "params": {"PARAM_NAME": "PARAM_VALUE"}
211 "agent": "fence_xvm",
212 "host_mac": "52:54:00:aa:bb:cc",
214 "multicast_address": "225.0.0.12",
215 "port": "baremetal_0",
217 "manage_key_file": true,
218 "key_file": "/etc/fence_xvm.key",
219 "key_file_password": "abcdef"
227 InstanceNameTemplate:
228 default: 'instance-%08x'
229 description: Template string to be used to generate instance names
233 description: Whether to manage IPtables rules.
237 description: Whether IPtables rules should be purged before setting up the ones.
239 MysqlInnodbBufferPoolSize:
241 Specifies the size of the buffer pool in megabytes. Setting to
242 zero should be interpreted as "no value" and will defer to the
247 description: Configures MySQL max_connections config setting
250 PublicVirtualInterface:
253 Specifies the interface where the public-facing virtual ip will be assigned.
254 This should be int_public when a VLAN is being used.
257 description: A random string to be used as a salt when hashing to determine mappings in the ring.
263 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
266 description: Partition Power to use when building Swift rings
271 description: How many replicas to use in the swift rings.
273 # Compute-specific params
274 CeilometerComputeAgent:
275 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
279 - allowed_values: ['', Present]
283 HypervisorNeutronPhysicalBridge:
286 An OVS bridge to create on each hypervisor. This defaults to br-ex the
287 same as the control plane nodes, as we have a uniform configuration of
288 the openvswitch agent. Typically should not need to be changed.
290 HypervisorNeutronPublicInterface:
292 description: What interface to add to the HypervisorNeutronPhysicalBridge.
296 default: libvirt.LibvirtDriver
297 NovaComputeExtraConfig:
300 NovaCompute specific configuration to inject into the cluster. Same
301 structure as ExtraConfig.
303 NovaComputeLibvirtType:
306 NovaComputeLibvirtVifDriver:
308 description: Libvirt VIF driver configuration for the network
310 NovaComputeSchedulerHints:
312 description: Optional scheduler hints to pass to nova
314 NovaEnableRbdBackend:
316 description: Whether to enable or not the Rbd backend for Nova
320 default: overcloud-full
322 - custom_constraint: glance.image
325 description: Name of integration bridge used by Open vSwitch
327 NovaSecurityGroupAPI:
329 description: The full class name of the security API class
331 OvercloudComputeFlavor:
332 description: Use this flavor
336 - custom_constraint: nova.flavor
339 NeutronTenantNetwork: tenant
340 CeilometerApiNetwork: internal_api
341 AodhApiNetwork: internal_api
342 GnocchiApiNetwork: internal_api
343 MongoDbNetwork: internal_api
344 CinderApiNetwork: internal_api
345 CinderIscsiNetwork: storage
346 GlanceApiNetwork: storage
347 GlanceRegistryNetwork: internal_api
348 IronicApiNetwork: internal_api
349 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
350 KeystonePublicApiNetwork: internal_api
351 NeutronApiNetwork: internal_api
352 HeatApiNetwork: internal_api
353 NovaApiNetwork: internal_api
354 NovaMetadataNetwork: internal_api
355 NovaVncProxyNetwork: internal_api
356 SwiftMgmtNetwork: storage_mgmt
357 SwiftProxyNetwork: storage
358 SaharaApiNetwork: internal_api
359 HorizonNetwork: internal_api
360 MemcachedNetwork: internal_api
361 RabbitMqNetwork: internal_api
362 RedisNetwork: internal_api
363 MysqlNetwork: internal_api
364 CephClusterNetwork: storage_mgmt
365 CephPublicNetwork: storage
366 ControllerHostnameResolveNetwork: internal_api
367 ComputeHostnameResolveNetwork: internal_api
368 BlockStorageHostnameResolveNetwork: internal_api
369 ObjectStorageHostnameResolveNetwork: internal_api
370 CephStorageHostnameResolveNetwork: storage
371 description: Mapping of service_name -> network name. Typically set
372 via parameter_defaults in the resource registry.
377 - OS::TripleO::Services::CephMon
378 - OS::TripleO::Services::CephExternal
379 - OS::TripleO::Services::CinderApi
380 - OS::TripleO::Services::CinderScheduler
381 - OS::TripleO::Services::CinderVolume
382 - OS::TripleO::Services::Kernel
383 - OS::TripleO::Services::Keystone
384 - OS::TripleO::Services::GlanceApi
385 - OS::TripleO::Services::GlanceRegistry
386 - OS::TripleO::Services::HeatApi
387 - OS::TripleO::Services::HeatApiCfn
388 - OS::TripleO::Services::HeatApiCloudwatch
389 - OS::TripleO::Services::HeatEngine
390 - OS::TripleO::Services::NeutronDhcpAgent
391 - OS::TripleO::Services::NeutronL3Agent
392 - OS::TripleO::Services::NeutronMetadataAgent
393 - OS::TripleO::Services::NeutronServer
394 - OS::TripleO::Services::NeutronCorePlugin
395 - OS::TripleO::Services::NeutronOvsAgent
396 - OS::TripleO::Services::RabbitMQ
397 - OS::TripleO::Services::HAproxy
398 - OS::TripleO::Services::Keepalived
399 - OS::TripleO::Services::Memcached
400 - OS::TripleO::Services::Pacemaker
401 - OS::TripleO::Services::Redis
402 - OS::TripleO::Services::NovaConductor
403 - OS::TripleO::Services::MongoDb
404 - OS::TripleO::Services::NovaApi
405 - OS::TripleO::Services::NovaScheduler
406 - OS::TripleO::Services::NovaConsoleauth
407 - OS::TripleO::Services::NovaVncproxy
408 - OS::TripleO::Services::Ntp
409 - OS::TripleO::Services::SwiftProxy
410 - OS::TripleO::Services::SwiftStorage
411 - OS::TripleO::Services::Snmp
412 - OS::TripleO::Services::Timezone
413 - OS::TripleO::Services::CeilometerApi
414 - OS::TripleO::Services::CeilometerCollector
415 - OS::TripleO::Services::CeilometerExpirer
416 - OS::TripleO::Services::CeilometerAgentCentral
417 - OS::TripleO::Services::CeilometerAgentNotification
418 - OS::TripleO::Services::Horizon
419 - OS::TripleO::Services::GnocchiApi
420 - OS::TripleO::Services::GnocchiMetricd
421 - OS::TripleO::Services::GnocchiStatsd
423 description: A list of service resources (configured in the Heat
424 resource_registry) which represent nested stacks
425 for each service that should get installed on the Controllers.
426 type: comma_delimited_list
430 - OS::TripleO::Services::CephClient
431 - OS::TripleO::Services::CephExternal
432 - OS::TripleO::Services::Timezone
433 - OS::TripleO::Services::Ntp
434 - OS::TripleO::Services::Snmp
435 - OS::TripleO::Services::NovaCompute
436 - OS::TripleO::Services::NovaLibvirt
437 - OS::TripleO::Services::Kernel
438 - OS::TripleO::Services::ComputeNeutronCorePlugin
439 - OS::TripleO::Services::ComputeNeutronOvsAgent
440 description: A list of service resources (configured in the Heat
441 resource_registry) which represent nested stacks
442 for each service that should get installed on the Compute Nodes.
443 type: comma_delimited_list
445 # Block storage specific parameters
450 default: overcloud-full
452 OvercloudBlockStorageFlavor:
453 description: Flavor for block storage nodes to request when deploying.
457 - custom_constraint: nova.flavor
458 BlockStorageExtraConfig:
461 BlockStorage specific configuration to inject into the cluster. Same
462 structure as ExtraConfig.
464 BlockStorageSchedulerHints:
466 description: Optional scheduler hints to pass to nova
468 BlockStorageServices:
470 - OS::TripleO::Services::CinderVolume
471 - OS::TripleO::Services::Kernel
472 - OS::TripleO::Services::Ntp
473 - OS::TripleO::Services::Timezone
474 - OS::TripleO::Services::Snmp
475 description: A list of service resources (configured in the Heat
476 resource_registry) which represent nested stacks
477 for each service that should get installed on the BlockStorage nodes.
478 type: comma_delimited_list
480 # Object storage specific parameters
484 OvercloudSwiftStorageFlavor:
485 description: Flavor for Swift storage nodes to request when deploying.
489 - custom_constraint: nova.flavor
491 default: overcloud-full
493 ObjectStorageExtraConfig:
496 ObjectStorage specific configuration to inject into the cluster. Same
497 structure as ExtraConfig.
499 ObjectStorageSchedulerHints:
501 description: Optional scheduler hints to pass to nova
503 ObjectStorageServices:
505 - OS::TripleO::Services::Kernel
506 - OS::TripleO::Services::Ntp
507 - OS::TripleO::Services::SwiftStorage
508 - OS::TripleO::Services::Snmp
509 - OS::TripleO::Services::Timezone
510 description: A list of service resources (configured in the Heat
511 resource_registry) which represent nested stacks
512 for each service that should get installed on the ObjectStorage nodes.
513 Note this role currently only supports steps 2, 3 and 4 configuration.
514 type: comma_delimited_list
517 # Ceph storage specific parameters
522 default: overcloud-full
524 OvercloudCephStorageFlavor:
526 description: Flavor for Ceph storage nodes to request when deploying.
529 - custom_constraint: nova.flavor
530 CephStorageExtraConfig:
533 CephStorage specific configuration to inject into the cluster. Same
534 structure as ExtraConfig.
536 CephStorageSchedulerHints:
538 description: Optional scheduler hints to pass to nova
542 - OS::TripleO::Services::CephOSD
543 - OS::TripleO::Services::Kernel
544 - OS::TripleO::Services::Ntp
545 - OS::TripleO::Services::Timezone
546 description: A list of service resources (configured in the Heat
547 resource_registry) which represent nested stacks
548 for each service that should get installed on the CephStorage nodes.
549 type: comma_delimited_list
551 # Hostname format for each role
552 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
553 # and %stackname% is replaced with OS::stack_name in the template below.
554 # If you want to use the heat generated names, pass '' (empty string).
555 ControllerHostnameFormat:
557 description: Format for Controller node hostnames
558 default: '%stackname%-controller-%index%'
559 ComputeHostnameFormat:
561 description: Format for Compute node hostnames
562 default: '%stackname%-novacompute-%index%'
563 BlockStorageHostnameFormat:
565 description: Format for BlockStorage node hostnames
566 default: '%stackname%-blockstorage-%index%'
567 ObjectStorageHostnameFormat:
569 description: Format for SwiftStorage node hostnames
570 default: '%stackname%-objectstorage-%index%'
571 CephStorageHostnameFormat:
573 description: Format for CephStorage node hostnames
574 default: '%stackname%-cephstorage-%index%'
576 # Identifiers to trigger tasks on nodes
581 Setting to a previously unused value during stack-update will trigger
582 package update on all nodes
587 Setting this to a unique value will re-run any deployment tasks which
588 perform configuration on a Heat stack-update.
590 # If you want to remove a specific node from a resource group, you can pass
591 # the node name or id as a <Group>RemovalPolicies parameter, for example:
592 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
593 ControllerRemovalPolicies:
597 List of resources to be removed from ControllerResourceGroup when
598 doing an update which requires removal of specific resources.
599 ComputeRemovalPolicies:
603 List of resources to be removed from ComputeResourceGroup when
604 doing an update which requires removal of specific resources.
605 BlockStorageRemovalPolicies:
609 List of resources to be removed from BlockStorageResourceGroup when
610 doing an update which requires removal of specific resources.
611 ObjectStorageRemovalPolicies:
615 List of resources to be removed from ObjectStorageResourceGroup when
616 doing an update which requires removal of specific resources.
617 CephStorageRemovalPolicies:
621 List of resources to be removed from CephStorageResourceGroup when
622 doing an update which requires removal of specific resources.
626 description: Do not use deprecated params, they will be removed.
628 - controllerExtraConfig
633 HeatAuthEncryptionKey:
634 type: OS::Heat::RandomString
637 type: OS::Heat::RandomString
642 type: OS::Heat::RandomString
647 type: OS::TripleO::EndpointMap
649 CloudName: {get_param: CloudName}
650 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
651 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
652 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
653 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
654 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
655 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
656 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
657 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
658 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
659 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
660 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
661 MysqlNoBracketsVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
662 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
663 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
664 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
665 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
666 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
668 ControllerServiceChain:
669 type: OS::TripleO::Services
671 Services: {get_param: ControllerServices}
672 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
675 type: OS::Heat::ResourceGroup
678 count: {get_param: ControllerCount}
679 removal_policies: {get_param: ControllerRemovalPolicies}
681 type: OS::TripleO::Controller
683 AdminPassword: {get_param: AdminPassword}
684 AodhPassword: {get_param: AodhPassword}
685 CloudDomain: {get_param: CloudDomain}
686 ControlVirtualInterface: {get_param: ControlVirtualInterface}
687 controllerExtraConfig: {get_param: controllerExtraConfig}
688 CorosyncIPv6: {get_param: CorosyncIPv6}
689 Debug: {get_param: Debug}
690 EnableFencing: {get_param: EnableFencing}
691 ManageFirewall: {get_param: ManageFirewall}
692 PurgeFirewallRules: {get_param: PurgeFirewallRules}
693 EnableGalera: {get_param: EnableGalera}
694 ExtraConfig: {get_param: ExtraConfig}
695 FencingConfig: {get_param: FencingConfig}
696 Flavor: {get_param: OvercloudControlFlavor}
697 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
698 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
699 HorizonSecret: {get_resource: HorizonSecret}
700 Image: {get_param: controllerImage}
701 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
702 InstanceNameTemplate: {get_param: InstanceNameTemplate}
703 KeyName: {get_param: KeyName}
704 MemcachedIPv6: {get_param: MemcachedIPv6}
705 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
706 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
707 MysqlMaxConnections: {get_param: MysqlMaxConnections}
708 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
709 NeutronPublicInterface: {get_param: NeutronPublicInterface}
710 NeutronPassword: {get_param: NeutronPassword}
711 NovaIPv6: {get_param: NovaIPv6}
712 NovaPassword: {get_param: NovaPassword}
713 PcsdPassword: {get_resource: PcsdPassword}
714 PublicVirtualInterface: {get_param: PublicVirtualInterface}
715 RabbitPassword: {get_param: RabbitPassword}
716 RabbitUserName: {get_param: RabbitUserName}
717 RabbitCookie: {get_attr: [RabbitCookie, value]}
718 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
719 RabbitClientPort: {get_param: RabbitClientPort}
720 RedisPassword: {get_param: RedisPassword}
721 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
722 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
723 SwiftHashSuffix: {get_param: SwiftHashSuffix}
724 SwiftMinPartHours: {get_param: SwiftMinPartHours}
725 SwiftPartPower: {get_param: SwiftPartPower}
726 SwiftReplicas: { get_param: SwiftReplicas}
727 ServiceNetMap: {get_param: ServiceNetMap}
728 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
729 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
730 UpdateIdentifier: {get_param: UpdateIdentifier}
733 template: {get_param: ControllerHostnameFormat}
735 '%stackname%': {get_param: 'OS::stack_name'}
737 ServerMetadata: {get_param: ServerMetadata}
738 SchedulerHints: {get_param: ControllerSchedulerHints}
739 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
743 type: OS::TripleO::Services
745 Services: {get_param: ComputeServices}
746 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
749 type: OS::Heat::ResourceGroup
752 count: {get_param: ComputeCount}
753 removal_policies: {get_param: ComputeRemovalPolicies}
755 type: OS::TripleO::Compute
757 AdminPassword: {get_param: AdminPassword}
758 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
759 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
760 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
761 Debug: {get_param: Debug}
762 ExtraConfig: {get_param: ExtraConfig}
763 Flavor: {get_param: OvercloudComputeFlavor}
764 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
765 Image: {get_param: NovaImage}
766 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
767 KeyName: {get_param: KeyName}
768 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
769 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
770 NeutronPassword: {get_param: NeutronPassword}
771 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
772 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
773 # L3 HA and Failover is not relevant for Computes, should be removed
774 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
775 NovaComputeDriver: {get_param: NovaComputeDriver}
776 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
777 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
778 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
779 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
780 NovaIPv6: {get_param: NovaIPv6}
781 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
782 NovaPassword: {get_param: NovaPassword}
783 NovaOVSBridge: {get_param: NovaOVSBridge}
784 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
785 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
786 RabbitPassword: {get_param: RabbitPassword}
787 RabbitUserName: {get_param: RabbitUserName}
788 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
789 RabbitClientPort: {get_param: RabbitClientPort}
790 ServiceNetMap: {get_param: ServiceNetMap}
791 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
792 UpdateIdentifier: {get_param: UpdateIdentifier}
795 template: {get_param: ComputeHostnameFormat}
797 '%stackname%': {get_param: 'OS::stack_name'}
798 CloudDomain: {get_param: CloudDomain}
799 ServerMetadata: {get_param: ServerMetadata}
800 SchedulerHints: {get_param: NovaComputeSchedulerHints}
802 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
804 BlockStorageServiceChain:
805 type: OS::TripleO::Services
807 Services: {get_param: BlockStorageServices}
808 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
811 type: OS::Heat::ResourceGroup
814 count: {get_param: BlockStorageCount}
815 removal_policies: {get_param: BlockStorageRemovalPolicies}
817 type: OS::TripleO::BlockStorage
819 Image: {get_param: BlockStorageImage}
820 KeyName: {get_param: KeyName}
821 Flavor: {get_param: OvercloudBlockStorageFlavor}
822 UpdateIdentifier: {get_param: UpdateIdentifier}
825 template: {get_param: BlockStorageHostnameFormat}
827 '%stackname%': {get_param: 'OS::stack_name'}
828 ServiceNetMap: {get_param: ServiceNetMap}
829 ExtraConfig: {get_param: ExtraConfig}
830 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
831 CloudDomain: {get_param: CloudDomain}
832 ServerMetadata: {get_param: ServerMetadata}
833 SchedulerHints: {get_param: BlockStorageSchedulerHints}
835 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
837 ObjectStorageServiceChain:
838 type: OS::TripleO::Services
840 Services: {get_param: ObjectStorageServices}
841 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
844 type: OS::Heat::ResourceGroup
847 count: {get_param: ObjectStorageCount}
848 removal_policies: {get_param: ObjectStorageRemovalPolicies}
850 type: OS::TripleO::ObjectStorage
852 KeyName: {get_param: KeyName}
853 Flavor: {get_param: OvercloudSwiftStorageFlavor}
854 HashSuffix: {get_param: SwiftHashSuffix}
855 MinPartHours: {get_param: SwiftMinPartHours}
856 PartPower: {get_param: SwiftPartPower}
857 Image: {get_param: SwiftStorageImage}
858 Replicas: { get_param: SwiftReplicas}
859 UpdateIdentifier: {get_param: UpdateIdentifier}
860 ServiceNetMap: {get_param: ServiceNetMap}
863 template: {get_param: ObjectStorageHostnameFormat}
865 '%stackname%': {get_param: 'OS::stack_name'}
866 ExtraConfig: {get_param: ExtraConfig}
867 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
868 CloudDomain: {get_param: CloudDomain}
869 ServerMetadata: {get_param: ServerMetadata}
870 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
872 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
874 CephStorageServiceChain:
875 type: OS::TripleO::Services
877 Services: {get_param: CephStorageServices}
878 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
881 type: OS::Heat::ResourceGroup
884 count: {get_param: CephStorageCount}
885 removal_policies: {get_param: CephStorageRemovalPolicies}
887 type: OS::TripleO::CephStorage
889 Image: {get_param: CephStorageImage}
890 KeyName: {get_param: KeyName}
891 Flavor: {get_param: OvercloudCephStorageFlavor}
892 ServiceNetMap: {get_param: ServiceNetMap}
893 UpdateIdentifier: {get_param: UpdateIdentifier}
896 template: {get_param: CephStorageHostnameFormat}
898 '%stackname%': {get_param: 'OS::stack_name'}
899 ExtraConfig: {get_param: ExtraConfig}
900 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
901 CloudDomain: {get_param: CloudDomain}
902 ServerMetadata: {get_param: ServerMetadata}
903 SchedulerHints: {get_param: CephStorageSchedulerHints}
905 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
908 type: OS::TripleO::Network::Ports::NetIpListMap
910 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
911 ExternalIpList: {get_attr: [Controller, external_ip_address]}
912 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
913 StorageIpList: {get_attr: [Controller, storage_ip_address]}
914 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
915 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
916 ManagementIpList: {get_attr: [Controller, management_ip_address]}
919 type: OS::TripleO::AllNodes::SoftwareConfig
921 compute_hosts: {get_attr: [Compute, hosts_entry]}
922 controller_hosts: {get_attr: [Controller, hosts_entry]}
923 controller_ips: {get_attr: [Controller, ip_address]}
924 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
925 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
926 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
927 controller_names: {get_attr: [Controller, hostname]}
928 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
929 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
930 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
931 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
932 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
933 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
934 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
935 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
936 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
937 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
938 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
939 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
940 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
941 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
942 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
943 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
944 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
945 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
946 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
947 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
948 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
949 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
950 ceph_mon_node_names: {get_attr: [Controller, hostname]}
951 DeployIdentifier: {get_param: DeployIdentifier}
952 UpdateIdentifier: {get_param: UpdateIdentifier}
955 type: OS::Heat::RandomString
959 MysqlClusterUniquePart:
960 type: OS::Heat::RandomString
965 type: OS::Heat::RandomString
968 salt: {get_param: RabbitCookieSalt}
970 # creates the network architecture
972 type: OS::TripleO::Network
975 type: OS::Neutron::Port
978 name: control_virtual_ip
979 network: {get_param: NeutronControlPlaneID}
980 fixed_ips: {get_param: ControlFixedIPs}
981 replacement_policy: AUTO
985 type: OS::TripleO::Network::Ports::RedisVipPort
987 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
988 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
989 PortName: redis_virtual_ip
990 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
993 # The public VIP is on the External net, falls back to ctlplane
996 type: OS::TripleO::Network::Ports::ExternalVipPort
998 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
999 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1000 PortName: public_virtual_ip
1001 FixedIPs: {get_param: PublicVirtualFixedIPs}
1003 InternalApiVirtualIP:
1004 depends_on: Networks
1005 type: OS::TripleO::Network::Ports::InternalApiVipPort
1007 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1008 PortName: internal_api_virtual_ip
1009 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1012 depends_on: Networks
1013 type: OS::TripleO::Network::Ports::StorageVipPort
1015 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1016 PortName: storage_virtual_ip
1017 FixedIPs: {get_param: StorageVirtualFixedIPs}
1019 StorageMgmtVirtualIP:
1020 depends_on: Networks
1021 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1023 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1024 PortName: storage_management_virtual_ip
1025 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1028 type: OS::TripleO::Network::Ports::NetVipMap
1030 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1031 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1032 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1033 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1034 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1035 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1036 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1037 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1038 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1039 # No tenant or management VIP required
1042 type: OS::TripleO::VipConfig
1045 type: OS::Heat::StructuredDeployments
1048 config: {get_resource: VipConfig}
1049 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1051 # service VIP mappings
1052 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1053 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1054 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1055 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1056 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1057 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1058 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1059 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1060 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1061 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1062 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1063 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1064 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1065 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1066 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1067 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1068 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1069 # direct configuration of Virtual IPs for each network
1070 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1071 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1072 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1073 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1074 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1075 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1076 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1078 ControllerSwiftDeployment:
1079 type: OS::Heat::StructuredDeployments
1081 name: ControllerSwiftDeployment
1082 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1083 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1085 ObjectStorageSwiftDeployment:
1086 type: OS::Heat::StructuredDeployments
1088 name: ObjectStorageSwiftDeployment
1089 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1090 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1092 SwiftDevicesAndProxyConfig:
1093 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1095 controller_swift_devices: {get_attr: [Controller, swift_device]}
1096 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1097 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1099 ComputeCephDeployment:
1100 type: OS::Heat::StructuredDeployments
1102 name: ComputeCephDeployment
1103 config: {get_attr: [CephClusterConfig, config_id]}
1104 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1106 ControllerCephDeployment:
1107 type: OS::Heat::StructuredDeployments
1109 name: ControllerCephDeployment
1110 config: {get_attr: [CephClusterConfig, config_id]}
1111 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1113 CephStorageCephDeployment:
1114 type: OS::Heat::StructuredDeployments
1116 name: CephStorageCephDeployment
1117 config: {get_attr: [CephClusterConfig, config_id]}
1118 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1121 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1123 ControllerAllNodesDeployment:
1124 type: OS::Heat::StructuredDeployments
1126 name: ControllerAllNodesDeployment
1127 config: {get_attr: [allNodesConfig, config_id]}
1128 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1130 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1131 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1133 ComputeAllNodesDeployment:
1134 type: OS::Heat::StructuredDeployments
1136 name: ComputeAllNodesDeployment
1137 config: {get_attr: [allNodesConfig, config_id]}
1138 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1140 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
1141 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
1143 BlockStorageAllNodesDeployment:
1144 type: OS::Heat::StructuredDeployments
1146 name: BlockStorageAllNodesDeployment
1147 config: {get_attr: [allNodesConfig, config_id]}
1148 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1150 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
1151 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
1153 ObjectStorageAllNodesDeployment:
1154 type: OS::Heat::StructuredDeployments
1156 name: ObjectStorageAllNodesDeployment
1157 config: {get_attr: [allNodesConfig, config_id]}
1158 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1160 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
1161 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
1163 CephStorageAllNodesDeployment:
1164 type: OS::Heat::StructuredDeployments
1166 name: CephStorageAllNodesDeployment
1167 config: {get_attr: [allNodesConfig, config_id]}
1168 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1170 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
1171 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
1173 # All Nodes Validations
1174 AllNodesValidationConfig:
1175 type: OS::TripleO::AllNodes::Validation
1180 - - {get_attr: [Controller, resource.0.external_ip_address]}
1181 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1182 - {get_attr: [Controller, resource.0.storage_ip_address]}
1183 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1184 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1186 ControllerAllNodesValidationDeployment:
1187 type: OS::Heat::StructuredDeployments
1188 depends_on: ControllerAllNodesDeployment
1190 name: ControllerAllNodesValidationDeployment
1191 config: {get_resource: AllNodesValidationConfig}
1192 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1194 ComputeAllNodesValidationDeployment:
1195 type: OS::Heat::StructuredDeployments
1196 depends_on: ComputeAllNodesDeployment
1198 name: ComputeAllNodesValidationDeployment
1199 config: {get_resource: AllNodesValidationConfig}
1200 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1202 BlockStorageAllNodesValidationDeployment:
1203 type: OS::Heat::StructuredDeployments
1204 depends_on: BlockStorageAllNodesDeployment
1206 name: BlockStorageAllNodesValidationDeployment
1207 config: {get_resource: AllNodesValidationConfig}
1208 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1210 ObjectStorageAllNodesValidationDeployment:
1211 type: OS::Heat::StructuredDeployments
1212 depends_on: ObjectStorageAllNodesDeployment
1214 name: ObjectStorageAllNodesValidationDeployment
1215 config: {get_resource: AllNodesValidationConfig}
1216 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1218 CephStorageAllNodesValidationDeployment:
1219 type: OS::Heat::StructuredDeployments
1220 depends_on: CephStorageAllNodesDeployment
1222 name: CephStorageAllNodesValidationDeployment
1223 config: {get_resource: AllNodesValidationConfig}
1224 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1227 type: OS::TripleO::Tasks::UpdateWorkflow
1229 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1230 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1231 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1232 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1233 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1235 deploy_identifier: {get_param: DeployIdentifier}
1236 update_identifier: {get_param: UpdateIdentifier}
1238 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1239 # the nested template may configure each role differently (or not at all)
1240 AllNodesExtraConfig:
1241 type: OS::TripleO::AllNodesExtraConfig
1244 - ComputeAllNodesValidationDeployment
1245 - BlockStorageAllNodesValidationDeployment
1246 - ObjectStorageAllNodesValidationDeployment
1247 - CephStorageAllNodesValidationDeployment
1248 - ControllerAllNodesValidationDeployment
1250 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1251 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1252 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1253 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1254 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1256 # Nested stack deployment runs after all other controller deployments
1257 ControllerNodesPostDeployment:
1258 type: OS::TripleO::ControllerPostDeployment
1259 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1261 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1262 RoleData: {get_attr: [ControllerServiceChain, role_data]}
1264 ComputeNodesPostDeployment:
1265 type: OS::TripleO::ComputePostDeployment
1266 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1268 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1269 RoleData: {get_attr: [ComputeServiceChain, role_data]}
1271 ObjectStorageNodesPostDeployment:
1272 type: OS::TripleO::ObjectStoragePostDeployment
1273 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1275 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1276 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
1278 BlockStorageNodesPostDeployment:
1279 type: OS::TripleO::BlockStoragePostDeployment
1280 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1282 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1283 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
1285 CephStorageNodesPostDeployment:
1286 type: OS::TripleO::CephStoragePostDeployment
1287 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1289 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1290 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
1294 description: URL for the Overcloud Keystone service
1295 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1297 description: Keystone Admin VIP endpoint
1298 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1300 description: Controller VIP for public API endpoints
1301 value: {get_attr: [VipMap, net_ip_map, external]}
1303 description: VIP for Aodh API internal endpoint
1304 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1305 CeilometerInternalVip:
1306 description: VIP for Ceilometer API internal endpoint
1307 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1309 description: VIP for Cinder API internal endpoint
1310 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1312 description: VIP for Glance API internal endpoint
1313 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1315 description: VIP for Gnocchi API internal endpoint
1316 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1318 description: VIP for Heat API internal endpoint
1319 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1321 description: VIP for Ironic API internal endpoint
1322 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1323 KeystoneInternalVip:
1324 description: VIP for Keystone API internal endpoint
1325 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1327 description: VIP for Neutron API internal endpoint
1328 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1330 description: VIP for Nova API internal endpoint
1331 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1333 description: VIP for Sahara API internal endpoint
1334 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1336 description: VIP for Swift Proxy internal endpoint
1337 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1340 Mapping of the resources with the needed info for their endpoints.
1341 This includes the protocol used, the IP, port and also a full
1342 representation of the URI.
1343 value: {get_attr: [EndpointMap, endpoint_map]}
1346 The content that should be appended to your /etc/hosts if you want to get
1347 hostname-based access to the deployed nodes (useful for testing without
1349 value: {get_attr: [allNodesConfig, hosts_entries]}