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 NeutronBridgeMappings:
73 The OVS logical->physical bridge mappings to use. See the Neutron
74 documentation for details. Defaults to mapping br-ex - the external
75 bridge on hosts - to a physical name 'datacentre' which can be used
76 to create provider networks (and we use this for the default floating
77 network) - if changing this either use different post-install network
78 scripts or be sure to keep 'datacentre' as a mapping network name.
79 type: comma_delimited_list
80 default: "datacentre:br-ex"
81 NeutronControlPlaneID:
84 description: Neutron ID or name for ctlplane network.
85 NeutronEnableTunnelling:
91 Enable/disable the L2 population feature in the Neutron agents.
94 type: comma_delimited_list
97 If set, flat networks to configure in neutron plugins. Defaults to
98 'datacentre' to permit external network creation.
101 description: The tenant network type for Neutron.
102 type: comma_delimited_list
104 description: The password for the neutron service account, used by neutron agents.
107 NeutronPublicInterface:
109 description: What interface to bridge onto br-ex for network nodes.
111 NeutronMetadataProxySharedSecret:
112 description: Shared secret to prevent spoofing
118 The tunnel types for the Neutron tenant network.
119 type: comma_delimited_list
120 type: comma_delimited_list
124 The core plugin for Neutron. The value should be the entrypoint to be loaded
125 from neutron.core_plugins namespace.
127 NeutronServicePlugins:
128 default: "router,qos"
130 Comma-separated list of service plugin entrypoints to be loaded from the
131 neutron.service_plugins namespace.
132 type: comma_delimited_list
134 default: "vxlan,vlan,flat,gre"
136 Comma-separated list of network type driver entrypoints to be loaded.
137 type: comma_delimited_list
138 NeutronMechanismDrivers:
139 default: 'openvswitch'
141 The mechanism drivers for the Neutron tenant network.
142 type: comma_delimited_list
143 type: comma_delimited_list
144 NeutronAgentExtensions:
147 Comma-separated list of extensions enabled for the Neutron agents.
148 type: comma_delimited_list
149 NeutronAllowL3AgentFailover:
151 description: Allow automatic l3-agent failover
155 description: Whether to enable l3-agent HA
159 description: Enable IPv6 features in Nova
162 description: The password for the nova service account, used by nova-api.
165 PublicVirtualFixedIPs:
168 Control the IP allocation for the PublicVirtualInterface port. E.g.
169 [{'ip_address':'1.2.3.4'}]
174 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
177 description: The username for RabbitMQ
180 description: The password for RabbitMQ
186 Rabbit client subscriber parameter to specify
187 an SSL connection to the RabbitMQ host.
191 description: Set rabbit subscriber port, change this if using SSL
194 description: The password for Redis
197 StorageVirtualFixedIPs:
200 Control the IP allocation for the StorageVirtualInterface port. E.g.
201 [{'ip_address':'1.2.3.4'}]
203 StorageMgmtVirtualFixedIPs:
206 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
207 [{'ip_address':'1.2.3.4'}]
210 default: 'localdomain'
213 The DNS domain used for the hosts. This should match the dhcp_domain
214 configured in the Undercloud neutron. Defaults to localdomain.
218 Extra properties or metadata passed to Nova for the created nodes in
219 the overcloud. It's accessible via the Nova metadata API.
222 # Controller-specific params
228 controllerExtraConfig:
231 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
235 default: overcloud-full
237 - custom_constraint: glance.image
238 OvercloudControlFlavor:
239 description: Flavor for control nodes to request when deploying.
243 - custom_constraint: nova.flavor
244 ControlVirtualInterface:
246 description: Interface where virtual ip will be assigned.
250 description: Whether to enable fencing in Pacemaker or not.
254 description: Whether to use Galera instead of regular MariaDB.
256 ControllerSchedulerHints:
258 description: Optional scheduler hints to pass to nova
263 Additional configuration to inject into the cluster. The format required
264 may be implementation specific, e.g puppet hieradata. Any role specific
265 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
270 Pacemaker fencing configuration. The JSON should have
271 the following structure:
275 "agent": "AGENT_NAME",
276 "host_mac": "HOST_MAC_ADDRESS",
277 "params": {"PARAM_NAME": "PARAM_VALUE"}
285 "agent": "fence_xvm",
286 "host_mac": "52:54:00:aa:bb:cc",
288 "multicast_address": "225.0.0.12",
289 "port": "baremetal_0",
291 "manage_key_file": true,
292 "key_file": "/etc/fence_xvm.key",
293 "key_file_password": "abcdef"
301 description: The short name of the Gnocchi backend to use. Should be one
302 of swift, rbd or file
305 - allowed_values: ['swift', 'file', 'rbd']
306 GnocchiIndexerBackend:
308 description: The short name of the Gnocchi indexer backend to use.
311 description: The password for the gnocchi service account.
314 InstanceNameTemplate:
315 default: 'instance-%08x'
316 description: Template string to be used to generate instance names
320 description: Whether to manage IPtables rules.
324 description: Whether IPtables rules should be purged before setting up the ones.
326 MysqlInnodbBufferPoolSize:
328 Specifies the size of the buffer pool in megabytes. Setting to
329 zero should be interpreted as "no value" and will defer to the
334 description: Configures MySQL max_connections config setting
337 PublicVirtualInterface:
340 Specifies the interface where the public-facing virtual ip will be assigned.
341 This should be int_public when a VLAN is being used.
344 description: A random string to be used as a salt when hashing to determine mappings in the ring.
350 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
353 description: Partition Power to use when building Swift rings
358 description: How many replicas to use in the swift rings.
360 # Compute-specific params
361 CeilometerComputeAgent:
362 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
366 - allowed_values: ['', Present]
370 HypervisorNeutronPhysicalBridge:
373 An OVS bridge to create on each hypervisor. This defaults to br-ex the
374 same as the control plane nodes, as we have a uniform configuration of
375 the openvswitch agent. Typically should not need to be changed.
377 HypervisorNeutronPublicInterface:
379 description: What interface to add to the HypervisorNeutronPhysicalBridge.
381 NeutronNetworkVLANRanges:
382 default: 'datacentre:1:1000'
384 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
385 Neutron documentation for permitted values. Defaults to permitting any
386 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
387 type: comma_delimited_list
390 default: libvirt.LibvirtDriver
391 NovaComputeExtraConfig:
394 NovaCompute specific configuration to inject into the cluster. Same
395 structure as ExtraConfig.
397 NovaComputeLibvirtType:
400 NovaComputeLibvirtVifDriver:
402 description: Libvirt VIF driver configuration for the network
404 NovaComputeSchedulerHints:
406 description: Optional scheduler hints to pass to nova
408 NovaEnableRbdBackend:
410 description: Whether to enable or not the Rbd backend for Nova
414 default: overcloud-full
416 - custom_constraint: glance.image
419 description: Name of integration bridge used by Open vSwitch
421 NovaSecurityGroupAPI:
423 description: The full class name of the security API class
425 OvercloudComputeFlavor:
426 description: Use this flavor
430 - custom_constraint: nova.flavor
433 NeutronTenantNetwork: tenant
434 CeilometerApiNetwork: internal_api
435 AodhApiNetwork: internal_api
436 GnocchiApiNetwork: internal_api
437 MongoDbNetwork: internal_api
438 CinderApiNetwork: internal_api
439 CinderIscsiNetwork: storage
440 GlanceApiNetwork: storage
441 GlanceRegistryNetwork: internal_api
442 IronicApiNetwork: internal_api
443 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
444 KeystonePublicApiNetwork: internal_api
445 NeutronApiNetwork: internal_api
446 HeatApiNetwork: internal_api
447 NovaApiNetwork: internal_api
448 NovaMetadataNetwork: internal_api
449 NovaVncProxyNetwork: internal_api
450 SwiftMgmtNetwork: storage_mgmt
451 SwiftProxyNetwork: storage
452 SaharaApiNetwork: internal_api
453 HorizonNetwork: internal_api
454 MemcachedNetwork: internal_api
455 RabbitMqNetwork: internal_api
456 RedisNetwork: internal_api
457 MysqlNetwork: internal_api
458 CephClusterNetwork: storage_mgmt
459 CephPublicNetwork: storage
460 ControllerHostnameResolveNetwork: internal_api
461 ComputeHostnameResolveNetwork: internal_api
462 BlockStorageHostnameResolveNetwork: internal_api
463 ObjectStorageHostnameResolveNetwork: internal_api
464 CephStorageHostnameResolveNetwork: storage
465 description: Mapping of service_name -> network name. Typically set
466 via parameter_defaults in the resource registry.
471 - OS::TripleO::Services::CephMon
472 - OS::TripleO::Services::CephExternal
473 - OS::TripleO::Services::CinderApi
474 - OS::TripleO::Services::CinderScheduler
475 - OS::TripleO::Services::CinderVolume
476 - OS::TripleO::Services::Kernel
477 - OS::TripleO::Services::Keystone
478 - OS::TripleO::Services::GlanceApi
479 - OS::TripleO::Services::GlanceRegistry
480 - OS::TripleO::Services::HeatApi
481 - OS::TripleO::Services::HeatApiCfn
482 - OS::TripleO::Services::HeatApiCloudwatch
483 - OS::TripleO::Services::HeatEngine
484 - OS::TripleO::Services::NeutronDhcpAgent
485 - OS::TripleO::Services::NeutronL3Agent
486 - OS::TripleO::Services::NeutronMetadataAgent
487 - OS::TripleO::Services::NeutronServer
488 - OS::TripleO::Services::NeutronCorePlugin
489 - OS::TripleO::Services::NeutronOvsAgent
490 - OS::TripleO::Services::RabbitMQ
491 - OS::TripleO::Services::HAproxy
492 - OS::TripleO::Services::Keepalived
493 - OS::TripleO::Services::Memcached
494 - OS::TripleO::Services::Redis
495 - OS::TripleO::Services::NovaConductor
496 - OS::TripleO::Services::MongoDb
497 - OS::TripleO::Services::NovaApi
498 - OS::TripleO::Services::NovaScheduler
499 - OS::TripleO::Services::NovaConsoleauth
500 - OS::TripleO::Services::NovaVncproxy
501 - OS::TripleO::Services::Ntp
502 - OS::TripleO::Services::SwiftProxy
503 - OS::TripleO::Services::SwiftStorage
504 - OS::TripleO::Services::Snmp
505 - OS::TripleO::Services::Timezone
506 - OS::TripleO::Services::CeilometerApi
507 - OS::TripleO::Services::CeilometerCollector
508 - OS::TripleO::Services::CeilometerExpirer
509 - OS::TripleO::Services::CeilometerAgentCentral
510 - OS::TripleO::Services::CeilometerAgentNotification
511 - OS::TripleO::Services::Horizon
513 description: A list of service resources (configured in the Heat
514 resource_registry) which represent nested stacks
515 for each service that should get installed on the Controllers.
516 type: comma_delimited_list
520 - OS::TripleO::Services::CephClient
521 - OS::TripleO::Services::CephExternal
522 - OS::TripleO::Services::Timezone
523 - OS::TripleO::Services::Ntp
524 - OS::TripleO::Services::Snmp
525 - OS::TripleO::Services::NovaCompute
526 - OS::TripleO::Services::NovaLibvirt
527 - OS::TripleO::Services::Kernel
528 description: A list of service resources (configured in the Heat
529 resource_registry) which represent nested stacks
530 for each service that should get installed on the Compute Nodes.
531 type: comma_delimited_list
533 # Block storage specific parameters
538 default: overcloud-full
540 OvercloudBlockStorageFlavor:
541 description: Flavor for block storage nodes to request when deploying.
545 - custom_constraint: nova.flavor
546 BlockStorageExtraConfig:
549 BlockStorage specific configuration to inject into the cluster. Same
550 structure as ExtraConfig.
552 BlockStorageSchedulerHints:
554 description: Optional scheduler hints to pass to nova
556 BlockStorageServices:
558 - OS::TripleO::Services::CinderVolume
559 - OS::TripleO::Services::Kernel
560 - OS::TripleO::Services::Ntp
561 - OS::TripleO::Services::Timezone
562 - OS::TripleO::Services::Snmp
563 description: A list of service resources (configured in the Heat
564 resource_registry) which represent nested stacks
565 for each service that should get installed on the BlockStorage nodes.
566 type: comma_delimited_list
568 # Object storage specific parameters
572 OvercloudSwiftStorageFlavor:
573 description: Flavor for Swift storage nodes to request when deploying.
577 - custom_constraint: nova.flavor
579 default: overcloud-full
581 ObjectStorageExtraConfig:
584 ObjectStorage specific configuration to inject into the cluster. Same
585 structure as ExtraConfig.
587 ObjectStorageSchedulerHints:
589 description: Optional scheduler hints to pass to nova
591 ObjectStorageServices:
593 - OS::TripleO::Services::Kernel
594 - OS::TripleO::Services::Ntp
595 - OS::TripleO::Services::SwiftStorage
596 - OS::TripleO::Services::Snmp
597 - OS::TripleO::Services::Timezone
598 description: A list of service resources (configured in the Heat
599 resource_registry) which represent nested stacks
600 for each service that should get installed on the ObjectStorage nodes.
601 Note this role currently only supports steps 2, 3 and 4 configuration.
602 type: comma_delimited_list
605 # Ceph storage specific parameters
610 default: overcloud-full
612 OvercloudCephStorageFlavor:
614 description: Flavor for Ceph storage nodes to request when deploying.
617 - custom_constraint: nova.flavor
618 CephStorageExtraConfig:
621 CephStorage specific configuration to inject into the cluster. Same
622 structure as ExtraConfig.
624 CephStorageSchedulerHints:
626 description: Optional scheduler hints to pass to nova
630 - OS::TripleO::Services::CephOSD
631 - OS::TripleO::Services::Kernel
632 - OS::TripleO::Services::Ntp
633 - OS::TripleO::Services::Timezone
634 description: A list of service resources (configured in the Heat
635 resource_registry) which represent nested stacks
636 for each service that should get installed on the CephStorage nodes.
637 type: comma_delimited_list
639 # Hostname format for each role
640 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
641 # and %stackname% is replaced with OS::stack_name in the template below.
642 # If you want to use the heat generated names, pass '' (empty string).
643 ControllerHostnameFormat:
645 description: Format for Controller node hostnames
646 default: '%stackname%-controller-%index%'
647 ComputeHostnameFormat:
649 description: Format for Compute node hostnames
650 default: '%stackname%-novacompute-%index%'
651 BlockStorageHostnameFormat:
653 description: Format for BlockStorage node hostnames
654 default: '%stackname%-blockstorage-%index%'
655 ObjectStorageHostnameFormat:
657 description: Format for SwiftStorage node hostnames
658 default: '%stackname%-objectstorage-%index%'
659 CephStorageHostnameFormat:
661 description: Format for CephStorage node hostnames
662 default: '%stackname%-cephstorage-%index%'
664 # Identifiers to trigger tasks on nodes
669 Setting to a previously unused value during stack-update will trigger
670 package update on all nodes
675 Setting this to a unique value will re-run any deployment tasks which
676 perform configuration on a Heat stack-update.
678 # If you want to remove a specific node from a resource group, you can pass
679 # the node name or id as a <Group>RemovalPolicies parameter, for example:
680 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
681 ControllerRemovalPolicies:
685 List of resources to be removed from ControllerResourceGroup when
686 doing an update which requires removal of specific resources.
687 ComputeRemovalPolicies:
691 List of resources to be removed from ComputeResourceGroup when
692 doing an update which requires removal of specific resources.
693 BlockStorageRemovalPolicies:
697 List of resources to be removed from BlockStorageResourceGroup when
698 doing an update which requires removal of specific resources.
699 ObjectStorageRemovalPolicies:
703 List of resources to be removed from ObjectStorageResourceGroup when
704 doing an update which requires removal of specific resources.
705 CephStorageRemovalPolicies:
709 List of resources to be removed from CephStorageResourceGroup when
710 doing an update which requires removal of specific resources.
714 description: Do not use deprecated params, they will be removed.
716 - controllerExtraConfig
721 HeatAuthEncryptionKey:
722 type: OS::Heat::RandomString
725 type: OS::Heat::RandomString
730 type: OS::Heat::RandomString
735 type: OS::TripleO::EndpointMap
737 CloudName: {get_param: CloudName}
738 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
739 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
740 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
741 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
742 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
743 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
744 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
745 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
746 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
747 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
748 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
749 MysqlNoBracketsVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
750 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
751 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
752 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
753 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
754 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
756 ControllerServiceChain:
757 type: OS::TripleO::Services
759 Services: {get_param: ControllerServices}
760 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
763 type: OS::Heat::ResourceGroup
766 count: {get_param: ControllerCount}
767 removal_policies: {get_param: ControllerRemovalPolicies}
769 type: OS::TripleO::Controller
771 AdminPassword: {get_param: AdminPassword}
772 AodhPassword: {get_param: AodhPassword}
773 CloudDomain: {get_param: CloudDomain}
774 ControlVirtualInterface: {get_param: ControlVirtualInterface}
775 controllerExtraConfig: {get_param: controllerExtraConfig}
776 CorosyncIPv6: {get_param: CorosyncIPv6}
777 Debug: {get_param: Debug}
778 EnableFencing: {get_param: EnableFencing}
779 ManageFirewall: {get_param: ManageFirewall}
780 PurgeFirewallRules: {get_param: PurgeFirewallRules}
781 EnableGalera: {get_param: EnableGalera}
782 ExtraConfig: {get_param: ExtraConfig}
783 FencingConfig: {get_param: FencingConfig}
784 Flavor: {get_param: OvercloudControlFlavor}
785 GnocchiPassword: {get_param: GnocchiPassword}
786 GnocchiBackend: {get_param: GnocchiBackend}
787 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
788 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
789 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
790 HorizonSecret: {get_resource: HorizonSecret}
791 Image: {get_param: controllerImage}
792 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
793 InstanceNameTemplate: {get_param: InstanceNameTemplate}
794 KeyName: {get_param: KeyName}
795 MemcachedIPv6: {get_param: MemcachedIPv6}
796 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
797 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
798 MysqlMaxConnections: {get_param: MysqlMaxConnections}
799 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
800 NeutronPublicInterface: {get_param: NeutronPublicInterface}
801 NeutronPassword: {get_param: NeutronPassword}
802 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
803 NovaIPv6: {get_param: NovaIPv6}
804 NovaPassword: {get_param: NovaPassword}
805 PcsdPassword: {get_resource: PcsdPassword}
806 PublicVirtualInterface: {get_param: PublicVirtualInterface}
807 RabbitPassword: {get_param: RabbitPassword}
808 RabbitUserName: {get_param: RabbitUserName}
809 RabbitCookie: {get_attr: [RabbitCookie, value]}
810 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
811 RabbitClientPort: {get_param: RabbitClientPort}
812 RedisPassword: {get_param: RedisPassword}
813 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
814 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
815 SwiftHashSuffix: {get_param: SwiftHashSuffix}
816 SwiftMinPartHours: {get_param: SwiftMinPartHours}
817 SwiftPartPower: {get_param: SwiftPartPower}
818 SwiftReplicas: { get_param: SwiftReplicas}
819 ServiceNetMap: {get_param: ServiceNetMap}
820 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
821 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
822 UpdateIdentifier: {get_param: UpdateIdentifier}
825 template: {get_param: ControllerHostnameFormat}
827 '%stackname%': {get_param: 'OS::stack_name'}
829 ServerMetadata: {get_param: ServerMetadata}
830 SchedulerHints: {get_param: ControllerSchedulerHints}
831 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
835 type: OS::TripleO::Services
837 Services: {get_param: ComputeServices}
838 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
841 type: OS::Heat::ResourceGroup
844 count: {get_param: ComputeCount}
845 removal_policies: {get_param: ComputeRemovalPolicies}
847 type: OS::TripleO::Compute
849 AdminPassword: {get_param: AdminPassword}
850 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
851 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
852 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
853 Debug: {get_param: Debug}
854 ExtraConfig: {get_param: ExtraConfig}
855 Flavor: {get_param: OvercloudComputeFlavor}
856 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
857 Image: {get_param: NovaImage}
858 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
859 KeyName: {get_param: KeyName}
860 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
861 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
862 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
863 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
864 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
865 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
866 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
867 NeutronNetworkType: {get_param: NeutronNetworkType}
868 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
869 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
870 NeutronPassword: {get_param: NeutronPassword}
871 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
872 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
873 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
874 NeutronCorePlugin: {get_param: NeutronCorePlugin}
875 NeutronServicePlugins: {get_param: NeutronServicePlugins}
876 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
877 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
878 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
879 # L3 HA and Failover is not relevant for Computes, should be removed
880 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
881 NeutronL3HA: {get_param: NeutronL3HA}
882 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
883 NovaComputeDriver: {get_param: NovaComputeDriver}
884 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
885 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
886 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
887 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
888 NovaIPv6: {get_param: NovaIPv6}
889 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
890 NovaPassword: {get_param: NovaPassword}
891 NovaOVSBridge: {get_param: NovaOVSBridge}
892 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
893 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
894 RabbitPassword: {get_param: RabbitPassword}
895 RabbitUserName: {get_param: RabbitUserName}
896 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
897 RabbitClientPort: {get_param: RabbitClientPort}
898 ServiceNetMap: {get_param: ServiceNetMap}
899 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
900 UpdateIdentifier: {get_param: UpdateIdentifier}
903 template: {get_param: ComputeHostnameFormat}
905 '%stackname%': {get_param: 'OS::stack_name'}
906 CloudDomain: {get_param: CloudDomain}
907 ServerMetadata: {get_param: ServerMetadata}
908 SchedulerHints: {get_param: NovaComputeSchedulerHints}
910 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
912 BlockStorageServiceChain:
913 type: OS::TripleO::Services
915 Services: {get_param: BlockStorageServices}
916 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
919 type: OS::Heat::ResourceGroup
922 count: {get_param: BlockStorageCount}
923 removal_policies: {get_param: BlockStorageRemovalPolicies}
925 type: OS::TripleO::BlockStorage
927 Image: {get_param: BlockStorageImage}
928 KeyName: {get_param: KeyName}
929 Flavor: {get_param: OvercloudBlockStorageFlavor}
930 UpdateIdentifier: {get_param: UpdateIdentifier}
933 template: {get_param: BlockStorageHostnameFormat}
935 '%stackname%': {get_param: 'OS::stack_name'}
936 ServiceNetMap: {get_param: ServiceNetMap}
937 ExtraConfig: {get_param: ExtraConfig}
938 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
939 CloudDomain: {get_param: CloudDomain}
940 ServerMetadata: {get_param: ServerMetadata}
941 SchedulerHints: {get_param: BlockStorageSchedulerHints}
943 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
945 ObjectStorageServiceChain:
946 type: OS::TripleO::Services
948 Services: {get_param: ObjectStorageServices}
949 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
952 type: OS::Heat::ResourceGroup
955 count: {get_param: ObjectStorageCount}
956 removal_policies: {get_param: ObjectStorageRemovalPolicies}
958 type: OS::TripleO::ObjectStorage
960 KeyName: {get_param: KeyName}
961 Flavor: {get_param: OvercloudSwiftStorageFlavor}
962 HashSuffix: {get_param: SwiftHashSuffix}
963 MinPartHours: {get_param: SwiftMinPartHours}
964 PartPower: {get_param: SwiftPartPower}
965 Image: {get_param: SwiftStorageImage}
966 Replicas: { get_param: SwiftReplicas}
967 UpdateIdentifier: {get_param: UpdateIdentifier}
968 ServiceNetMap: {get_param: ServiceNetMap}
971 template: {get_param: ObjectStorageHostnameFormat}
973 '%stackname%': {get_param: 'OS::stack_name'}
974 ExtraConfig: {get_param: ExtraConfig}
975 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
976 CloudDomain: {get_param: CloudDomain}
977 ServerMetadata: {get_param: ServerMetadata}
978 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
980 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
982 CephStorageServiceChain:
983 type: OS::TripleO::Services
985 Services: {get_param: CephStorageServices}
986 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
989 type: OS::Heat::ResourceGroup
992 count: {get_param: CephStorageCount}
993 removal_policies: {get_param: CephStorageRemovalPolicies}
995 type: OS::TripleO::CephStorage
997 Image: {get_param: CephStorageImage}
998 KeyName: {get_param: KeyName}
999 Flavor: {get_param: OvercloudCephStorageFlavor}
1000 ServiceNetMap: {get_param: ServiceNetMap}
1001 UpdateIdentifier: {get_param: UpdateIdentifier}
1004 template: {get_param: CephStorageHostnameFormat}
1006 '%stackname%': {get_param: 'OS::stack_name'}
1007 ExtraConfig: {get_param: ExtraConfig}
1008 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1009 CloudDomain: {get_param: CloudDomain}
1010 ServerMetadata: {get_param: ServerMetadata}
1011 SchedulerHints: {get_param: CephStorageSchedulerHints}
1012 NodeIndex: '%index%'
1013 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
1015 ControllerIpListMap:
1016 type: OS::TripleO::Network::Ports::NetIpListMap
1018 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1019 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1020 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1021 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1022 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1023 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1024 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1027 type: OS::TripleO::AllNodes::SoftwareConfig
1029 compute_hosts: {get_attr: [Compute, hosts_entry]}
1030 controller_hosts: {get_attr: [Controller, hosts_entry]}
1031 controller_ips: {get_attr: [Controller, ip_address]}
1032 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1033 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1034 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1035 controller_names: {get_attr: [Controller, hostname]}
1036 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1037 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1038 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1039 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1040 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1041 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1042 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1043 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1044 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1045 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1046 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1047 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1048 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1049 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1050 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1051 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1052 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1053 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1054 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1055 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1056 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1057 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1058 ceph_mon_node_names: {get_attr: [Controller, hostname]}
1059 DeployIdentifier: {get_param: DeployIdentifier}
1060 UpdateIdentifier: {get_param: UpdateIdentifier}
1063 type: OS::Heat::RandomString
1067 MysqlClusterUniquePart:
1068 type: OS::Heat::RandomString
1073 type: OS::Heat::RandomString
1076 salt: {get_param: RabbitCookieSalt}
1078 # creates the network architecture
1080 type: OS::TripleO::Network
1083 type: OS::Neutron::Port
1084 depends_on: Networks
1086 name: control_virtual_ip
1087 network: {get_param: NeutronControlPlaneID}
1088 fixed_ips: {get_param: ControlFixedIPs}
1089 replacement_policy: AUTO
1092 depends_on: Networks
1093 type: OS::TripleO::Network::Ports::RedisVipPort
1095 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1096 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1097 PortName: redis_virtual_ip
1098 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1101 # The public VIP is on the External net, falls back to ctlplane
1103 depends_on: Networks
1104 type: OS::TripleO::Network::Ports::ExternalVipPort
1106 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1107 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1108 PortName: public_virtual_ip
1109 FixedIPs: {get_param: PublicVirtualFixedIPs}
1111 InternalApiVirtualIP:
1112 depends_on: Networks
1113 type: OS::TripleO::Network::Ports::InternalApiVipPort
1115 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1116 PortName: internal_api_virtual_ip
1117 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1120 depends_on: Networks
1121 type: OS::TripleO::Network::Ports::StorageVipPort
1123 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1124 PortName: storage_virtual_ip
1125 FixedIPs: {get_param: StorageVirtualFixedIPs}
1127 StorageMgmtVirtualIP:
1128 depends_on: Networks
1129 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1131 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1132 PortName: storage_management_virtual_ip
1133 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1136 type: OS::TripleO::Network::Ports::NetVipMap
1138 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1139 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1140 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1141 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1142 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1143 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1144 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1145 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1146 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1147 # No tenant or management VIP required
1150 type: OS::TripleO::VipConfig
1153 type: OS::Heat::StructuredDeployments
1156 config: {get_resource: VipConfig}
1157 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1159 # service VIP mappings
1160 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1161 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1162 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1163 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1164 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1165 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1166 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1167 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1168 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1169 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1170 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1171 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1172 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1173 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1174 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1175 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1176 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1177 # direct configuration of Virtual IPs for each network
1178 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1179 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1180 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1181 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1182 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1183 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1184 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1186 ControllerBootstrapNodeConfig:
1187 type: OS::TripleO::BootstrapNode::SoftwareConfig
1189 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1190 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1192 ControllerBootstrapNodeDeployment:
1193 type: OS::Heat::StructuredDeployments
1195 name: ControllerBootstrapNodeDeployment
1196 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1197 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1199 ControllerSwiftDeployment:
1200 type: OS::Heat::StructuredDeployments
1202 name: ControllerSwiftDeployment
1203 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1204 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1206 ObjectStorageSwiftDeployment:
1207 type: OS::Heat::StructuredDeployments
1209 name: ObjectStorageSwiftDeployment
1210 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1211 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1213 SwiftDevicesAndProxyConfig:
1214 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1216 controller_swift_devices: {get_attr: [Controller, swift_device]}
1217 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1218 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1220 ComputeCephDeployment:
1221 type: OS::Heat::StructuredDeployments
1223 name: ComputeCephDeployment
1224 config: {get_attr: [CephClusterConfig, config_id]}
1225 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1227 ControllerCephDeployment:
1228 type: OS::Heat::StructuredDeployments
1230 name: ControllerCephDeployment
1231 config: {get_attr: [CephClusterConfig, config_id]}
1232 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1234 CephStorageCephDeployment:
1235 type: OS::Heat::StructuredDeployments
1237 name: CephStorageCephDeployment
1238 config: {get_attr: [CephClusterConfig, config_id]}
1239 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1242 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1244 ControllerAllNodesDeployment:
1245 type: OS::Heat::StructuredDeployments
1247 name: ControllerAllNodesDeployment
1248 config: {get_attr: [allNodesConfig, config_id]}
1249 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1251 ComputeAllNodesDeployment:
1252 type: OS::Heat::StructuredDeployments
1254 name: ComputeAllNodesDeployment
1255 config: {get_attr: [allNodesConfig, config_id]}
1256 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1258 BlockStorageAllNodesDeployment:
1259 type: OS::Heat::StructuredDeployments
1261 name: BlockStorageAllNodesDeployment
1262 config: {get_attr: [allNodesConfig, config_id]}
1263 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1265 ObjectStorageAllNodesDeployment:
1266 type: OS::Heat::StructuredDeployments
1268 name: ObjectStorageAllNodesDeployment
1269 config: {get_attr: [allNodesConfig, config_id]}
1270 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1272 CephStorageAllNodesDeployment:
1273 type: OS::Heat::StructuredDeployments
1275 name: CephStorageAllNodesDeployment
1276 config: {get_attr: [allNodesConfig, config_id]}
1277 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1279 # All Nodes Validations
1280 AllNodesValidationConfig:
1281 type: OS::TripleO::AllNodes::Validation
1286 - - {get_attr: [Controller, resource.0.external_ip_address]}
1287 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1288 - {get_attr: [Controller, resource.0.storage_ip_address]}
1289 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1290 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1292 ControllerAllNodesValidationDeployment:
1293 type: OS::Heat::StructuredDeployments
1294 depends_on: ControllerAllNodesDeployment
1296 name: ControllerAllNodesValidationDeployment
1297 config: {get_resource: AllNodesValidationConfig}
1298 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1300 ComputeAllNodesValidationDeployment:
1301 type: OS::Heat::StructuredDeployments
1302 depends_on: ComputeAllNodesDeployment
1304 name: ComputeAllNodesValidationDeployment
1305 config: {get_resource: AllNodesValidationConfig}
1306 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1308 BlockStorageAllNodesValidationDeployment:
1309 type: OS::Heat::StructuredDeployments
1310 depends_on: BlockStorageAllNodesDeployment
1312 name: BlockStorageAllNodesValidationDeployment
1313 config: {get_resource: AllNodesValidationConfig}
1314 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1316 ObjectStorageAllNodesValidationDeployment:
1317 type: OS::Heat::StructuredDeployments
1318 depends_on: ObjectStorageAllNodesDeployment
1320 name: ObjectStorageAllNodesValidationDeployment
1321 config: {get_resource: AllNodesValidationConfig}
1322 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1324 CephStorageAllNodesValidationDeployment:
1325 type: OS::Heat::StructuredDeployments
1326 depends_on: CephStorageAllNodesDeployment
1328 name: CephStorageAllNodesValidationDeployment
1329 config: {get_resource: AllNodesValidationConfig}
1330 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1333 type: OS::TripleO::Tasks::UpdateWorkflow
1335 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1336 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1337 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1338 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1339 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1341 deploy_identifier: {get_param: DeployIdentifier}
1342 update_identifier: {get_param: UpdateIdentifier}
1344 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1345 # the nested template may configure each role differently (or not at all)
1346 AllNodesExtraConfig:
1347 type: OS::TripleO::AllNodesExtraConfig
1350 - ComputeAllNodesValidationDeployment
1351 - BlockStorageAllNodesValidationDeployment
1352 - ObjectStorageAllNodesValidationDeployment
1353 - CephStorageAllNodesValidationDeployment
1354 - ControllerAllNodesValidationDeployment
1356 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1357 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1358 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1359 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1360 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1362 # Nested stack deployment runs after all other controller deployments
1363 ControllerNodesPostDeployment:
1364 type: OS::TripleO::ControllerPostDeployment
1365 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1367 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1368 RoleData: {get_attr: [ControllerServiceChain, role_data]}
1370 ComputeNodesPostDeployment:
1371 type: OS::TripleO::ComputePostDeployment
1372 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1374 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1375 RoleData: {get_attr: [ComputeServiceChain, role_data]}
1377 ObjectStorageNodesPostDeployment:
1378 type: OS::TripleO::ObjectStoragePostDeployment
1379 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1381 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1382 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
1384 BlockStorageNodesPostDeployment:
1385 type: OS::TripleO::BlockStoragePostDeployment
1386 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1388 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1389 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
1391 CephStorageNodesPostDeployment:
1392 type: OS::TripleO::CephStoragePostDeployment
1393 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1395 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1396 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
1400 description: URL for the Overcloud Keystone service
1401 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1403 description: Keystone Admin VIP endpoint
1404 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1406 description: Controller VIP for public API endpoints
1407 value: {get_attr: [VipMap, net_ip_map, external]}
1409 description: VIP for Aodh API internal endpoint
1410 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1411 CeilometerInternalVip:
1412 description: VIP for Ceilometer API internal endpoint
1413 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1415 description: VIP for Cinder API internal endpoint
1416 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1418 description: VIP for Glance API internal endpoint
1419 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1421 description: VIP for Gnocchi API internal endpoint
1422 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1424 description: VIP for Heat API internal endpoint
1425 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1427 description: VIP for Ironic API internal endpoint
1428 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1429 KeystoneInternalVip:
1430 description: VIP for Keystone API internal endpoint
1431 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1433 description: VIP for Neutron API internal endpoint
1434 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1436 description: VIP for Nova API internal endpoint
1437 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1439 description: VIP for Sahara API internal endpoint
1440 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1442 description: VIP for Swift Proxy internal endpoint
1443 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1446 Mapping of the resources with the needed info for their endpoints.
1447 This includes the protocol used, the IP, port and also a full
1448 representation of the URI.
1449 value: {get_attr: [EndpointMap, endpoint_map]}
1452 The content that should be appended to your /etc/hosts if you want to get
1453 hostname-based access to the deployed nodes (useful for testing without
1455 value: {get_attr: [allNodesConfig, hosts_entries]}