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 # This has to be an UUID so for now we generate it outside the template
45 description: The Ceph cluster FSID. Must be a UUID.
48 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
53 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
56 CinderEnableNfsBackend:
58 description: Whether to enable or not the NFS backend for Cinder
62 description: The Ceph client key. Can be created with ceph-authtool --gen-print-key. Currently only used for external Ceph deployments to create the openstack user keyring.
68 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
69 CinderEnableIscsiBackend:
71 description: Whether to enable or not the Iscsi backend for Cinder
73 CinderEnableRbdBackend:
75 description: Whether to enable or not the Rbd backend for Cinder
79 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
83 description: Should be used for arbitrary ips.
87 description: Enable IPv6 in Corosync
91 description: Set to True to enable debugging on all services.
95 description: Syslog address where HAproxy will send its log
99 description: A list of IP/Hostname allowed to connect to horizon
100 type: comma_delimited_list
102 default: 'REBUILD_PRESERVE_EPHEMERAL'
103 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
105 InternalApiVirtualFixedIPs:
108 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
109 [{'ip_address':'1.2.3.4'}]
113 description: Name of an existing Nova key pair to enable SSH access to the instances
116 - custom_constraint: nova.keypair
119 description: Enable IPv6 features in Memcached.
121 NeutronBridgeMappings:
123 The OVS logical->physical bridge mappings to use. See the Neutron
124 documentation for details. Defaults to mapping br-ex - the external
125 bridge on hosts - to a physical name 'datacentre' which can be used
126 to create provider networks (and we use this for the default floating
127 network) - if changing this either use different post-install network
128 scripts or be sure to keep 'datacentre' as a mapping network name.
129 type: comma_delimited_list
130 default: "datacentre:br-ex"
131 NeutronControlPlaneID:
134 description: Neutron ID or name for ctlplane network.
135 NeutronEnableTunnelling:
141 Enable/disable the L2 population feature in the Neutron agents.
144 type: comma_delimited_list
145 default: 'datacentre'
147 If set, flat networks to configure in neutron plugins. Defaults to
148 'datacentre' to permit external network creation.
151 description: The tenant network type for Neutron.
152 type: comma_delimited_list
154 description: The password for the neutron service account, used by neutron agents.
157 NeutronPublicInterface:
159 description: What interface to bridge onto br-ex for network nodes.
161 NeutronPublicInterfaceTag:
164 VLAN tag for creating a public VLAN. The tag will be used to
165 create an access port on the exterior bridge for each control plane node,
166 and that port will be given the IP address returned by neutron from the
167 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
168 overcloud.yaml to include the deployment of VLAN ports to the control
171 NeutronComputeAgentMode:
173 description: Agent mode for the neutron-l3-agent on the compute hosts
177 description: Agent mode for the neutron-l3-agent on the controller hosts
181 description: Whether to configure Neutron Distributed Virtual Routers
183 NeutronMetadataProxySharedSecret:
184 description: Shared secret to prevent spoofing
189 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
190 be at least 50 bytes smaller than the MTU on the physical network. This
191 value will be used to set the MTU on the virtual Ethernet device.
192 This value will be used to construct the NeutronDnsmasqOptions, since that
193 will determine the MTU that is assigned to the VM host through DHCP.
199 The tunnel types for the Neutron tenant network.
200 type: comma_delimited_list
201 type: comma_delimited_list
205 The core plugin for Neutron. The value should be the entrypoint to be loaded
206 from neutron.core_plugins namespace.
208 NeutronServicePlugins:
209 default: "router,qos"
211 Comma-separated list of service plugin entrypoints to be loaded from the
212 neutron.service_plugins namespace.
213 type: comma_delimited_list
215 default: "vxlan,vlan,flat,gre"
217 Comma-separated list of network type driver entrypoints to be loaded.
218 type: comma_delimited_list
219 NeutronMechanismDrivers:
220 default: 'openvswitch'
222 The mechanism drivers for the Neutron tenant network.
223 type: comma_delimited_list
224 type: comma_delimited_list
225 NeutronAgentExtensions:
228 Comma-separated list of extensions enabled for the Neutron agents.
229 type: comma_delimited_list
230 NeutronAllowL3AgentFailover:
232 description: Allow automatic l3-agent failover
236 description: Whether to enable l3-agent HA
240 description: Enable IPv6 features in Nova
243 description: The password for the nova service account, used by nova-api.
248 description: Comma-separated list of ntp servers
249 type: comma_delimited_list
252 description: Should MongoDb journaling be disabled
256 description: Enable IPv6 if MongoDB VIP is IPv6
258 PublicVirtualFixedIPs:
261 Control the IP allocation for the PublicVirtualInterface port. E.g.
262 [{'ip_address':'1.2.3.4'}]
267 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
270 description: The username for RabbitMQ
273 description: The password for RabbitMQ
279 Rabbit client subscriber parameter to specify
280 an SSL connection to the RabbitMQ host.
284 description: Set rabbit subscriber port, change this if using SSL
287 description: The password for Redis
290 SnmpdReadonlyUserName:
291 default: ro_snmp_user
292 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
294 SnmpdReadonlyUserPassword:
295 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
298 StorageVirtualFixedIPs:
301 Control the IP allocation for the StorageVirtualInterface port. E.g.
302 [{'ip_address':'1.2.3.4'}]
304 StorageMgmtVirtualFixedIPs:
307 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
308 [{'ip_address':'1.2.3.4'}]
312 description: The timezone to be set on nodes.
315 default: 'localdomain'
318 The DNS domain used for the hosts. This should match the dhcp_domain
319 configured in the Undercloud neutron. Defaults to localdomain.
323 Extra properties or metadata passed to Nova for the created nodes in
324 the overcloud. It's accessible via the Nova metadata API.
327 # Controller-specific params
328 CinderLVMLoopDeviceSize:
330 description: The size of the loopback file used by the cinder LVM driver.
333 description: The password for the cinder service account, used by cinder-api.
338 description: The iSCSI helper to use with cinder.
345 controllerExtraConfig:
348 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
352 default: overcloud-full
354 - custom_constraint: glance.image
355 OvercloudControlFlavor:
356 description: Flavor for control nodes to request when deploying.
360 - custom_constraint: nova.flavor
361 ControlVirtualInterface:
363 description: Interface where virtual ip will be assigned.
367 description: Whether to enable fencing in Pacemaker or not.
371 description: Whether to use Galera instead of regular MariaDB.
373 ControllerEnableCephStorage:
375 description: Whether to deploy Ceph Storage (OSD) on the Controller
377 ControllerEnableSwiftStorage:
379 description: Whether to enable Swift Storage on the Controller
381 ControllerSchedulerHints:
383 description: Optional scheduler hints to pass to nova
388 Additional configuration to inject into the cluster. The format required
389 may be implementation specific, e.g puppet hieradata. Any role specific
390 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
395 Pacemaker fencing configuration. The JSON should have
396 the following structure:
400 "agent": "AGENT_NAME",
401 "host_mac": "HOST_MAC_ADDRESS",
402 "params": {"PARAM_NAME": "PARAM_VALUE"}
410 "agent": "fence_xvm",
411 "host_mac": "52:54:00:aa:bb:cc",
413 "multicast_address": "225.0.0.12",
414 "port": "baremetal_0",
416 "manage_key_file": true,
417 "key_file": "/etc/fence_xvm.key",
418 "key_file_password": "abcdef"
426 description: The short name of the Gnocchi backend to use. Should be one
427 of swift, rbd or file
430 - allowed_values: ['swift', 'file', 'rbd']
431 GnocchiIndexerBackend:
433 description: The short name of the Gnocchi indexer backend to use.
436 description: The password for the gnocchi service account.
439 InstanceNameTemplate:
440 default: 'instance-%08x'
441 description: Template string to be used to generate instance names
445 description: Whether to manage IPtables rules.
449 description: Whether IPtables rules should be purged before setting up the ones.
451 MysqlInnodbBufferPoolSize:
453 Specifies the size of the buffer pool in megabytes. Setting to
454 zero should be interpreted as "no value" and will defer to the
459 description: Configures MySQL max_connections config setting
462 NeutronPublicInterfaceDefaultRoute:
464 description: A custom default route for the NeutronPublicInterface.
466 NeutronPublicInterfaceIP:
468 description: A custom IP address to put onto the NeutronPublicInterface.
470 NeutronPublicInterfaceRawDevice:
472 description: If set, the public interface is a vlan with this device as the raw device.
474 PublicVirtualInterface:
477 Specifies the interface where the public-facing virtual ip will be assigned.
478 This should be int_public when a VLAN is being used.
481 description: A random string to be used as a salt when hashing to determine mappings in the ring.
486 description: Value of mount_check in Swift account/container/object -server.conf
491 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
494 description: Partition Power to use when building Swift rings
499 description: How many replicas to use in the swift rings.
501 # Compute-specific params
502 CeilometerComputeAgent:
503 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
507 - allowed_values: ['', Present]
511 HypervisorNeutronPhysicalBridge:
514 An OVS bridge to create on each hypervisor. This defaults to br-ex the
515 same as the control plane nodes, as we have a uniform configuration of
516 the openvswitch agent. Typically should not need to be changed.
518 HypervisorNeutronPublicInterface:
520 description: What interface to add to the HypervisorNeutronPhysicalBridge.
522 NeutronNetworkVLANRanges:
523 default: 'datacentre:1:1000'
525 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
526 Neutron documentation for permitted values. Defaults to permitting any
527 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
528 type: comma_delimited_list
531 default: libvirt.LibvirtDriver
532 NovaComputeExtraConfig:
535 NovaCompute specific configuration to inject into the cluster. Same
536 structure as ExtraConfig.
538 NovaComputeLibvirtType:
541 NovaComputeLibvirtVifDriver:
543 description: Libvirt VIF driver configuration for the network
545 NovaComputeSchedulerHints:
547 description: Optional scheduler hints to pass to nova
549 NovaEnableRbdBackend:
551 description: Whether to enable or not the Rbd backend for Nova
555 default: overcloud-full
557 - custom_constraint: glance.image
560 description: Name of integration bridge used by Open vSwitch
562 NovaSecurityGroupAPI:
564 description: The full class name of the security API class
566 OvercloudComputeFlavor:
567 description: Use this flavor
571 - custom_constraint: nova.flavor
574 NeutronTenantNetwork: tenant
575 CeilometerApiNetwork: internal_api
576 AodhApiNetwork: internal_api
577 GnocchiApiNetwork: internal_api
578 MongoDbNetwork: internal_api
579 CinderApiNetwork: internal_api
580 CinderIscsiNetwork: storage
581 GlanceApiNetwork: storage
582 GlanceRegistryNetwork: internal_api
583 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
584 KeystonePublicApiNetwork: internal_api
585 NeutronApiNetwork: internal_api
586 HeatApiNetwork: internal_api
587 NovaApiNetwork: internal_api
588 NovaMetadataNetwork: internal_api
589 NovaVncProxyNetwork: internal_api
590 SwiftMgmtNetwork: storage_mgmt
591 SwiftProxyNetwork: storage
592 SaharaApiNetwork: internal_api
593 HorizonNetwork: internal_api
594 MemcachedNetwork: internal_api
595 RabbitMqNetwork: internal_api
596 RedisNetwork: internal_api
597 MysqlNetwork: internal_api
598 CephClusterNetwork: storage_mgmt
599 CephPublicNetwork: storage
600 ControllerHostnameResolveNetwork: internal_api
601 ComputeHostnameResolveNetwork: internal_api
602 BlockStorageHostnameResolveNetwork: internal_api
603 ObjectStorageHostnameResolveNetwork: internal_api
604 CephStorageHostnameResolveNetwork: storage
605 description: Mapping of service_name -> network name. Typically set
606 via parameter_defaults in the resource registry.
611 - OS::TripleO::Services::CinderApi
612 - OS::TripleO::Services::CinderScheduler
613 - OS::TripleO::Services::CinderVolume
614 - OS::TripleO::Services::Keystone
615 - OS::TripleO::Services::GlanceApi
616 - OS::TripleO::Services::GlanceRegistry
617 - OS::TripleO::Services::HeatApi
618 - OS::TripleO::Services::HeatApiCfn
619 - OS::TripleO::Services::HeatApiCloudwatch
620 - OS::TripleO::Services::HeatEngine
621 - OS::TripleO::Services::NeutronDhcpAgent
622 - OS::TripleO::Services::NeutronL3Agent
623 - OS::TripleO::Services::NeutronMetadataAgent
624 - OS::TripleO::Services::NeutronServer
625 - OS::TripleO::Services::NeutronCorePlugin
626 - OS::TripleO::Services::NeutronOvsAgent
627 - OS::TripleO::Services::RabbitMQ
628 - OS::TripleO::Services::HAproxy
629 - OS::TripleO::Services::Keepalived
630 - OS::TripleO::Services::Memcached
631 - OS::TripleO::Services::SwiftProxy
632 - OS::TripleO::Services::Redis
633 - OS::TripleO::Services::NovaConductor
634 description: A list of service resources (configured in the Heat
635 resource_registry) which represent nested stacks
636 for each service that should get installed on the Controllers.
637 type: comma_delimited_list
641 description: A list of service resources (configured in the Heat
642 resource_registry) which represent nested stacks
643 for each service that should get installed on the Compute Nodes.
644 type: comma_delimited_list
646 # Block storage specific parameters
651 default: overcloud-full
653 OvercloudBlockStorageFlavor:
654 description: Flavor for block storage nodes to request when deploying.
658 - custom_constraint: nova.flavor
659 BlockStorageExtraConfig:
662 BlockStorage specific configuration to inject into the cluster. Same
663 structure as ExtraConfig.
665 BlockStorageSchedulerHints:
667 description: Optional scheduler hints to pass to nova
671 # Object storage specific parameters
675 OvercloudSwiftStorageFlavor:
676 description: Flavor for Swift storage nodes to request when deploying.
680 - custom_constraint: nova.flavor
682 default: overcloud-full
684 ObjectStorageExtraConfig:
687 ObjectStorage specific configuration to inject into the cluster. Same
688 structure as ExtraConfig.
690 ObjectStorageSchedulerHints:
692 description: Optional scheduler hints to pass to nova
694 ObjectStorageServices:
696 description: A list of service resources (configured in the Heat
697 resource_registry) which represent nested stacks
698 for each service that should get installed on the ObjectStorage nodes.
699 Note this role currently only supports steps 2, 3 and 4 configuration.
700 type: comma_delimited_list
703 # Ceph storage specific parameters
708 default: overcloud-full
710 OvercloudCephStorageFlavor:
712 description: Flavor for Ceph storage nodes to request when deploying.
715 - custom_constraint: nova.flavor
716 CephStorageExtraConfig:
719 CephStorage specific configuration to inject into the cluster. Same
720 structure as ExtraConfig.
722 CephStorageSchedulerHints:
724 description: Optional scheduler hints to pass to nova
728 description: A list of service resources (configured in the Heat
729 resource_registry) which represent nested stacks
730 for each service that should get installed on the CephStorage nodes.
731 type: comma_delimited_list
733 # Hostname format for each role
734 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
735 # and %stackname% is replaced with OS::stack_name in the template below.
736 # If you want to use the heat generated names, pass '' (empty string).
737 ControllerHostnameFormat:
739 description: Format for Controller node hostnames
740 default: '%stackname%-controller-%index%'
741 ComputeHostnameFormat:
743 description: Format for Compute node hostnames
744 default: '%stackname%-novacompute-%index%'
745 BlockStorageHostnameFormat:
747 description: Format for BlockStorage node hostnames
748 default: '%stackname%-blockstorage-%index%'
749 ObjectStorageHostnameFormat:
751 description: Format for SwiftStorage node hostnames
752 default: '%stackname%-objectstorage-%index%'
753 CephStorageHostnameFormat:
755 description: Format for CephStorage node hostnames
756 default: '%stackname%-cephstorage-%index%'
758 # Identifiers to trigger tasks on nodes
763 Setting to a previously unused value during stack-update will trigger
764 package update on all nodes
769 Setting this to a unique value will re-run any deployment tasks which
770 perform configuration on a Heat stack-update.
772 # If you want to remove a specific node from a resource group, you can pass
773 # the node name or id as a <Group>RemovalPolicies parameter, for example:
774 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
775 ControllerRemovalPolicies:
779 List of resources to be removed from ControllerResourceGroup when
780 doing an update which requires removal of specific resources.
781 ComputeRemovalPolicies:
785 List of resources to be removed from ComputeResourceGroup when
786 doing an update which requires removal of specific resources.
787 BlockStorageRemovalPolicies:
791 List of resources to be removed from BlockStorageResourceGroup when
792 doing an update which requires removal of specific resources.
793 ObjectStorageRemovalPolicies:
797 List of resources to be removed from ObjectStorageResourceGroup when
798 doing an update which requires removal of specific resources.
799 CephStorageRemovalPolicies:
803 List of resources to be removed from CephStorageResourceGroup when
804 doing an update which requires removal of specific resources.
808 description: Do not use deprecated params, they will be removed.
810 - controllerExtraConfig
815 HeatAuthEncryptionKey:
816 type: OS::Heat::RandomString
819 type: OS::Heat::RandomString
824 type: OS::Heat::RandomString
829 type: OS::TripleO::EndpointMap
831 CloudName: {get_param: CloudName}
832 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
833 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
834 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
835 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
836 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
837 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
838 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
839 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
840 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
841 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
842 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
843 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
844 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
845 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
846 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
848 ControllerServiceChain:
849 type: OS::TripleO::Services
852 Services: {get_param: ControllerServices}
853 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
856 type: OS::Heat::ResourceGroup
859 count: {get_param: ControllerCount}
860 removal_policies: {get_param: ControllerRemovalPolicies}
862 type: OS::TripleO::Controller
864 AdminPassword: {get_param: AdminPassword}
865 AodhPassword: {get_param: AodhPassword}
866 CeilometerBackend: {get_param: CeilometerBackend}
867 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
868 CeilometerPassword: {get_param: CeilometerPassword}
869 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
870 CloudDomain: {get_param: CloudDomain}
871 ControlVirtualInterface: {get_param: ControlVirtualInterface}
872 controllerExtraConfig: {get_param: controllerExtraConfig}
873 CorosyncIPv6: {get_param: CorosyncIPv6}
874 Debug: {get_param: Debug}
875 EnableFencing: {get_param: EnableFencing}
876 ManageFirewall: {get_param: ManageFirewall}
877 PurgeFirewallRules: {get_param: PurgeFirewallRules}
878 EnableGalera: {get_param: EnableGalera}
879 EnableCephStorage: {get_param: ControllerEnableCephStorage}
880 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
881 ExtraConfig: {get_param: ExtraConfig}
882 FencingConfig: {get_param: FencingConfig}
883 Flavor: {get_param: OvercloudControlFlavor}
884 GnocchiPassword: {get_param: GnocchiPassword}
885 GnocchiBackend: {get_param: GnocchiBackend}
886 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
887 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
888 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
889 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
890 HorizonSecret: {get_resource: HorizonSecret}
891 Image: {get_param: controllerImage}
892 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
893 InstanceNameTemplate: {get_param: InstanceNameTemplate}
894 KeyName: {get_param: KeyName}
895 MemcachedIPv6: {get_param: MemcachedIPv6}
896 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
897 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
898 MysqlMaxConnections: {get_param: MysqlMaxConnections}
899 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
900 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
901 NeutronTenantMtu: {get_param: NeutronTenantMtu}
902 NeutronPublicInterface: {get_param: NeutronPublicInterface}
903 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
904 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
905 NeutronPassword: {get_param: NeutronPassword}
906 NeutronDVR: {get_param: NeutronDVR}
907 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
908 NeutronAgentMode: {get_param: NeutronAgentMode}
909 NeutronCorePlugin: {get_param: NeutronCorePlugin}
910 NeutronServicePlugins: {get_param: NeutronServicePlugins}
911 NovaIPv6: {get_param: NovaIPv6}
912 NovaPassword: {get_param: NovaPassword}
913 NtpServer: {get_param: NtpServer}
914 MongoDbNoJournal: {get_param: MongoDbNoJournal}
915 MongoDbIPv6: {get_param: MongoDbIPv6}
916 PcsdPassword: {get_resource: PcsdPassword}
917 PublicVirtualInterface: {get_param: PublicVirtualInterface}
918 RabbitPassword: {get_param: RabbitPassword}
919 RabbitUserName: {get_param: RabbitUserName}
920 RabbitCookie: {get_attr: [RabbitCookie, value]}
921 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
922 RabbitClientPort: {get_param: RabbitClientPort}
923 RedisPassword: {get_param: RedisPassword}
924 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
925 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
926 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
927 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
928 SwiftHashSuffix: {get_param: SwiftHashSuffix}
929 SwiftMountCheck: {get_param: SwiftMountCheck}
930 SwiftMinPartHours: {get_param: SwiftMinPartHours}
931 SwiftPartPower: {get_param: SwiftPartPower}
932 SwiftReplicas: { get_param: SwiftReplicas}
933 TimeZone: {get_param: TimeZone}
934 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
935 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
936 ServiceNetMap: {get_param: ServiceNetMap}
937 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
938 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
939 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
940 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
941 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
942 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
943 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
944 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
945 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
946 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
947 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
948 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
949 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
950 UpdateIdentifier: {get_param: UpdateIdentifier}
953 template: {get_param: ControllerHostnameFormat}
955 '%stackname%': {get_param: 'OS::stack_name'}
957 ServerMetadata: {get_param: ServerMetadata}
958 SchedulerHints: {get_param: ControllerSchedulerHints}
959 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
962 type: OS::TripleO::Services
964 Services: {get_param: ComputeServices}
965 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
968 type: OS::Heat::ResourceGroup
971 count: {get_param: ComputeCount}
972 removal_policies: {get_param: ComputeRemovalPolicies}
974 type: OS::TripleO::Compute
976 AdminPassword: {get_param: AdminPassword}
977 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
978 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
979 CeilometerPassword: {get_param: CeilometerPassword}
980 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
981 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
982 Debug: {get_param: Debug}
983 ExtraConfig: {get_param: ExtraConfig}
984 Flavor: {get_param: OvercloudComputeFlavor}
985 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
986 Image: {get_param: NovaImage}
987 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
988 KeyName: {get_param: KeyName}
989 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
990 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
991 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
992 NeutronTenantMtu: {get_param: NeutronTenantMtu}
993 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
994 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
995 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
996 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
997 NeutronNetworkType: {get_param: NeutronNetworkType}
998 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
999 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1000 NeutronPassword: {get_param: NeutronPassword}
1001 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1002 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1003 NeutronDVR: {get_param: NeutronDVR}
1004 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1005 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1006 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1007 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1008 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1009 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1010 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1011 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1012 # L3 HA and Failover is not relevant for Computes, should be removed
1013 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1014 NeutronL3HA: {get_param: NeutronL3HA}
1015 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1016 NovaComputeDriver: {get_param: NovaComputeDriver}
1017 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1018 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1019 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1020 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1021 NovaIPv6: {get_param: NovaIPv6}
1022 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1023 NovaPassword: {get_param: NovaPassword}
1024 NovaOVSBridge: {get_param: NovaOVSBridge}
1025 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1026 NtpServer: {get_param: NtpServer}
1027 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1028 RabbitPassword: {get_param: RabbitPassword}
1029 RabbitUserName: {get_param: RabbitUserName}
1030 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1031 RabbitClientPort: {get_param: RabbitClientPort}
1032 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1033 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1034 ServiceNetMap: {get_param: ServiceNetMap}
1035 TimeZone: {get_param: TimeZone}
1036 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1037 UpdateIdentifier: {get_param: UpdateIdentifier}
1040 template: {get_param: ComputeHostnameFormat}
1042 '%stackname%': {get_param: 'OS::stack_name'}
1043 CloudDomain: {get_param: CloudDomain}
1044 ServerMetadata: {get_param: ServerMetadata}
1045 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1046 NodeIndex: '%index%'
1047 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
1051 type: OS::Heat::ResourceGroup
1052 depends_on: Networks
1054 count: {get_param: BlockStorageCount}
1055 removal_policies: {get_param: BlockStorageRemovalPolicies}
1057 type: OS::TripleO::BlockStorage
1059 Debug: {get_param: Debug}
1060 Image: {get_param: BlockStorageImage}
1061 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1062 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1063 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1064 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1065 CinderPassword: {get_param: CinderPassword}
1066 KeyName: {get_param: KeyName}
1067 Flavor: {get_param: OvercloudBlockStorageFlavor}
1068 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1069 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1070 RabbitPassword: {get_param: RabbitPassword}
1071 RabbitUserName: {get_param: RabbitUserName}
1072 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1073 RabbitClientPort: {get_param: RabbitClientPort}
1074 TimeZone: {get_param: TimeZone}
1075 NtpServer: {get_param: NtpServer}
1076 UpdateIdentifier: {get_param: UpdateIdentifier}
1079 template: {get_param: BlockStorageHostnameFormat}
1081 '%stackname%': {get_param: 'OS::stack_name'}
1082 ServiceNetMap: {get_param: ServiceNetMap}
1083 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1084 ExtraConfig: {get_param: ExtraConfig}
1085 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1086 CloudDomain: {get_param: CloudDomain}
1087 ServerMetadata: {get_param: ServerMetadata}
1088 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1089 NodeIndex: '%index%'
1091 ObjectStorageServiceChain:
1092 type: OS::TripleO::Services
1094 Services: {get_param: ObjectStorageServices}
1095 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1098 type: OS::Heat::ResourceGroup
1099 depends_on: Networks
1101 count: {get_param: ObjectStorageCount}
1102 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1104 type: OS::TripleO::ObjectStorage
1106 KeyName: {get_param: KeyName}
1107 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1108 HashSuffix: {get_param: SwiftHashSuffix}
1109 MountCheck: {get_param: SwiftMountCheck}
1110 MinPartHours: {get_param: SwiftMinPartHours}
1111 PartPower: {get_param: SwiftPartPower}
1112 Image: {get_param: SwiftStorageImage}
1113 Replicas: { get_param: SwiftReplicas}
1114 TimeZone: {get_param: TimeZone}
1115 NtpServer: {get_param: NtpServer}
1116 UpdateIdentifier: {get_param: UpdateIdentifier}
1117 ServiceNetMap: {get_param: ServiceNetMap}
1120 template: {get_param: ObjectStorageHostnameFormat}
1122 '%stackname%': {get_param: 'OS::stack_name'}
1123 ExtraConfig: {get_param: ExtraConfig}
1124 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1125 CloudDomain: {get_param: CloudDomain}
1126 ServerMetadata: {get_param: ServerMetadata}
1127 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1128 NodeIndex: '%index%'
1129 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1131 CephStorageServiceChain:
1132 type: OS::TripleO::Services
1134 Services: {get_param: CephStorageServices}
1135 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1138 type: OS::Heat::ResourceGroup
1139 depends_on: Networks
1141 count: {get_param: CephStorageCount}
1142 removal_policies: {get_param: CephStorageRemovalPolicies}
1144 type: OS::TripleO::CephStorage
1146 Image: {get_param: CephStorageImage}
1147 KeyName: {get_param: KeyName}
1148 Flavor: {get_param: OvercloudCephStorageFlavor}
1149 NtpServer: {get_param: NtpServer}
1150 ServiceNetMap: {get_param: ServiceNetMap}
1151 TimeZone: {get_param: TimeZone}
1152 UpdateIdentifier: {get_param: UpdateIdentifier}
1155 template: {get_param: CephStorageHostnameFormat}
1157 '%stackname%': {get_param: 'OS::stack_name'}
1158 ExtraConfig: {get_param: ExtraConfig}
1159 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1160 CloudDomain: {get_param: CloudDomain}
1161 ServerMetadata: {get_param: ServerMetadata}
1162 SchedulerHints: {get_param: CephStorageSchedulerHints}
1163 NodeIndex: '%index%'
1164 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1166 ControllerIpListMap:
1167 type: OS::TripleO::Network::Ports::NetIpListMap
1169 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1170 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1171 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1172 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1173 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1174 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1175 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1178 type: OS::TripleO::AllNodes::SoftwareConfig
1180 compute_hosts: {get_attr: [Compute, hosts_entry]}
1181 controller_hosts: {get_attr: [Controller, hosts_entry]}
1182 controller_ips: {get_attr: [Controller, ip_address]}
1183 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1184 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1185 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1186 controller_names: {get_attr: [Controller, hostname]}
1187 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1188 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1189 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1190 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1191 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1192 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1193 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1194 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1195 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1196 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1197 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1198 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1199 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1200 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1201 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1202 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1203 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1204 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1205 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1206 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1207 DeployIdentifier: {get_param: DeployIdentifier}
1208 UpdateIdentifier: {get_param: UpdateIdentifier}
1211 type: OS::Heat::RandomString
1215 MysqlClusterUniquePart:
1216 type: OS::Heat::RandomString
1221 type: OS::Heat::RandomString
1224 salt: {get_param: RabbitCookieSalt}
1226 # creates the network architecture
1228 type: OS::TripleO::Network
1231 type: OS::Neutron::Port
1232 depends_on: Networks
1234 name: control_virtual_ip
1235 network: {get_param: NeutronControlPlaneID}
1236 fixed_ips: {get_param: ControlFixedIPs}
1237 replacement_policy: AUTO
1240 depends_on: Networks
1241 type: OS::TripleO::Network::Ports::RedisVipPort
1243 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1244 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1245 PortName: redis_virtual_ip
1246 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1249 # The public VIP is on the External net, falls back to ctlplane
1251 depends_on: Networks
1252 type: OS::TripleO::Network::Ports::ExternalVipPort
1254 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1255 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1256 PortName: public_virtual_ip
1257 FixedIPs: {get_param: PublicVirtualFixedIPs}
1259 InternalApiVirtualIP:
1260 depends_on: Networks
1261 type: OS::TripleO::Network::Ports::InternalApiVipPort
1263 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1264 PortName: internal_api_virtual_ip
1265 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1268 depends_on: Networks
1269 type: OS::TripleO::Network::Ports::StorageVipPort
1271 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1272 PortName: storage_virtual_ip
1273 FixedIPs: {get_param: StorageVirtualFixedIPs}
1275 StorageMgmtVirtualIP:
1276 depends_on: Networks
1277 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1279 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1280 PortName: storage_management_virtual_ip
1281 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1284 type: OS::TripleO::Network::Ports::NetVipMap
1286 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1287 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1288 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1289 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1290 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1291 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1292 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1293 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1294 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1295 # No tenant or management VIP required
1298 type: OS::TripleO::VipConfig
1301 type: OS::Heat::StructuredDeployments
1304 config: {get_resource: VipConfig}
1305 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1307 # service VIP mappings
1308 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1309 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1310 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1311 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1312 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1313 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1314 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1315 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1316 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1317 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1318 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1319 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1320 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1321 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1322 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1323 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1324 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1325 # direct configuration of Virtual IPs for each network
1326 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1327 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1328 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1329 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1330 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1331 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1333 ControllerBootstrapNodeConfig:
1334 type: OS::TripleO::BootstrapNode::SoftwareConfig
1336 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1337 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1339 ControllerBootstrapNodeDeployment:
1340 type: OS::Heat::StructuredDeployments
1342 name: ControllerBootstrapNodeDeployment
1343 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1344 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1346 ControllerSwiftDeployment:
1347 type: OS::Heat::StructuredDeployments
1349 name: ControllerSwiftDeployment
1350 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1351 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1353 ObjectStorageSwiftDeployment:
1354 type: OS::Heat::StructuredDeployments
1356 name: ObjectStorageSwiftDeployment
1357 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1358 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1360 SwiftDevicesAndProxyConfig:
1361 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1363 controller_swift_devices: {get_attr: [Controller, swift_device]}
1364 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1365 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1367 ComputeCephDeployment:
1368 type: OS::Heat::StructuredDeployments
1370 name: ComputeCephDeployment
1371 config: {get_attr: [CephClusterConfig, config_id]}
1372 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1374 ControllerCephDeployment:
1375 type: OS::Heat::StructuredDeployments
1377 name: ControllerCephDeployment
1378 config: {get_attr: [CephClusterConfig, config_id]}
1379 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1381 CephStorageCephDeployment:
1382 type: OS::Heat::StructuredDeployments
1384 name: CephStorageCephDeployment
1385 config: {get_attr: [CephClusterConfig, config_id]}
1386 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1389 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1391 ceph_storage_count: {get_param: CephStorageCount}
1392 ceph_fsid: {get_param: CephClusterFSID}
1393 ceph_mon_key: {get_param: CephMonKey}
1394 ceph_admin_key: {get_param: CephAdminKey}
1395 ceph_client_key: {get_param: CephClientKey}
1396 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1397 ceph_mon_names: {get_attr: [Controller, hostname]}
1398 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1400 ControllerAllNodesDeployment:
1401 type: OS::Heat::StructuredDeployments
1403 name: ControllerAllNodesDeployment
1404 config: {get_attr: [allNodesConfig, config_id]}
1405 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1407 ComputeAllNodesDeployment:
1408 type: OS::Heat::StructuredDeployments
1410 name: ComputeAllNodesDeployment
1411 config: {get_attr: [allNodesConfig, config_id]}
1412 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1414 BlockStorageAllNodesDeployment:
1415 type: OS::Heat::StructuredDeployments
1417 name: BlockStorageAllNodesDeployment
1418 config: {get_attr: [allNodesConfig, config_id]}
1419 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1421 ObjectStorageAllNodesDeployment:
1422 type: OS::Heat::StructuredDeployments
1424 name: ObjectStorageAllNodesDeployment
1425 config: {get_attr: [allNodesConfig, config_id]}
1426 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1428 CephStorageAllNodesDeployment:
1429 type: OS::Heat::StructuredDeployments
1431 name: CephStorageAllNodesDeployment
1432 config: {get_attr: [allNodesConfig, config_id]}
1433 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1435 # All Nodes Validations
1436 AllNodesValidationConfig:
1437 type: OS::TripleO::AllNodes::Validation
1442 - - {get_attr: [Controller, resource.0.external_ip_address]}
1443 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1444 - {get_attr: [Controller, resource.0.storage_ip_address]}
1445 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1446 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1448 ControllerAllNodesValidationDeployment:
1449 type: OS::Heat::StructuredDeployments
1450 depends_on: ControllerAllNodesDeployment
1452 name: ControllerAllNodesValidationDeployment
1453 config: {get_resource: AllNodesValidationConfig}
1454 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1456 ComputeAllNodesValidationDeployment:
1457 type: OS::Heat::StructuredDeployments
1458 depends_on: ComputeAllNodesDeployment
1460 name: ComputeAllNodesValidationDeployment
1461 config: {get_resource: AllNodesValidationConfig}
1462 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1464 BlockStorageAllNodesValidationDeployment:
1465 type: OS::Heat::StructuredDeployments
1466 depends_on: BlockStorageAllNodesDeployment
1468 name: BlockStorageAllNodesValidationDeployment
1469 config: {get_resource: AllNodesValidationConfig}
1470 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1472 ObjectStorageAllNodesValidationDeployment:
1473 type: OS::Heat::StructuredDeployments
1474 depends_on: ObjectStorageAllNodesDeployment
1476 name: ObjectStorageAllNodesValidationDeployment
1477 config: {get_resource: AllNodesValidationConfig}
1478 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1480 CephStorageAllNodesValidationDeployment:
1481 type: OS::Heat::StructuredDeployments
1482 depends_on: CephStorageAllNodesDeployment
1484 name: CephStorageAllNodesValidationDeployment
1485 config: {get_resource: AllNodesValidationConfig}
1486 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1489 type: OS::TripleO::Tasks::UpdateWorkflow
1491 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1492 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1493 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1494 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1495 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1497 deploy_identifier: {get_param: DeployIdentifier}
1498 update_identifier: {get_param: UpdateIdentifier}
1500 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1501 # the nested template may configure each role differently (or not at all)
1502 AllNodesExtraConfig:
1503 type: OS::TripleO::AllNodesExtraConfig
1506 - ComputeAllNodesValidationDeployment
1507 - BlockStorageAllNodesValidationDeployment
1508 - ObjectStorageAllNodesValidationDeployment
1509 - CephStorageAllNodesValidationDeployment
1510 - ControllerAllNodesValidationDeployment
1512 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1513 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1514 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1515 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1516 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1518 # Nested stack deployment runs after all other controller deployments
1519 ControllerNodesPostDeployment:
1520 type: OS::TripleO::ControllerPostDeployment
1521 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1523 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1524 NodeConfigIdentifiers:
1525 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1526 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1527 deployment_identifier: {get_param: DeployIdentifier}
1528 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1530 ComputeNodesPostDeployment:
1531 type: OS::TripleO::ComputePostDeployment
1532 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1534 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1535 NodeConfigIdentifiers:
1536 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1537 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1538 deployment_identifier: {get_param: DeployIdentifier}
1539 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1541 ObjectStorageNodesPostDeployment:
1542 type: OS::TripleO::ObjectStoragePostDeployment
1543 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1545 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1546 NodeConfigIdentifiers:
1547 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1548 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1549 deployment_identifier: {get_param: DeployIdentifier}
1550 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1552 BlockStorageNodesPostDeployment:
1553 type: OS::TripleO::BlockStoragePostDeployment
1554 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1556 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1557 NodeConfigIdentifiers:
1558 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1559 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1560 deployment_identifier: {get_param: DeployIdentifier}
1562 CephStorageNodesPostDeployment:
1563 type: OS::TripleO::CephStoragePostDeployment
1564 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1566 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1567 NodeConfigIdentifiers:
1568 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1569 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1570 deployment_identifier: {get_param: DeployIdentifier}
1571 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1575 description: URL for the Overcloud Keystone service
1576 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1578 description: Keystone Admin VIP endpoint
1579 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1581 description: Controller VIP for public API endpoints
1582 value: {get_attr: [VipMap, net_ip_map, external]}
1584 description: VIP for Aodh API internal endpoint
1585 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1586 CeilometerInternalVip:
1587 description: VIP for Ceilometer API internal endpoint
1588 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1590 description: VIP for Cinder API internal endpoint
1591 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1593 description: VIP for Glance API internal endpoint
1594 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1596 description: VIP for Gnocchi API internal endpoint
1597 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1599 description: VIP for Heat API internal endpoint
1600 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1601 KeystoneInternalVip:
1602 description: VIP for Keystone API internal endpoint
1603 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1605 description: VIP for Neutron API internal endpoint
1606 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1608 description: VIP for Nova API internal endpoint
1609 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1611 description: VIP for Sahara API internal endpoint
1612 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1614 description: VIP for Swift Proxy internal endpoint
1615 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1618 Mapping of the resources with the needed info for their endpoints.
1619 This includes the protocol used, the IP, port and also a full
1620 representation of the URI.
1621 value: {get_attr: [EndpointMap, endpoint_map]}
1624 The content that should be appended to your /etc/hosts if you want to get
1625 hostname-based access to the deployed nodes (useful for testing without
1627 value: {get_attr: [allNodesConfig, hosts_entries]}