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.
25 description: The ceilometer backend type.
27 CeilometerMeteringSecret:
28 description: Secret shared by the ceilometer services.
32 description: The password for the ceilometer service account.
35 CeilometerMeterDispatcher:
37 description: Dispatcher to process meter data
40 - allowed_values: ['gnocchi', 'database']
41 CinderEnableNfsBackend:
43 description: Whether to enable or not the NFS backend for Cinder
45 CinderEnableRbdBackend:
47 description: Whether to enable or not the Rbd backend for Cinder
51 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
55 description: Should be used for arbitrary ips.
59 description: Enable IPv6 in Corosync
63 description: Set to True to enable debugging on all services.
67 description: Syslog address where HAproxy will send its log
71 description: A list of IP/Hostname allowed to connect to horizon
72 type: comma_delimited_list
74 default: 'REBUILD_PRESERVE_EPHEMERAL'
75 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
77 InternalApiVirtualFixedIPs:
80 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
81 [{'ip_address':'1.2.3.4'}]
85 description: Name of an existing Nova key pair to enable SSH access to the instances
88 - custom_constraint: nova.keypair
91 description: Enable IPv6 features in Memcached.
93 NeutronBridgeMappings:
95 The OVS logical->physical bridge mappings to use. See the Neutron
96 documentation for details. Defaults to mapping br-ex - the external
97 bridge on hosts - to a physical name 'datacentre' which can be used
98 to create provider networks (and we use this for the default floating
99 network) - if changing this either use different post-install network
100 scripts or be sure to keep 'datacentre' as a mapping network name.
101 type: comma_delimited_list
102 default: "datacentre:br-ex"
103 NeutronControlPlaneID:
106 description: Neutron ID or name for ctlplane network.
107 NeutronEnableTunnelling:
113 Enable/disable the L2 population feature in the Neutron agents.
116 type: comma_delimited_list
117 default: 'datacentre'
119 If set, flat networks to configure in neutron plugins. Defaults to
120 'datacentre' to permit external network creation.
123 description: The tenant network type for Neutron.
124 type: comma_delimited_list
126 description: The password for the neutron service account, used by neutron agents.
129 NeutronPublicInterface:
131 description: What interface to bridge onto br-ex for network nodes.
133 NeutronMetadataProxySharedSecret:
134 description: Shared secret to prevent spoofing
139 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
140 be at least 50 bytes smaller than the MTU on the physical network. This
141 value will be used to set the MTU on the virtual Ethernet device.
142 This value will be used to construct the NeutronDnsmasqOptions, since that
143 will determine the MTU that is assigned to the VM host through DHCP.
149 The tunnel types for the Neutron tenant network.
150 type: comma_delimited_list
151 type: comma_delimited_list
155 The core plugin for Neutron. The value should be the entrypoint to be loaded
156 from neutron.core_plugins namespace.
158 NeutronServicePlugins:
159 default: "router,qos"
161 Comma-separated list of service plugin entrypoints to be loaded from the
162 neutron.service_plugins namespace.
163 type: comma_delimited_list
165 default: "vxlan,vlan,flat,gre"
167 Comma-separated list of network type driver entrypoints to be loaded.
168 type: comma_delimited_list
169 NeutronMechanismDrivers:
170 default: 'openvswitch'
172 The mechanism drivers for the Neutron tenant network.
173 type: comma_delimited_list
174 type: comma_delimited_list
175 NeutronAgentExtensions:
178 Comma-separated list of extensions enabled for the Neutron agents.
179 type: comma_delimited_list
180 NeutronAllowL3AgentFailover:
182 description: Allow automatic l3-agent failover
186 description: Whether to enable l3-agent HA
190 description: Enable IPv6 features in Nova
193 description: The password for the nova service account, used by nova-api.
196 PublicVirtualFixedIPs:
199 Control the IP allocation for the PublicVirtualInterface port. E.g.
200 [{'ip_address':'1.2.3.4'}]
205 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
208 description: The username for RabbitMQ
211 description: The password for RabbitMQ
217 Rabbit client subscriber parameter to specify
218 an SSL connection to the RabbitMQ host.
222 description: Set rabbit subscriber port, change this if using SSL
225 description: The password for Redis
228 StorageVirtualFixedIPs:
231 Control the IP allocation for the StorageVirtualInterface port. E.g.
232 [{'ip_address':'1.2.3.4'}]
234 StorageMgmtVirtualFixedIPs:
237 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
238 [{'ip_address':'1.2.3.4'}]
241 default: 'localdomain'
244 The DNS domain used for the hosts. This should match the dhcp_domain
245 configured in the Undercloud neutron. Defaults to localdomain.
249 Extra properties or metadata passed to Nova for the created nodes in
250 the overcloud. It's accessible via the Nova metadata API.
253 # Controller-specific params
259 controllerExtraConfig:
262 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
266 default: overcloud-full
268 - custom_constraint: glance.image
269 OvercloudControlFlavor:
270 description: Flavor for control nodes to request when deploying.
274 - custom_constraint: nova.flavor
275 ControlVirtualInterface:
277 description: Interface where virtual ip will be assigned.
281 description: Whether to enable fencing in Pacemaker or not.
285 description: Whether to use Galera instead of regular MariaDB.
287 ControllerSchedulerHints:
289 description: Optional scheduler hints to pass to nova
294 Additional configuration to inject into the cluster. The format required
295 may be implementation specific, e.g puppet hieradata. Any role specific
296 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
301 Pacemaker fencing configuration. The JSON should have
302 the following structure:
306 "agent": "AGENT_NAME",
307 "host_mac": "HOST_MAC_ADDRESS",
308 "params": {"PARAM_NAME": "PARAM_VALUE"}
316 "agent": "fence_xvm",
317 "host_mac": "52:54:00:aa:bb:cc",
319 "multicast_address": "225.0.0.12",
320 "port": "baremetal_0",
322 "manage_key_file": true,
323 "key_file": "/etc/fence_xvm.key",
324 "key_file_password": "abcdef"
332 description: The short name of the Gnocchi backend to use. Should be one
333 of swift, rbd or file
336 - allowed_values: ['swift', 'file', 'rbd']
337 GnocchiIndexerBackend:
339 description: The short name of the Gnocchi indexer backend to use.
342 description: The password for the gnocchi service account.
345 InstanceNameTemplate:
346 default: 'instance-%08x'
347 description: Template string to be used to generate instance names
351 description: Whether to manage IPtables rules.
355 description: Whether IPtables rules should be purged before setting up the ones.
357 MysqlInnodbBufferPoolSize:
359 Specifies the size of the buffer pool in megabytes. Setting to
360 zero should be interpreted as "no value" and will defer to the
365 description: Configures MySQL max_connections config setting
368 PublicVirtualInterface:
371 Specifies the interface where the public-facing virtual ip will be assigned.
372 This should be int_public when a VLAN is being used.
375 description: A random string to be used as a salt when hashing to determine mappings in the ring.
381 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
384 description: Partition Power to use when building Swift rings
389 description: How many replicas to use in the swift rings.
391 # Compute-specific params
392 CeilometerComputeAgent:
393 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
397 - allowed_values: ['', Present]
401 HypervisorNeutronPhysicalBridge:
404 An OVS bridge to create on each hypervisor. This defaults to br-ex the
405 same as the control plane nodes, as we have a uniform configuration of
406 the openvswitch agent. Typically should not need to be changed.
408 HypervisorNeutronPublicInterface:
410 description: What interface to add to the HypervisorNeutronPhysicalBridge.
412 NeutronNetworkVLANRanges:
413 default: 'datacentre:1:1000'
415 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
416 Neutron documentation for permitted values. Defaults to permitting any
417 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
418 type: comma_delimited_list
421 default: libvirt.LibvirtDriver
422 NovaComputeExtraConfig:
425 NovaCompute specific configuration to inject into the cluster. Same
426 structure as ExtraConfig.
428 NovaComputeLibvirtType:
431 NovaComputeLibvirtVifDriver:
433 description: Libvirt VIF driver configuration for the network
435 NovaComputeSchedulerHints:
437 description: Optional scheduler hints to pass to nova
439 NovaEnableRbdBackend:
441 description: Whether to enable or not the Rbd backend for Nova
445 default: overcloud-full
447 - custom_constraint: glance.image
450 description: Name of integration bridge used by Open vSwitch
452 NovaSecurityGroupAPI:
454 description: The full class name of the security API class
456 OvercloudComputeFlavor:
457 description: Use this flavor
461 - custom_constraint: nova.flavor
464 NeutronTenantNetwork: tenant
465 CeilometerApiNetwork: internal_api
466 AodhApiNetwork: internal_api
467 GnocchiApiNetwork: internal_api
468 MongoDbNetwork: internal_api
469 CinderApiNetwork: internal_api
470 CinderIscsiNetwork: storage
471 GlanceApiNetwork: storage
472 GlanceRegistryNetwork: internal_api
473 IronicApiNetwork: internal_api
474 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
475 KeystonePublicApiNetwork: internal_api
476 NeutronApiNetwork: internal_api
477 HeatApiNetwork: internal_api
478 NovaApiNetwork: internal_api
479 NovaMetadataNetwork: internal_api
480 NovaVncProxyNetwork: internal_api
481 SwiftMgmtNetwork: storage_mgmt
482 SwiftProxyNetwork: storage
483 SaharaApiNetwork: internal_api
484 HorizonNetwork: internal_api
485 MemcachedNetwork: internal_api
486 RabbitMqNetwork: internal_api
487 RedisNetwork: internal_api
488 MysqlNetwork: internal_api
489 CephClusterNetwork: storage_mgmt
490 CephPublicNetwork: storage
491 ControllerHostnameResolveNetwork: internal_api
492 ComputeHostnameResolveNetwork: internal_api
493 BlockStorageHostnameResolveNetwork: internal_api
494 ObjectStorageHostnameResolveNetwork: internal_api
495 CephStorageHostnameResolveNetwork: storage
496 description: Mapping of service_name -> network name. Typically set
497 via parameter_defaults in the resource registry.
502 - OS::TripleO::Services::CephMon
503 - OS::TripleO::Services::CephExternal
504 - OS::TripleO::Services::CinderApi
505 - OS::TripleO::Services::CinderScheduler
506 - OS::TripleO::Services::CinderVolume
507 - OS::TripleO::Services::Keystone
508 - OS::TripleO::Services::GlanceApi
509 - OS::TripleO::Services::GlanceRegistry
510 - OS::TripleO::Services::HeatApi
511 - OS::TripleO::Services::HeatApiCfn
512 - OS::TripleO::Services::HeatApiCloudwatch
513 - OS::TripleO::Services::HeatEngine
514 - OS::TripleO::Services::NeutronDhcpAgent
515 - OS::TripleO::Services::NeutronL3Agent
516 - OS::TripleO::Services::NeutronMetadataAgent
517 - OS::TripleO::Services::NeutronServer
518 - OS::TripleO::Services::NeutronCorePlugin
519 - OS::TripleO::Services::NeutronOvsAgent
520 - OS::TripleO::Services::RabbitMQ
521 - OS::TripleO::Services::HAproxy
522 - OS::TripleO::Services::Keepalived
523 - OS::TripleO::Services::Memcached
524 - OS::TripleO::Services::Redis
525 - OS::TripleO::Services::NovaConductor
526 - OS::TripleO::Services::MongoDb
527 - OS::TripleO::Services::NovaApi
528 - OS::TripleO::Services::NovaScheduler
529 - OS::TripleO::Services::NovaConsoleauth
530 - OS::TripleO::Services::NovaVncproxy
531 - OS::TripleO::Services::Ntp
532 - OS::TripleO::Services::SwiftProxy
533 - OS::TripleO::Services::SwiftStorage
534 - OS::TripleO::Services::Snmp
535 - OS::TripleO::Services::Timezone
536 description: A list of service resources (configured in the Heat
537 resource_registry) which represent nested stacks
538 for each service that should get installed on the Controllers.
539 type: comma_delimited_list
543 - OS::TripleO::Services::CephClient
544 - OS::TripleO::Services::CephExternal
545 - OS::TripleO::Services::Timezone
546 - OS::TripleO::Services::Ntp
547 - OS::TripleO::Services::Snmp
548 - OS::TripleO::Services::NovaCompute
549 - OS::TripleO::Services::NovaLibvirt
550 description: A list of service resources (configured in the Heat
551 resource_registry) which represent nested stacks
552 for each service that should get installed on the Compute Nodes.
553 type: comma_delimited_list
555 # Block storage specific parameters
560 default: overcloud-full
562 OvercloudBlockStorageFlavor:
563 description: Flavor for block storage nodes to request when deploying.
567 - custom_constraint: nova.flavor
568 BlockStorageExtraConfig:
571 BlockStorage specific configuration to inject into the cluster. Same
572 structure as ExtraConfig.
574 BlockStorageSchedulerHints:
576 description: Optional scheduler hints to pass to nova
578 BlockStorageServices:
580 - OS::TripleO::Services::CinderVolume
581 - OS::TripleO::Services::Ntp
582 - OS::TripleO::Services::Timezone
583 - OS::TripleO::Services::Snmp
584 description: A list of service resources (configured in the Heat
585 resource_registry) which represent nested stacks
586 for each service that should get installed on the BlockStorage nodes.
587 type: comma_delimited_list
589 # Object storage specific parameters
593 OvercloudSwiftStorageFlavor:
594 description: Flavor for Swift storage nodes to request when deploying.
598 - custom_constraint: nova.flavor
600 default: overcloud-full
602 ObjectStorageExtraConfig:
605 ObjectStorage specific configuration to inject into the cluster. Same
606 structure as ExtraConfig.
608 ObjectStorageSchedulerHints:
610 description: Optional scheduler hints to pass to nova
612 ObjectStorageServices:
614 - OS::TripleO::Services::Ntp
615 - OS::TripleO::Services::SwiftStorage
616 - OS::TripleO::Services::Snmp
617 - OS::TripleO::Services::Timezone
618 description: A list of service resources (configured in the Heat
619 resource_registry) which represent nested stacks
620 for each service that should get installed on the ObjectStorage nodes.
621 Note this role currently only supports steps 2, 3 and 4 configuration.
622 type: comma_delimited_list
625 # Ceph storage specific parameters
630 default: overcloud-full
632 OvercloudCephStorageFlavor:
634 description: Flavor for Ceph storage nodes to request when deploying.
637 - custom_constraint: nova.flavor
638 CephStorageExtraConfig:
641 CephStorage specific configuration to inject into the cluster. Same
642 structure as ExtraConfig.
644 CephStorageSchedulerHints:
646 description: Optional scheduler hints to pass to nova
650 - OS::TripleO::Services::CephOSD
651 - OS::TripleO::Services::Ntp
652 - OS::TripleO::Services::Timezone
653 description: A list of service resources (configured in the Heat
654 resource_registry) which represent nested stacks
655 for each service that should get installed on the CephStorage nodes.
656 type: comma_delimited_list
658 # Hostname format for each role
659 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
660 # and %stackname% is replaced with OS::stack_name in the template below.
661 # If you want to use the heat generated names, pass '' (empty string).
662 ControllerHostnameFormat:
664 description: Format for Controller node hostnames
665 default: '%stackname%-controller-%index%'
666 ComputeHostnameFormat:
668 description: Format for Compute node hostnames
669 default: '%stackname%-novacompute-%index%'
670 BlockStorageHostnameFormat:
672 description: Format for BlockStorage node hostnames
673 default: '%stackname%-blockstorage-%index%'
674 ObjectStorageHostnameFormat:
676 description: Format for SwiftStorage node hostnames
677 default: '%stackname%-objectstorage-%index%'
678 CephStorageHostnameFormat:
680 description: Format for CephStorage node hostnames
681 default: '%stackname%-cephstorage-%index%'
683 # Identifiers to trigger tasks on nodes
688 Setting to a previously unused value during stack-update will trigger
689 package update on all nodes
694 Setting this to a unique value will re-run any deployment tasks which
695 perform configuration on a Heat stack-update.
697 # If you want to remove a specific node from a resource group, you can pass
698 # the node name or id as a <Group>RemovalPolicies parameter, for example:
699 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
700 ControllerRemovalPolicies:
704 List of resources to be removed from ControllerResourceGroup when
705 doing an update which requires removal of specific resources.
706 ComputeRemovalPolicies:
710 List of resources to be removed from ComputeResourceGroup when
711 doing an update which requires removal of specific resources.
712 BlockStorageRemovalPolicies:
716 List of resources to be removed from BlockStorageResourceGroup when
717 doing an update which requires removal of specific resources.
718 ObjectStorageRemovalPolicies:
722 List of resources to be removed from ObjectStorageResourceGroup when
723 doing an update which requires removal of specific resources.
724 CephStorageRemovalPolicies:
728 List of resources to be removed from CephStorageResourceGroup when
729 doing an update which requires removal of specific resources.
733 description: Do not use deprecated params, they will be removed.
735 - controllerExtraConfig
740 HeatAuthEncryptionKey:
741 type: OS::Heat::RandomString
744 type: OS::Heat::RandomString
749 type: OS::Heat::RandomString
754 type: OS::TripleO::EndpointMap
756 CloudName: {get_param: CloudName}
757 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
758 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
759 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
760 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
761 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
762 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
763 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
764 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
765 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
766 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
767 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
768 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
769 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
770 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
771 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
772 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
774 ControllerServiceChain:
775 type: OS::TripleO::Services
777 Services: {get_param: ControllerServices}
778 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
781 type: OS::Heat::ResourceGroup
784 count: {get_param: ControllerCount}
785 removal_policies: {get_param: ControllerRemovalPolicies}
787 type: OS::TripleO::Controller
789 AdminPassword: {get_param: AdminPassword}
790 AodhPassword: {get_param: AodhPassword}
791 CeilometerBackend: {get_param: CeilometerBackend}
792 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
793 CeilometerPassword: {get_param: CeilometerPassword}
794 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
795 CloudDomain: {get_param: CloudDomain}
796 ControlVirtualInterface: {get_param: ControlVirtualInterface}
797 controllerExtraConfig: {get_param: controllerExtraConfig}
798 CorosyncIPv6: {get_param: CorosyncIPv6}
799 Debug: {get_param: Debug}
800 EnableFencing: {get_param: EnableFencing}
801 ManageFirewall: {get_param: ManageFirewall}
802 PurgeFirewallRules: {get_param: PurgeFirewallRules}
803 EnableGalera: {get_param: EnableGalera}
804 ExtraConfig: {get_param: ExtraConfig}
805 FencingConfig: {get_param: FencingConfig}
806 Flavor: {get_param: OvercloudControlFlavor}
807 GnocchiPassword: {get_param: GnocchiPassword}
808 GnocchiBackend: {get_param: GnocchiBackend}
809 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
810 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
811 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
812 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
813 HorizonSecret: {get_resource: HorizonSecret}
814 Image: {get_param: controllerImage}
815 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
816 InstanceNameTemplate: {get_param: InstanceNameTemplate}
817 KeyName: {get_param: KeyName}
818 MemcachedIPv6: {get_param: MemcachedIPv6}
819 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
820 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
821 MysqlMaxConnections: {get_param: MysqlMaxConnections}
822 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
823 NeutronTenantMtu: {get_param: NeutronTenantMtu}
824 NeutronPublicInterface: {get_param: NeutronPublicInterface}
825 NeutronPassword: {get_param: NeutronPassword}
826 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
827 NovaIPv6: {get_param: NovaIPv6}
828 NovaPassword: {get_param: NovaPassword}
829 PcsdPassword: {get_resource: PcsdPassword}
830 PublicVirtualInterface: {get_param: PublicVirtualInterface}
831 RabbitPassword: {get_param: RabbitPassword}
832 RabbitUserName: {get_param: RabbitUserName}
833 RabbitCookie: {get_attr: [RabbitCookie, value]}
834 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
835 RabbitClientPort: {get_param: RabbitClientPort}
836 RedisPassword: {get_param: RedisPassword}
837 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
838 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
839 SwiftHashSuffix: {get_param: SwiftHashSuffix}
840 SwiftMinPartHours: {get_param: SwiftMinPartHours}
841 SwiftPartPower: {get_param: SwiftPartPower}
842 SwiftReplicas: { get_param: SwiftReplicas}
843 ServiceNetMap: {get_param: ServiceNetMap}
844 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
845 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
846 UpdateIdentifier: {get_param: UpdateIdentifier}
849 template: {get_param: ControllerHostnameFormat}
851 '%stackname%': {get_param: 'OS::stack_name'}
853 ServerMetadata: {get_param: ServerMetadata}
854 SchedulerHints: {get_param: ControllerSchedulerHints}
855 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
859 type: OS::TripleO::Services
861 Services: {get_param: ComputeServices}
862 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
865 type: OS::Heat::ResourceGroup
868 count: {get_param: ComputeCount}
869 removal_policies: {get_param: ComputeRemovalPolicies}
871 type: OS::TripleO::Compute
873 AdminPassword: {get_param: AdminPassword}
874 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
875 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
876 CeilometerPassword: {get_param: CeilometerPassword}
877 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
878 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
879 Debug: {get_param: Debug}
880 ExtraConfig: {get_param: ExtraConfig}
881 Flavor: {get_param: OvercloudComputeFlavor}
882 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
883 Image: {get_param: NovaImage}
884 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
885 KeyName: {get_param: KeyName}
886 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
887 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
888 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
889 NeutronTenantMtu: {get_param: NeutronTenantMtu}
890 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
891 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
892 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
893 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
894 NeutronNetworkType: {get_param: NeutronNetworkType}
895 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
896 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
897 NeutronPassword: {get_param: NeutronPassword}
898 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
899 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
900 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
901 NeutronCorePlugin: {get_param: NeutronCorePlugin}
902 NeutronServicePlugins: {get_param: NeutronServicePlugins}
903 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
904 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
905 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
906 # L3 HA and Failover is not relevant for Computes, should be removed
907 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
908 NeutronL3HA: {get_param: NeutronL3HA}
909 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
910 NovaComputeDriver: {get_param: NovaComputeDriver}
911 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
912 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
913 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
914 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
915 NovaIPv6: {get_param: NovaIPv6}
916 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
917 NovaPassword: {get_param: NovaPassword}
918 NovaOVSBridge: {get_param: NovaOVSBridge}
919 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
920 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
921 RabbitPassword: {get_param: RabbitPassword}
922 RabbitUserName: {get_param: RabbitUserName}
923 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
924 RabbitClientPort: {get_param: RabbitClientPort}
925 ServiceNetMap: {get_param: ServiceNetMap}
926 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
927 UpdateIdentifier: {get_param: UpdateIdentifier}
930 template: {get_param: ComputeHostnameFormat}
932 '%stackname%': {get_param: 'OS::stack_name'}
933 CloudDomain: {get_param: CloudDomain}
934 ServerMetadata: {get_param: ServerMetadata}
935 SchedulerHints: {get_param: NovaComputeSchedulerHints}
937 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
939 BlockStorageServiceChain:
940 type: OS::TripleO::Services
942 Services: {get_param: BlockStorageServices}
943 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
946 type: OS::Heat::ResourceGroup
949 count: {get_param: BlockStorageCount}
950 removal_policies: {get_param: BlockStorageRemovalPolicies}
952 type: OS::TripleO::BlockStorage
954 Image: {get_param: BlockStorageImage}
955 KeyName: {get_param: KeyName}
956 Flavor: {get_param: OvercloudBlockStorageFlavor}
957 UpdateIdentifier: {get_param: UpdateIdentifier}
960 template: {get_param: BlockStorageHostnameFormat}
962 '%stackname%': {get_param: 'OS::stack_name'}
963 ServiceNetMap: {get_param: ServiceNetMap}
964 ExtraConfig: {get_param: ExtraConfig}
965 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
966 CloudDomain: {get_param: CloudDomain}
967 ServerMetadata: {get_param: ServerMetadata}
968 SchedulerHints: {get_param: BlockStorageSchedulerHints}
970 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
972 ObjectStorageServiceChain:
973 type: OS::TripleO::Services
975 Services: {get_param: ObjectStorageServices}
976 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
979 type: OS::Heat::ResourceGroup
982 count: {get_param: ObjectStorageCount}
983 removal_policies: {get_param: ObjectStorageRemovalPolicies}
985 type: OS::TripleO::ObjectStorage
987 KeyName: {get_param: KeyName}
988 Flavor: {get_param: OvercloudSwiftStorageFlavor}
989 HashSuffix: {get_param: SwiftHashSuffix}
990 MinPartHours: {get_param: SwiftMinPartHours}
991 PartPower: {get_param: SwiftPartPower}
992 Image: {get_param: SwiftStorageImage}
993 Replicas: { get_param: SwiftReplicas}
994 UpdateIdentifier: {get_param: UpdateIdentifier}
995 ServiceNetMap: {get_param: ServiceNetMap}
998 template: {get_param: ObjectStorageHostnameFormat}
1000 '%stackname%': {get_param: 'OS::stack_name'}
1001 ExtraConfig: {get_param: ExtraConfig}
1002 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1003 CloudDomain: {get_param: CloudDomain}
1004 ServerMetadata: {get_param: ServerMetadata}
1005 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1006 NodeIndex: '%index%'
1007 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
1009 CephStorageServiceChain:
1010 type: OS::TripleO::Services
1012 Services: {get_param: CephStorageServices}
1013 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1016 type: OS::Heat::ResourceGroup
1017 depends_on: Networks
1019 count: {get_param: CephStorageCount}
1020 removal_policies: {get_param: CephStorageRemovalPolicies}
1022 type: OS::TripleO::CephStorage
1024 Image: {get_param: CephStorageImage}
1025 KeyName: {get_param: KeyName}
1026 Flavor: {get_param: OvercloudCephStorageFlavor}
1027 ServiceNetMap: {get_param: ServiceNetMap}
1028 UpdateIdentifier: {get_param: UpdateIdentifier}
1031 template: {get_param: CephStorageHostnameFormat}
1033 '%stackname%': {get_param: 'OS::stack_name'}
1034 ExtraConfig: {get_param: ExtraConfig}
1035 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1036 CloudDomain: {get_param: CloudDomain}
1037 ServerMetadata: {get_param: ServerMetadata}
1038 SchedulerHints: {get_param: CephStorageSchedulerHints}
1039 NodeIndex: '%index%'
1040 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
1042 ControllerIpListMap:
1043 type: OS::TripleO::Network::Ports::NetIpListMap
1045 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1046 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1047 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1048 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1049 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1050 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1051 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1054 type: OS::TripleO::AllNodes::SoftwareConfig
1056 compute_hosts: {get_attr: [Compute, hosts_entry]}
1057 controller_hosts: {get_attr: [Controller, hosts_entry]}
1058 controller_ips: {get_attr: [Controller, ip_address]}
1059 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1060 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1061 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1062 controller_names: {get_attr: [Controller, hostname]}
1063 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1064 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1065 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1066 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1067 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1068 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1069 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1070 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1071 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1072 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1073 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1074 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1075 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1076 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1077 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1078 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1079 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1080 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1081 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1082 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1083 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1084 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1085 ceph_mon_node_names: {get_attr: [Controller, hostname]}
1086 DeployIdentifier: {get_param: DeployIdentifier}
1087 UpdateIdentifier: {get_param: UpdateIdentifier}
1090 type: OS::Heat::RandomString
1094 MysqlClusterUniquePart:
1095 type: OS::Heat::RandomString
1100 type: OS::Heat::RandomString
1103 salt: {get_param: RabbitCookieSalt}
1105 # creates the network architecture
1107 type: OS::TripleO::Network
1110 type: OS::Neutron::Port
1111 depends_on: Networks
1113 name: control_virtual_ip
1114 network: {get_param: NeutronControlPlaneID}
1115 fixed_ips: {get_param: ControlFixedIPs}
1116 replacement_policy: AUTO
1119 depends_on: Networks
1120 type: OS::TripleO::Network::Ports::RedisVipPort
1122 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1123 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1124 PortName: redis_virtual_ip
1125 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1128 # The public VIP is on the External net, falls back to ctlplane
1130 depends_on: Networks
1131 type: OS::TripleO::Network::Ports::ExternalVipPort
1133 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1134 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1135 PortName: public_virtual_ip
1136 FixedIPs: {get_param: PublicVirtualFixedIPs}
1138 InternalApiVirtualIP:
1139 depends_on: Networks
1140 type: OS::TripleO::Network::Ports::InternalApiVipPort
1142 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1143 PortName: internal_api_virtual_ip
1144 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1147 depends_on: Networks
1148 type: OS::TripleO::Network::Ports::StorageVipPort
1150 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1151 PortName: storage_virtual_ip
1152 FixedIPs: {get_param: StorageVirtualFixedIPs}
1154 StorageMgmtVirtualIP:
1155 depends_on: Networks
1156 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1158 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1159 PortName: storage_management_virtual_ip
1160 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1163 type: OS::TripleO::Network::Ports::NetVipMap
1165 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1166 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1167 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1168 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1169 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1170 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1171 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1172 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1173 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1174 # No tenant or management VIP required
1177 type: OS::TripleO::VipConfig
1180 type: OS::Heat::StructuredDeployments
1183 config: {get_resource: VipConfig}
1184 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1186 # service VIP mappings
1187 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1188 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1189 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1190 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1191 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1192 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1193 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1194 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1195 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1196 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1197 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1198 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1199 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1200 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1201 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1202 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1203 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1204 # direct configuration of Virtual IPs for each network
1205 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1206 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1207 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1208 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1209 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1210 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1211 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1213 ControllerBootstrapNodeConfig:
1214 type: OS::TripleO::BootstrapNode::SoftwareConfig
1216 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1217 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1219 ControllerBootstrapNodeDeployment:
1220 type: OS::Heat::StructuredDeployments
1222 name: ControllerBootstrapNodeDeployment
1223 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1224 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1226 ControllerSwiftDeployment:
1227 type: OS::Heat::StructuredDeployments
1229 name: ControllerSwiftDeployment
1230 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1231 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1233 ObjectStorageSwiftDeployment:
1234 type: OS::Heat::StructuredDeployments
1236 name: ObjectStorageSwiftDeployment
1237 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1238 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1240 SwiftDevicesAndProxyConfig:
1241 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1243 controller_swift_devices: {get_attr: [Controller, swift_device]}
1244 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1245 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1247 ComputeCephDeployment:
1248 type: OS::Heat::StructuredDeployments
1250 name: ComputeCephDeployment
1251 config: {get_attr: [CephClusterConfig, config_id]}
1252 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1254 ControllerCephDeployment:
1255 type: OS::Heat::StructuredDeployments
1257 name: ControllerCephDeployment
1258 config: {get_attr: [CephClusterConfig, config_id]}
1259 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1261 CephStorageCephDeployment:
1262 type: OS::Heat::StructuredDeployments
1264 name: CephStorageCephDeployment
1265 config: {get_attr: [CephClusterConfig, config_id]}
1266 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1269 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1271 ControllerAllNodesDeployment:
1272 type: OS::Heat::StructuredDeployments
1274 name: ControllerAllNodesDeployment
1275 config: {get_attr: [allNodesConfig, config_id]}
1276 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1278 ComputeAllNodesDeployment:
1279 type: OS::Heat::StructuredDeployments
1281 name: ComputeAllNodesDeployment
1282 config: {get_attr: [allNodesConfig, config_id]}
1283 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1285 BlockStorageAllNodesDeployment:
1286 type: OS::Heat::StructuredDeployments
1288 name: BlockStorageAllNodesDeployment
1289 config: {get_attr: [allNodesConfig, config_id]}
1290 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1292 ObjectStorageAllNodesDeployment:
1293 type: OS::Heat::StructuredDeployments
1295 name: ObjectStorageAllNodesDeployment
1296 config: {get_attr: [allNodesConfig, config_id]}
1297 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1299 CephStorageAllNodesDeployment:
1300 type: OS::Heat::StructuredDeployments
1302 name: CephStorageAllNodesDeployment
1303 config: {get_attr: [allNodesConfig, config_id]}
1304 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1306 # All Nodes Validations
1307 AllNodesValidationConfig:
1308 type: OS::TripleO::AllNodes::Validation
1313 - - {get_attr: [Controller, resource.0.external_ip_address]}
1314 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1315 - {get_attr: [Controller, resource.0.storage_ip_address]}
1316 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1317 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1319 ControllerAllNodesValidationDeployment:
1320 type: OS::Heat::StructuredDeployments
1321 depends_on: ControllerAllNodesDeployment
1323 name: ControllerAllNodesValidationDeployment
1324 config: {get_resource: AllNodesValidationConfig}
1325 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1327 ComputeAllNodesValidationDeployment:
1328 type: OS::Heat::StructuredDeployments
1329 depends_on: ComputeAllNodesDeployment
1331 name: ComputeAllNodesValidationDeployment
1332 config: {get_resource: AllNodesValidationConfig}
1333 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1335 BlockStorageAllNodesValidationDeployment:
1336 type: OS::Heat::StructuredDeployments
1337 depends_on: BlockStorageAllNodesDeployment
1339 name: BlockStorageAllNodesValidationDeployment
1340 config: {get_resource: AllNodesValidationConfig}
1341 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1343 ObjectStorageAllNodesValidationDeployment:
1344 type: OS::Heat::StructuredDeployments
1345 depends_on: ObjectStorageAllNodesDeployment
1347 name: ObjectStorageAllNodesValidationDeployment
1348 config: {get_resource: AllNodesValidationConfig}
1349 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1351 CephStorageAllNodesValidationDeployment:
1352 type: OS::Heat::StructuredDeployments
1353 depends_on: CephStorageAllNodesDeployment
1355 name: CephStorageAllNodesValidationDeployment
1356 config: {get_resource: AllNodesValidationConfig}
1357 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1360 type: OS::TripleO::Tasks::UpdateWorkflow
1362 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1363 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1364 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1365 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1366 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1368 deploy_identifier: {get_param: DeployIdentifier}
1369 update_identifier: {get_param: UpdateIdentifier}
1371 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1372 # the nested template may configure each role differently (or not at all)
1373 AllNodesExtraConfig:
1374 type: OS::TripleO::AllNodesExtraConfig
1377 - ComputeAllNodesValidationDeployment
1378 - BlockStorageAllNodesValidationDeployment
1379 - ObjectStorageAllNodesValidationDeployment
1380 - CephStorageAllNodesValidationDeployment
1381 - ControllerAllNodesValidationDeployment
1383 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1384 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1385 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1386 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1387 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1389 # Nested stack deployment runs after all other controller deployments
1390 ControllerNodesPostDeployment:
1391 type: OS::TripleO::ControllerPostDeployment
1392 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1394 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1395 RoleData: {get_attr: [ControllerServiceChain, role_data]}
1397 ComputeNodesPostDeployment:
1398 type: OS::TripleO::ComputePostDeployment
1399 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1401 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1402 RoleData: {get_attr: [ComputeServiceChain, role_data]}
1404 ObjectStorageNodesPostDeployment:
1405 type: OS::TripleO::ObjectStoragePostDeployment
1406 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1408 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1409 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
1411 BlockStorageNodesPostDeployment:
1412 type: OS::TripleO::BlockStoragePostDeployment
1413 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1415 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1416 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
1418 CephStorageNodesPostDeployment:
1419 type: OS::TripleO::CephStoragePostDeployment
1420 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1422 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1423 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
1427 description: URL for the Overcloud Keystone service
1428 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1430 description: Keystone Admin VIP endpoint
1431 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1433 description: Controller VIP for public API endpoints
1434 value: {get_attr: [VipMap, net_ip_map, external]}
1436 description: VIP for Aodh API internal endpoint
1437 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1438 CeilometerInternalVip:
1439 description: VIP for Ceilometer API internal endpoint
1440 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1442 description: VIP for Cinder API internal endpoint
1443 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1445 description: VIP for Glance API internal endpoint
1446 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1448 description: VIP for Gnocchi API internal endpoint
1449 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1451 description: VIP for Heat API internal endpoint
1452 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1454 description: VIP for Ironic API internal endpoint
1455 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1456 KeystoneInternalVip:
1457 description: VIP for Keystone API internal endpoint
1458 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1460 description: VIP for Neutron API internal endpoint
1461 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1463 description: VIP for Nova API internal endpoint
1464 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1466 description: VIP for Sahara API internal endpoint
1467 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1469 description: VIP for Swift Proxy internal endpoint
1470 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1473 Mapping of the resources with the needed info for their endpoints.
1474 This includes the protocol used, the IP, port and also a full
1475 representation of the URI.
1476 value: {get_attr: [EndpointMap, endpoint_map]}
1479 The content that should be appended to your /etc/hosts if you want to get
1480 hostname-based access to the deployed nodes (useful for testing without
1482 value: {get_attr: [allNodesConfig, hosts_entries]}