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 description: A list of service resources (configured in the Heat
584 resource_registry) which represent nested stacks
585 for each service that should get installed on the BlockStorage nodes.
586 type: comma_delimited_list
588 # Object storage specific parameters
592 OvercloudSwiftStorageFlavor:
593 description: Flavor for Swift storage nodes to request when deploying.
597 - custom_constraint: nova.flavor
599 default: overcloud-full
601 ObjectStorageExtraConfig:
604 ObjectStorage specific configuration to inject into the cluster. Same
605 structure as ExtraConfig.
607 ObjectStorageSchedulerHints:
609 description: Optional scheduler hints to pass to nova
611 ObjectStorageServices:
613 - OS::TripleO::Services::Ntp
614 - OS::TripleO::Services::SwiftStorage
615 - OS::TripleO::Services::Snmp
616 - OS::TripleO::Services::Timezone
617 description: A list of service resources (configured in the Heat
618 resource_registry) which represent nested stacks
619 for each service that should get installed on the ObjectStorage nodes.
620 Note this role currently only supports steps 2, 3 and 4 configuration.
621 type: comma_delimited_list
624 # Ceph storage specific parameters
629 default: overcloud-full
631 OvercloudCephStorageFlavor:
633 description: Flavor for Ceph storage nodes to request when deploying.
636 - custom_constraint: nova.flavor
637 CephStorageExtraConfig:
640 CephStorage specific configuration to inject into the cluster. Same
641 structure as ExtraConfig.
643 CephStorageSchedulerHints:
645 description: Optional scheduler hints to pass to nova
649 - OS::TripleO::Services::CephOSD
650 - OS::TripleO::Services::Ntp
651 - OS::TripleO::Services::Timezone
652 description: A list of service resources (configured in the Heat
653 resource_registry) which represent nested stacks
654 for each service that should get installed on the CephStorage nodes.
655 type: comma_delimited_list
657 # Hostname format for each role
658 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
659 # and %stackname% is replaced with OS::stack_name in the template below.
660 # If you want to use the heat generated names, pass '' (empty string).
661 ControllerHostnameFormat:
663 description: Format for Controller node hostnames
664 default: '%stackname%-controller-%index%'
665 ComputeHostnameFormat:
667 description: Format for Compute node hostnames
668 default: '%stackname%-novacompute-%index%'
669 BlockStorageHostnameFormat:
671 description: Format for BlockStorage node hostnames
672 default: '%stackname%-blockstorage-%index%'
673 ObjectStorageHostnameFormat:
675 description: Format for SwiftStorage node hostnames
676 default: '%stackname%-objectstorage-%index%'
677 CephStorageHostnameFormat:
679 description: Format for CephStorage node hostnames
680 default: '%stackname%-cephstorage-%index%'
682 # Identifiers to trigger tasks on nodes
687 Setting to a previously unused value during stack-update will trigger
688 package update on all nodes
693 Setting this to a unique value will re-run any deployment tasks which
694 perform configuration on a Heat stack-update.
696 # If you want to remove a specific node from a resource group, you can pass
697 # the node name or id as a <Group>RemovalPolicies parameter, for example:
698 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
699 ControllerRemovalPolicies:
703 List of resources to be removed from ControllerResourceGroup when
704 doing an update which requires removal of specific resources.
705 ComputeRemovalPolicies:
709 List of resources to be removed from ComputeResourceGroup when
710 doing an update which requires removal of specific resources.
711 BlockStorageRemovalPolicies:
715 List of resources to be removed from BlockStorageResourceGroup when
716 doing an update which requires removal of specific resources.
717 ObjectStorageRemovalPolicies:
721 List of resources to be removed from ObjectStorageResourceGroup when
722 doing an update which requires removal of specific resources.
723 CephStorageRemovalPolicies:
727 List of resources to be removed from CephStorageResourceGroup when
728 doing an update which requires removal of specific resources.
732 description: Do not use deprecated params, they will be removed.
734 - controllerExtraConfig
739 HeatAuthEncryptionKey:
740 type: OS::Heat::RandomString
743 type: OS::Heat::RandomString
748 type: OS::Heat::RandomString
753 type: OS::TripleO::EndpointMap
755 CloudName: {get_param: CloudName}
756 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
757 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
758 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
759 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
760 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
761 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
762 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
763 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
764 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
765 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
766 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
767 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
768 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
769 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
770 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
771 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
773 ControllerServiceChain:
774 type: OS::TripleO::Services
776 Services: {get_param: ControllerServices}
777 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
780 type: OS::Heat::ResourceGroup
783 count: {get_param: ControllerCount}
784 removal_policies: {get_param: ControllerRemovalPolicies}
786 type: OS::TripleO::Controller
788 AdminPassword: {get_param: AdminPassword}
789 AodhPassword: {get_param: AodhPassword}
790 CeilometerBackend: {get_param: CeilometerBackend}
791 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
792 CeilometerPassword: {get_param: CeilometerPassword}
793 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
794 CloudDomain: {get_param: CloudDomain}
795 ControlVirtualInterface: {get_param: ControlVirtualInterface}
796 controllerExtraConfig: {get_param: controllerExtraConfig}
797 CorosyncIPv6: {get_param: CorosyncIPv6}
798 Debug: {get_param: Debug}
799 EnableFencing: {get_param: EnableFencing}
800 ManageFirewall: {get_param: ManageFirewall}
801 PurgeFirewallRules: {get_param: PurgeFirewallRules}
802 EnableGalera: {get_param: EnableGalera}
803 ExtraConfig: {get_param: ExtraConfig}
804 FencingConfig: {get_param: FencingConfig}
805 Flavor: {get_param: OvercloudControlFlavor}
806 GnocchiPassword: {get_param: GnocchiPassword}
807 GnocchiBackend: {get_param: GnocchiBackend}
808 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
809 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
810 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
811 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
812 HorizonSecret: {get_resource: HorizonSecret}
813 Image: {get_param: controllerImage}
814 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
815 InstanceNameTemplate: {get_param: InstanceNameTemplate}
816 KeyName: {get_param: KeyName}
817 MemcachedIPv6: {get_param: MemcachedIPv6}
818 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
819 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
820 MysqlMaxConnections: {get_param: MysqlMaxConnections}
821 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
822 NeutronTenantMtu: {get_param: NeutronTenantMtu}
823 NeutronPublicInterface: {get_param: NeutronPublicInterface}
824 NeutronPassword: {get_param: NeutronPassword}
825 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
826 NovaIPv6: {get_param: NovaIPv6}
827 NovaPassword: {get_param: NovaPassword}
828 PcsdPassword: {get_resource: PcsdPassword}
829 PublicVirtualInterface: {get_param: PublicVirtualInterface}
830 RabbitPassword: {get_param: RabbitPassword}
831 RabbitUserName: {get_param: RabbitUserName}
832 RabbitCookie: {get_attr: [RabbitCookie, value]}
833 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
834 RabbitClientPort: {get_param: RabbitClientPort}
835 RedisPassword: {get_param: RedisPassword}
836 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
837 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
838 SwiftHashSuffix: {get_param: SwiftHashSuffix}
839 SwiftMinPartHours: {get_param: SwiftMinPartHours}
840 SwiftPartPower: {get_param: SwiftPartPower}
841 SwiftReplicas: { get_param: SwiftReplicas}
842 ServiceNetMap: {get_param: ServiceNetMap}
843 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
844 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
845 UpdateIdentifier: {get_param: UpdateIdentifier}
848 template: {get_param: ControllerHostnameFormat}
850 '%stackname%': {get_param: 'OS::stack_name'}
852 ServerMetadata: {get_param: ServerMetadata}
853 SchedulerHints: {get_param: ControllerSchedulerHints}
854 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
858 type: OS::TripleO::Services
860 Services: {get_param: ComputeServices}
861 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
864 type: OS::Heat::ResourceGroup
867 count: {get_param: ComputeCount}
868 removal_policies: {get_param: ComputeRemovalPolicies}
870 type: OS::TripleO::Compute
872 AdminPassword: {get_param: AdminPassword}
873 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
874 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
875 CeilometerPassword: {get_param: CeilometerPassword}
876 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
877 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
878 Debug: {get_param: Debug}
879 ExtraConfig: {get_param: ExtraConfig}
880 Flavor: {get_param: OvercloudComputeFlavor}
881 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
882 Image: {get_param: NovaImage}
883 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
884 KeyName: {get_param: KeyName}
885 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
886 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
887 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
888 NeutronTenantMtu: {get_param: NeutronTenantMtu}
889 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
890 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
891 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
892 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
893 NeutronNetworkType: {get_param: NeutronNetworkType}
894 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
895 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
896 NeutronPassword: {get_param: NeutronPassword}
897 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
898 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
899 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
900 NeutronCorePlugin: {get_param: NeutronCorePlugin}
901 NeutronServicePlugins: {get_param: NeutronServicePlugins}
902 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
903 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
904 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
905 # L3 HA and Failover is not relevant for Computes, should be removed
906 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
907 NeutronL3HA: {get_param: NeutronL3HA}
908 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
909 NovaComputeDriver: {get_param: NovaComputeDriver}
910 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
911 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
912 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
913 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
914 NovaIPv6: {get_param: NovaIPv6}
915 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
916 NovaPassword: {get_param: NovaPassword}
917 NovaOVSBridge: {get_param: NovaOVSBridge}
918 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
919 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
920 RabbitPassword: {get_param: RabbitPassword}
921 RabbitUserName: {get_param: RabbitUserName}
922 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
923 RabbitClientPort: {get_param: RabbitClientPort}
924 ServiceNetMap: {get_param: ServiceNetMap}
925 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
926 UpdateIdentifier: {get_param: UpdateIdentifier}
929 template: {get_param: ComputeHostnameFormat}
931 '%stackname%': {get_param: 'OS::stack_name'}
932 CloudDomain: {get_param: CloudDomain}
933 ServerMetadata: {get_param: ServerMetadata}
934 SchedulerHints: {get_param: NovaComputeSchedulerHints}
936 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
938 BlockStorageServiceChain:
939 type: OS::TripleO::Services
941 Services: {get_param: BlockStorageServices}
942 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
945 type: OS::Heat::ResourceGroup
948 count: {get_param: BlockStorageCount}
949 removal_policies: {get_param: BlockStorageRemovalPolicies}
951 type: OS::TripleO::BlockStorage
953 Image: {get_param: BlockStorageImage}
954 KeyName: {get_param: KeyName}
955 Flavor: {get_param: OvercloudBlockStorageFlavor}
956 UpdateIdentifier: {get_param: UpdateIdentifier}
959 template: {get_param: BlockStorageHostnameFormat}
961 '%stackname%': {get_param: 'OS::stack_name'}
962 ServiceNetMap: {get_param: ServiceNetMap}
963 ExtraConfig: {get_param: ExtraConfig}
964 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
965 CloudDomain: {get_param: CloudDomain}
966 ServerMetadata: {get_param: ServerMetadata}
967 SchedulerHints: {get_param: BlockStorageSchedulerHints}
969 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
971 ObjectStorageServiceChain:
972 type: OS::TripleO::Services
974 Services: {get_param: ObjectStorageServices}
975 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
978 type: OS::Heat::ResourceGroup
981 count: {get_param: ObjectStorageCount}
982 removal_policies: {get_param: ObjectStorageRemovalPolicies}
984 type: OS::TripleO::ObjectStorage
986 KeyName: {get_param: KeyName}
987 Flavor: {get_param: OvercloudSwiftStorageFlavor}
988 HashSuffix: {get_param: SwiftHashSuffix}
989 MinPartHours: {get_param: SwiftMinPartHours}
990 PartPower: {get_param: SwiftPartPower}
991 Image: {get_param: SwiftStorageImage}
992 Replicas: { get_param: SwiftReplicas}
993 UpdateIdentifier: {get_param: UpdateIdentifier}
994 ServiceNetMap: {get_param: ServiceNetMap}
997 template: {get_param: ObjectStorageHostnameFormat}
999 '%stackname%': {get_param: 'OS::stack_name'}
1000 ExtraConfig: {get_param: ExtraConfig}
1001 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1002 CloudDomain: {get_param: CloudDomain}
1003 ServerMetadata: {get_param: ServerMetadata}
1004 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1005 NodeIndex: '%index%'
1006 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
1008 CephStorageServiceChain:
1009 type: OS::TripleO::Services
1011 Services: {get_param: CephStorageServices}
1012 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1015 type: OS::Heat::ResourceGroup
1016 depends_on: Networks
1018 count: {get_param: CephStorageCount}
1019 removal_policies: {get_param: CephStorageRemovalPolicies}
1021 type: OS::TripleO::CephStorage
1023 Image: {get_param: CephStorageImage}
1024 KeyName: {get_param: KeyName}
1025 Flavor: {get_param: OvercloudCephStorageFlavor}
1026 ServiceNetMap: {get_param: ServiceNetMap}
1027 UpdateIdentifier: {get_param: UpdateIdentifier}
1030 template: {get_param: CephStorageHostnameFormat}
1032 '%stackname%': {get_param: 'OS::stack_name'}
1033 ExtraConfig: {get_param: ExtraConfig}
1034 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1035 CloudDomain: {get_param: CloudDomain}
1036 ServerMetadata: {get_param: ServerMetadata}
1037 SchedulerHints: {get_param: CephStorageSchedulerHints}
1038 NodeIndex: '%index%'
1039 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
1041 ControllerIpListMap:
1042 type: OS::TripleO::Network::Ports::NetIpListMap
1044 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1045 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1046 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1047 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1048 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1049 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1050 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1053 type: OS::TripleO::AllNodes::SoftwareConfig
1055 compute_hosts: {get_attr: [Compute, hosts_entry]}
1056 controller_hosts: {get_attr: [Controller, hosts_entry]}
1057 controller_ips: {get_attr: [Controller, ip_address]}
1058 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1059 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1060 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1061 controller_names: {get_attr: [Controller, hostname]}
1062 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1063 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1064 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1065 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1066 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1067 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1068 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1069 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1070 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1071 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1072 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1073 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1074 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1075 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1076 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1077 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1078 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1079 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1080 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1081 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1082 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1083 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1084 ceph_mon_node_names: {get_attr: [Controller, hostname]}
1085 DeployIdentifier: {get_param: DeployIdentifier}
1086 UpdateIdentifier: {get_param: UpdateIdentifier}
1089 type: OS::Heat::RandomString
1093 MysqlClusterUniquePart:
1094 type: OS::Heat::RandomString
1099 type: OS::Heat::RandomString
1102 salt: {get_param: RabbitCookieSalt}
1104 # creates the network architecture
1106 type: OS::TripleO::Network
1109 type: OS::Neutron::Port
1110 depends_on: Networks
1112 name: control_virtual_ip
1113 network: {get_param: NeutronControlPlaneID}
1114 fixed_ips: {get_param: ControlFixedIPs}
1115 replacement_policy: AUTO
1118 depends_on: Networks
1119 type: OS::TripleO::Network::Ports::RedisVipPort
1121 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1122 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1123 PortName: redis_virtual_ip
1124 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1127 # The public VIP is on the External net, falls back to ctlplane
1129 depends_on: Networks
1130 type: OS::TripleO::Network::Ports::ExternalVipPort
1132 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1133 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1134 PortName: public_virtual_ip
1135 FixedIPs: {get_param: PublicVirtualFixedIPs}
1137 InternalApiVirtualIP:
1138 depends_on: Networks
1139 type: OS::TripleO::Network::Ports::InternalApiVipPort
1141 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1142 PortName: internal_api_virtual_ip
1143 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1146 depends_on: Networks
1147 type: OS::TripleO::Network::Ports::StorageVipPort
1149 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1150 PortName: storage_virtual_ip
1151 FixedIPs: {get_param: StorageVirtualFixedIPs}
1153 StorageMgmtVirtualIP:
1154 depends_on: Networks
1155 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1157 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1158 PortName: storage_management_virtual_ip
1159 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1162 type: OS::TripleO::Network::Ports::NetVipMap
1164 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1165 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1166 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1167 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1168 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1169 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1170 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1171 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1172 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1173 # No tenant or management VIP required
1176 type: OS::TripleO::VipConfig
1179 type: OS::Heat::StructuredDeployments
1182 config: {get_resource: VipConfig}
1183 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1185 # service VIP mappings
1186 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1187 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1188 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1189 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1190 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1191 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1192 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1193 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1194 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1195 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1196 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1197 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1198 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1199 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1200 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1201 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1202 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1203 # direct configuration of Virtual IPs for each network
1204 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1205 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1206 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1207 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1208 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1209 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1210 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1212 ControllerSwiftDeployment:
1213 type: OS::Heat::StructuredDeployments
1215 name: ControllerSwiftDeployment
1216 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1217 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1219 ObjectStorageSwiftDeployment:
1220 type: OS::Heat::StructuredDeployments
1222 name: ObjectStorageSwiftDeployment
1223 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1224 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1226 SwiftDevicesAndProxyConfig:
1227 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1229 controller_swift_devices: {get_attr: [Controller, swift_device]}
1230 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1231 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1233 ComputeCephDeployment:
1234 type: OS::Heat::StructuredDeployments
1236 name: ComputeCephDeployment
1237 config: {get_attr: [CephClusterConfig, config_id]}
1238 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1240 ControllerCephDeployment:
1241 type: OS::Heat::StructuredDeployments
1243 name: ControllerCephDeployment
1244 config: {get_attr: [CephClusterConfig, config_id]}
1245 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1247 CephStorageCephDeployment:
1248 type: OS::Heat::StructuredDeployments
1250 name: CephStorageCephDeployment
1251 config: {get_attr: [CephClusterConfig, config_id]}
1252 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1255 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1257 ControllerAllNodesDeployment:
1258 type: OS::Heat::StructuredDeployments
1260 name: ControllerAllNodesDeployment
1261 config: {get_attr: [allNodesConfig, config_id]}
1262 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1264 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1265 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1267 ComputeAllNodesDeployment:
1268 type: OS::Heat::StructuredDeployments
1270 name: ComputeAllNodesDeployment
1271 config: {get_attr: [allNodesConfig, config_id]}
1272 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1274 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
1275 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
1277 BlockStorageAllNodesDeployment:
1278 type: OS::Heat::StructuredDeployments
1280 name: BlockStorageAllNodesDeployment
1281 config: {get_attr: [allNodesConfig, config_id]}
1282 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1284 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
1285 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
1287 ObjectStorageAllNodesDeployment:
1288 type: OS::Heat::StructuredDeployments
1290 name: ObjectStorageAllNodesDeployment
1291 config: {get_attr: [allNodesConfig, config_id]}
1292 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1294 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
1295 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
1297 CephStorageAllNodesDeployment:
1298 type: OS::Heat::StructuredDeployments
1300 name: CephStorageAllNodesDeployment
1301 config: {get_attr: [allNodesConfig, config_id]}
1302 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1304 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
1305 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
1307 # All Nodes Validations
1308 AllNodesValidationConfig:
1309 type: OS::TripleO::AllNodes::Validation
1314 - - {get_attr: [Controller, resource.0.external_ip_address]}
1315 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1316 - {get_attr: [Controller, resource.0.storage_ip_address]}
1317 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1318 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1320 ControllerAllNodesValidationDeployment:
1321 type: OS::Heat::StructuredDeployments
1322 depends_on: ControllerAllNodesDeployment
1324 name: ControllerAllNodesValidationDeployment
1325 config: {get_resource: AllNodesValidationConfig}
1326 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1328 ComputeAllNodesValidationDeployment:
1329 type: OS::Heat::StructuredDeployments
1330 depends_on: ComputeAllNodesDeployment
1332 name: ComputeAllNodesValidationDeployment
1333 config: {get_resource: AllNodesValidationConfig}
1334 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1336 BlockStorageAllNodesValidationDeployment:
1337 type: OS::Heat::StructuredDeployments
1338 depends_on: BlockStorageAllNodesDeployment
1340 name: BlockStorageAllNodesValidationDeployment
1341 config: {get_resource: AllNodesValidationConfig}
1342 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1344 ObjectStorageAllNodesValidationDeployment:
1345 type: OS::Heat::StructuredDeployments
1346 depends_on: ObjectStorageAllNodesDeployment
1348 name: ObjectStorageAllNodesValidationDeployment
1349 config: {get_resource: AllNodesValidationConfig}
1350 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1352 CephStorageAllNodesValidationDeployment:
1353 type: OS::Heat::StructuredDeployments
1354 depends_on: CephStorageAllNodesDeployment
1356 name: CephStorageAllNodesValidationDeployment
1357 config: {get_resource: AllNodesValidationConfig}
1358 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1361 type: OS::TripleO::Tasks::UpdateWorkflow
1363 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1364 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1365 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1366 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1367 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1369 deploy_identifier: {get_param: DeployIdentifier}
1370 update_identifier: {get_param: UpdateIdentifier}
1372 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1373 # the nested template may configure each role differently (or not at all)
1374 AllNodesExtraConfig:
1375 type: OS::TripleO::AllNodesExtraConfig
1378 - ComputeAllNodesValidationDeployment
1379 - BlockStorageAllNodesValidationDeployment
1380 - ObjectStorageAllNodesValidationDeployment
1381 - CephStorageAllNodesValidationDeployment
1382 - ControllerAllNodesValidationDeployment
1384 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1385 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1386 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1387 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1388 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1390 # Nested stack deployment runs after all other controller deployments
1391 ControllerNodesPostDeployment:
1392 type: OS::TripleO::ControllerPostDeployment
1393 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1395 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1396 RoleData: {get_attr: [ControllerServiceChain, role_data]}
1398 ComputeNodesPostDeployment:
1399 type: OS::TripleO::ComputePostDeployment
1400 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1402 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1403 RoleData: {get_attr: [ComputeServiceChain, role_data]}
1405 ObjectStorageNodesPostDeployment:
1406 type: OS::TripleO::ObjectStoragePostDeployment
1407 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1409 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1410 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
1412 BlockStorageNodesPostDeployment:
1413 type: OS::TripleO::BlockStoragePostDeployment
1414 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1416 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1417 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
1419 CephStorageNodesPostDeployment:
1420 type: OS::TripleO::CephStoragePostDeployment
1421 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1423 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1424 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
1428 description: URL for the Overcloud Keystone service
1429 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1431 description: Keystone Admin VIP endpoint
1432 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1434 description: Controller VIP for public API endpoints
1435 value: {get_attr: [VipMap, net_ip_map, external]}
1437 description: VIP for Aodh API internal endpoint
1438 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1439 CeilometerInternalVip:
1440 description: VIP for Ceilometer API internal endpoint
1441 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1443 description: VIP for Cinder API internal endpoint
1444 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1446 description: VIP for Glance API internal endpoint
1447 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1449 description: VIP for Gnocchi API internal endpoint
1450 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1452 description: VIP for Heat API internal endpoint
1453 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1455 description: VIP for Ironic API internal endpoint
1456 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1457 KeystoneInternalVip:
1458 description: VIP for Keystone API internal endpoint
1459 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1461 description: VIP for Neutron API internal endpoint
1462 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1464 description: VIP for Nova API internal endpoint
1465 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1467 description: VIP for Sahara API internal endpoint
1468 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1470 description: VIP for Swift Proxy internal endpoint
1471 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1474 Mapping of the resources with the needed info for their endpoints.
1475 This includes the protocol used, the IP, port and also a full
1476 representation of the URI.
1477 value: {get_attr: [EndpointMap, endpoint_map]}
1480 The content that should be appended to your /etc/hosts if you want to get
1481 hostname-based access to the deployed nodes (useful for testing without
1483 value: {get_attr: [allNodesConfig, hosts_entries]}