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 NeutronTunnelIdRanges:
203 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
204 of GRE tunnel IDs that are available for tenant network allocation
205 default: ["1:4094", ]
206 type: comma_delimited_list
209 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
210 of VXLAN VNI IDs that are available for tenant network allocation
211 default: ["1:4094", ]
212 type: comma_delimited_list
216 The core plugin for Neutron. The value should be the entrypoint to be loaded
217 from neutron.core_plugins namespace.
219 NeutronServicePlugins:
220 default: "router,qos"
222 Comma-separated list of service plugin entrypoints to be loaded from the
223 neutron.service_plugins namespace.
224 type: comma_delimited_list
226 default: "vxlan,vlan,flat,gre"
228 Comma-separated list of network type driver entrypoints to be loaded.
229 type: comma_delimited_list
230 NeutronMechanismDrivers:
231 default: 'openvswitch'
233 The mechanism drivers for the Neutron tenant network.
234 type: comma_delimited_list
235 NeutronPluginExtensions:
236 default: "qos,port_security"
238 Comma-separated list of extensions enabled for the Neutron plugin.
239 type: comma_delimited_list
240 NeutronAgentExtensions:
243 Comma-separated list of extensions enabled for the Neutron agents.
244 type: comma_delimited_list
245 NeutronAllowL3AgentFailover:
247 description: Allow automatic l3-agent failover
251 description: Whether to enable l3-agent HA
255 description: Enable IPv6 features in Nova
258 description: The password for the nova service account, used by nova-api.
263 description: Comma-separated list of ntp servers
264 type: comma_delimited_list
267 description: Should MongoDb journaling be disabled
271 description: Enable IPv6 if MongoDB VIP is IPv6
273 PublicVirtualFixedIPs:
276 Control the IP allocation for the PublicVirtualInterface port. E.g.
277 [{'ip_address':'1.2.3.4'}]
282 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
285 description: The username for RabbitMQ
288 description: The password for RabbitMQ
294 Rabbit client subscriber parameter to specify
295 an SSL connection to the RabbitMQ host.
299 description: Set rabbit subscriber port, change this if using SSL
302 description: The password for Redis
305 SnmpdReadonlyUserName:
306 default: ro_snmp_user
307 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
309 SnmpdReadonlyUserPassword:
310 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
313 StorageVirtualFixedIPs:
316 Control the IP allocation for the StorageVirtualInterface port. E.g.
317 [{'ip_address':'1.2.3.4'}]
319 StorageMgmtVirtualFixedIPs:
322 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
323 [{'ip_address':'1.2.3.4'}]
327 description: The timezone to be set on nodes.
330 default: 'localdomain'
333 The DNS domain used for the hosts. This should match the dhcp_domain
334 configured in the Undercloud neutron. Defaults to localdomain.
338 Extra properties or metadata passed to Nova for the created nodes in
339 the overcloud. It's accessible via the Nova metadata API.
342 # Controller-specific params
343 CinderLVMLoopDeviceSize:
345 description: The size of the loopback file used by the cinder LVM driver.
348 description: The password for the cinder service account, used by cinder-api.
353 description: The iSCSI helper to use with cinder.
360 controllerExtraConfig:
363 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
367 default: overcloud-full
369 - custom_constraint: glance.image
370 OvercloudControlFlavor:
371 description: Flavor for control nodes to request when deploying.
375 - custom_constraint: nova.flavor
376 ControlVirtualInterface:
378 description: Interface where virtual ip will be assigned.
382 description: Whether to enable fencing in Pacemaker or not.
386 description: Whether to use Galera instead of regular MariaDB.
388 ControllerEnableCephStorage:
390 description: Whether to deploy Ceph Storage (OSD) on the Controller
392 ControllerEnableSwiftStorage:
394 description: Whether to enable Swift Storage on the Controller
396 ControllerSchedulerHints:
398 description: Optional scheduler hints to pass to nova
403 Additional configuration to inject into the cluster. The format required
404 may be implementation specific, e.g puppet hieradata. Any role specific
405 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
410 Pacemaker fencing configuration. The JSON should have
411 the following structure:
415 "agent": "AGENT_NAME",
416 "host_mac": "HOST_MAC_ADDRESS",
417 "params": {"PARAM_NAME": "PARAM_VALUE"}
425 "agent": "fence_xvm",
426 "host_mac": "52:54:00:aa:bb:cc",
428 "multicast_address": "225.0.0.12",
429 "port": "baremetal_0",
431 "manage_key_file": true,
432 "key_file": "/etc/fence_xvm.key",
433 "key_file_password": "abcdef"
441 description: The short name of the Gnocchi backend to use. Should be one
442 of swift, rbd or file
445 - allowed_values: ['swift', 'file', 'rbd']
446 GnocchiIndexerBackend:
448 description: The short name of the Gnocchi indexer backend to use.
451 description: The password for the gnocchi service account.
454 InstanceNameTemplate:
455 default: 'instance-%08x'
456 description: Template string to be used to generate instance names
460 description: Whether to manage IPtables rules.
464 description: Whether IPtables rules should be purged before setting up the ones.
466 MysqlInnodbBufferPoolSize:
468 Specifies the size of the buffer pool in megabytes. Setting to
469 zero should be interpreted as "no value" and will defer to the
474 description: Configures MySQL max_connections config setting
477 NeutronPublicInterfaceDefaultRoute:
479 description: A custom default route for the NeutronPublicInterface.
481 NeutronPublicInterfaceIP:
483 description: A custom IP address to put onto the NeutronPublicInterface.
485 NeutronPublicInterfaceRawDevice:
487 description: If set, the public interface is a vlan with this device as the raw device.
489 PublicVirtualInterface:
492 Specifies the interface where the public-facing virtual ip will be assigned.
493 This should be int_public when a VLAN is being used.
496 description: A random string to be used as a salt when hashing to determine mappings in the ring.
501 description: Value of mount_check in Swift account/container/object -server.conf
506 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
509 description: Partition Power to use when building Swift rings
514 description: How many replicas to use in the swift rings.
516 # Compute-specific params
517 CeilometerComputeAgent:
518 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
522 - allowed_values: ['', Present]
526 HypervisorNeutronPhysicalBridge:
529 An OVS bridge to create on each hypervisor. This defaults to br-ex the
530 same as the control plane nodes, as we have a uniform configuration of
531 the openvswitch agent. Typically should not need to be changed.
533 HypervisorNeutronPublicInterface:
535 description: What interface to add to the HypervisorNeutronPhysicalBridge.
537 NeutronNetworkVLANRanges:
538 default: 'datacentre:1:1000'
540 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
541 Neutron documentation for permitted values. Defaults to permitting any
542 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
543 type: comma_delimited_list
546 default: libvirt.LibvirtDriver
547 NovaComputeExtraConfig:
550 NovaCompute specific configuration to inject into the cluster. Same
551 structure as ExtraConfig.
553 NovaComputeLibvirtType:
556 NovaComputeLibvirtVifDriver:
558 description: Libvirt VIF driver configuration for the network
560 NovaComputeSchedulerHints:
562 description: Optional scheduler hints to pass to nova
564 NovaEnableRbdBackend:
566 description: Whether to enable or not the Rbd backend for Nova
570 default: overcloud-full
572 - custom_constraint: glance.image
575 description: Name of integration bridge used by Open vSwitch
577 NovaSecurityGroupAPI:
579 description: The full class name of the security API class
581 OvercloudComputeFlavor:
582 description: Use this flavor
586 - custom_constraint: nova.flavor
589 NeutronTenantNetwork: tenant
590 CeilometerApiNetwork: internal_api
591 AodhApiNetwork: internal_api
592 GnocchiApiNetwork: internal_api
593 MongoDbNetwork: internal_api
594 CinderApiNetwork: internal_api
595 CinderIscsiNetwork: storage
596 GlanceApiNetwork: storage
597 GlanceRegistryNetwork: internal_api
598 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
599 KeystonePublicApiNetwork: internal_api
600 NeutronApiNetwork: internal_api
601 HeatApiNetwork: internal_api
602 NovaApiNetwork: internal_api
603 NovaMetadataNetwork: internal_api
604 NovaVncProxyNetwork: internal_api
605 SwiftMgmtNetwork: storage_mgmt
606 SwiftProxyNetwork: storage
607 SaharaApiNetwork: internal_api
608 HorizonNetwork: internal_api
609 MemcachedNetwork: internal_api
610 RabbitMqNetwork: internal_api
611 RedisNetwork: internal_api
612 MysqlNetwork: internal_api
613 CephClusterNetwork: storage_mgmt
614 CephPublicNetwork: storage
615 ControllerHostnameResolveNetwork: internal_api
616 ComputeHostnameResolveNetwork: internal_api
617 BlockStorageHostnameResolveNetwork: internal_api
618 ObjectStorageHostnameResolveNetwork: internal_api
619 CephStorageHostnameResolveNetwork: storage
620 description: Mapping of service_name -> network name. Typically set
621 via parameter_defaults in the resource registry.
626 - OS::TripleO::Services::CinderApi
627 - OS::TripleO::Services::CinderScheduler
628 - OS::TripleO::Services::CinderVolume
629 - OS::TripleO::Services::Keystone
630 - OS::TripleO::Services::GlanceApi
631 - OS::TripleO::Services::GlanceRegistry
632 - OS::TripleO::Services::HeatApi
633 - OS::TripleO::Services::HeatApiCfn
634 - OS::TripleO::Services::HeatApiCloudwatch
635 - OS::TripleO::Services::HeatEngine
636 - OS::TripleO::Services::NeutronDhcpAgent
637 - OS::TripleO::Services::NeutronL3Agent
638 - OS::TripleO::Services::NeutronMetadataAgent
639 - OS::TripleO::Services::RabbitMQ
640 - OS::TripleO::Services::HAproxy
641 - OS::TripleO::Services::Keepalived
642 - OS::TripleO::Services::Memcached
643 - OS::TripleO::Services::SwiftProxy
644 - OS::TripleO::Services::Redis
645 - OS::TripleO::Services::NovaConductor
646 description: A list of service resources (configured in the Heat
647 resource_registry) which represent nested stacks
648 for each service that should get installed on the Controllers.
649 type: comma_delimited_list
653 description: A list of service resources (configured in the Heat
654 resource_registry) which represent nested stacks
655 for each service that should get installed on the Compute Nodes.
656 type: comma_delimited_list
658 # Block storage specific parameters
663 default: overcloud-full
665 OvercloudBlockStorageFlavor:
666 description: Flavor for block storage nodes to request when deploying.
670 - custom_constraint: nova.flavor
671 BlockStorageExtraConfig:
674 BlockStorage specific configuration to inject into the cluster. Same
675 structure as ExtraConfig.
677 BlockStorageSchedulerHints:
679 description: Optional scheduler hints to pass to nova
683 # Object storage specific parameters
687 OvercloudSwiftStorageFlavor:
688 description: Flavor for Swift storage nodes to request when deploying.
692 - custom_constraint: nova.flavor
694 default: overcloud-full
696 ObjectStorageExtraConfig:
699 ObjectStorage specific configuration to inject into the cluster. Same
700 structure as ExtraConfig.
702 ObjectStorageSchedulerHints:
704 description: Optional scheduler hints to pass to nova
706 ObjectStorageServices:
708 description: A list of service resources (configured in the Heat
709 resource_registry) which represent nested stacks
710 for each service that should get installed on the ObjectStorage nodes.
711 Note this role currently only supports steps 2, 3 and 4 configuration.
712 type: comma_delimited_list
715 # Ceph storage specific parameters
720 default: overcloud-full
722 OvercloudCephStorageFlavor:
724 description: Flavor for Ceph storage nodes to request when deploying.
727 - custom_constraint: nova.flavor
728 CephStorageExtraConfig:
731 CephStorage specific configuration to inject into the cluster. Same
732 structure as ExtraConfig.
734 CephStorageSchedulerHints:
736 description: Optional scheduler hints to pass to nova
740 description: A list of service resources (configured in the Heat
741 resource_registry) which represent nested stacks
742 for each service that should get installed on the CephStorage nodes.
743 type: comma_delimited_list
745 # Hostname format for each role
746 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
747 # and %stackname% is replaced with OS::stack_name in the template below.
748 # If you want to use the heat generated names, pass '' (empty string).
749 ControllerHostnameFormat:
751 description: Format for Controller node hostnames
752 default: '%stackname%-controller-%index%'
753 ComputeHostnameFormat:
755 description: Format for Compute node hostnames
756 default: '%stackname%-novacompute-%index%'
757 BlockStorageHostnameFormat:
759 description: Format for BlockStorage node hostnames
760 default: '%stackname%-blockstorage-%index%'
761 ObjectStorageHostnameFormat:
763 description: Format for SwiftStorage node hostnames
764 default: '%stackname%-objectstorage-%index%'
765 CephStorageHostnameFormat:
767 description: Format for CephStorage node hostnames
768 default: '%stackname%-cephstorage-%index%'
770 # Identifiers to trigger tasks on nodes
775 Setting to a previously unused value during stack-update will trigger
776 package update on all nodes
781 Setting this to a unique value will re-run any deployment tasks which
782 perform configuration on a Heat stack-update.
784 # If you want to remove a specific node from a resource group, you can pass
785 # the node name or id as a <Group>RemovalPolicies parameter, for example:
786 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
787 ControllerRemovalPolicies:
791 List of resources to be removed from ControllerResourceGroup when
792 doing an update which requires removal of specific resources.
793 ComputeRemovalPolicies:
797 List of resources to be removed from ComputeResourceGroup when
798 doing an update which requires removal of specific resources.
799 BlockStorageRemovalPolicies:
803 List of resources to be removed from BlockStorageResourceGroup when
804 doing an update which requires removal of specific resources.
805 ObjectStorageRemovalPolicies:
809 List of resources to be removed from ObjectStorageResourceGroup when
810 doing an update which requires removal of specific resources.
811 CephStorageRemovalPolicies:
815 List of resources to be removed from CephStorageResourceGroup when
816 doing an update which requires removal of specific resources.
820 description: Do not use deprecated params, they will be removed.
822 - controllerExtraConfig
827 HeatAuthEncryptionKey:
828 type: OS::Heat::RandomString
831 type: OS::Heat::RandomString
836 type: OS::Heat::RandomString
841 type: OS::TripleO::EndpointMap
843 CloudName: {get_param: CloudName}
844 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
845 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
846 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
847 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
848 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
849 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
850 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
851 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
852 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
853 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
854 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
855 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
856 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
857 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
858 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
860 ControllerServiceChain:
861 type: OS::TripleO::Services
864 Services: {get_param: ControllerServices}
865 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
868 type: OS::Heat::ResourceGroup
871 count: {get_param: ControllerCount}
872 removal_policies: {get_param: ControllerRemovalPolicies}
874 type: OS::TripleO::Controller
876 AdminPassword: {get_param: AdminPassword}
877 AodhPassword: {get_param: AodhPassword}
878 CeilometerBackend: {get_param: CeilometerBackend}
879 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
880 CeilometerPassword: {get_param: CeilometerPassword}
881 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
882 CloudDomain: {get_param: CloudDomain}
883 ControlVirtualInterface: {get_param: ControlVirtualInterface}
884 controllerExtraConfig: {get_param: controllerExtraConfig}
885 CorosyncIPv6: {get_param: CorosyncIPv6}
886 Debug: {get_param: Debug}
887 EnableFencing: {get_param: EnableFencing}
888 ManageFirewall: {get_param: ManageFirewall}
889 PurgeFirewallRules: {get_param: PurgeFirewallRules}
890 EnableGalera: {get_param: EnableGalera}
891 EnableCephStorage: {get_param: ControllerEnableCephStorage}
892 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
893 ExtraConfig: {get_param: ExtraConfig}
894 FencingConfig: {get_param: FencingConfig}
895 Flavor: {get_param: OvercloudControlFlavor}
896 GnocchiPassword: {get_param: GnocchiPassword}
897 GnocchiBackend: {get_param: GnocchiBackend}
898 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
899 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
900 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
901 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
902 HorizonSecret: {get_resource: HorizonSecret}
903 Image: {get_param: controllerImage}
904 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
905 InstanceNameTemplate: {get_param: InstanceNameTemplate}
906 KeyName: {get_param: KeyName}
907 MemcachedIPv6: {get_param: MemcachedIPv6}
908 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
909 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
910 MysqlMaxConnections: {get_param: MysqlMaxConnections}
911 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
912 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
913 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
914 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
915 NeutronTenantMtu: {get_param: NeutronTenantMtu}
916 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
917 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
918 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
919 NeutronPublicInterface: {get_param: NeutronPublicInterface}
920 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
921 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
922 NeutronPassword: {get_param: NeutronPassword}
923 NeutronDVR: {get_param: NeutronDVR}
924 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
925 NeutronAgentMode: {get_param: NeutronAgentMode}
926 NeutronCorePlugin: {get_param: NeutronCorePlugin}
927 NeutronServicePlugins: {get_param: NeutronServicePlugins}
928 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
929 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
930 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
931 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
932 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
933 NeutronL3HA: {get_param: NeutronL3HA}
934 NeutronNetworkType: {get_param: NeutronNetworkType}
935 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
936 NovaIPv6: {get_param: NovaIPv6}
937 NovaPassword: {get_param: NovaPassword}
938 NtpServer: {get_param: NtpServer}
939 MongoDbNoJournal: {get_param: MongoDbNoJournal}
940 MongoDbIPv6: {get_param: MongoDbIPv6}
941 PcsdPassword: {get_resource: PcsdPassword}
942 PublicVirtualInterface: {get_param: PublicVirtualInterface}
943 RabbitPassword: {get_param: RabbitPassword}
944 RabbitUserName: {get_param: RabbitUserName}
945 RabbitCookie: {get_attr: [RabbitCookie, value]}
946 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
947 RabbitClientPort: {get_param: RabbitClientPort}
948 RedisPassword: {get_param: RedisPassword}
949 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
950 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
951 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
952 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
953 SwiftHashSuffix: {get_param: SwiftHashSuffix}
954 SwiftMountCheck: {get_param: SwiftMountCheck}
955 SwiftMinPartHours: {get_param: SwiftMinPartHours}
956 SwiftPartPower: {get_param: SwiftPartPower}
957 SwiftReplicas: { get_param: SwiftReplicas}
958 TimeZone: {get_param: TimeZone}
959 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
960 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
961 ServiceNetMap: {get_param: ServiceNetMap}
962 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
963 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
964 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
965 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
966 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
967 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
968 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
969 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
970 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
971 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
972 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
973 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
974 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
975 UpdateIdentifier: {get_param: UpdateIdentifier}
978 template: {get_param: ControllerHostnameFormat}
980 '%stackname%': {get_param: 'OS::stack_name'}
982 ServerMetadata: {get_param: ServerMetadata}
983 SchedulerHints: {get_param: ControllerSchedulerHints}
984 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
987 type: OS::TripleO::Services
989 Services: {get_param: ComputeServices}
990 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
993 type: OS::Heat::ResourceGroup
996 count: {get_param: ComputeCount}
997 removal_policies: {get_param: ComputeRemovalPolicies}
999 type: OS::TripleO::Compute
1001 AdminPassword: {get_param: AdminPassword}
1002 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1003 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1004 CeilometerPassword: {get_param: CeilometerPassword}
1005 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1006 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1007 Debug: {get_param: Debug}
1008 ExtraConfig: {get_param: ExtraConfig}
1009 Flavor: {get_param: OvercloudComputeFlavor}
1010 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1011 Image: {get_param: NovaImage}
1012 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1013 KeyName: {get_param: KeyName}
1014 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1015 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1016 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1017 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1018 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1019 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1020 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1021 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1022 NeutronNetworkType: {get_param: NeutronNetworkType}
1023 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1024 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1025 NeutronPassword: {get_param: NeutronPassword}
1026 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1027 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1028 NeutronDVR: {get_param: NeutronDVR}
1029 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1030 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1031 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1032 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1033 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1034 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1035 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1036 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1037 # L3 HA and Failover is not relevant for Computes, should be removed
1038 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1039 NeutronL3HA: {get_param: NeutronL3HA}
1040 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1041 NovaComputeDriver: {get_param: NovaComputeDriver}
1042 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1043 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1044 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1045 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1046 NovaIPv6: {get_param: NovaIPv6}
1047 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1048 NovaPassword: {get_param: NovaPassword}
1049 NovaOVSBridge: {get_param: NovaOVSBridge}
1050 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1051 NtpServer: {get_param: NtpServer}
1052 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1053 RabbitPassword: {get_param: RabbitPassword}
1054 RabbitUserName: {get_param: RabbitUserName}
1055 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1056 RabbitClientPort: {get_param: RabbitClientPort}
1057 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1058 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1059 ServiceNetMap: {get_param: ServiceNetMap}
1060 TimeZone: {get_param: TimeZone}
1061 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1062 UpdateIdentifier: {get_param: UpdateIdentifier}
1065 template: {get_param: ComputeHostnameFormat}
1067 '%stackname%': {get_param: 'OS::stack_name'}
1068 CloudDomain: {get_param: CloudDomain}
1069 ServerMetadata: {get_param: ServerMetadata}
1070 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1071 NodeIndex: '%index%'
1072 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
1076 type: OS::Heat::ResourceGroup
1077 depends_on: Networks
1079 count: {get_param: BlockStorageCount}
1080 removal_policies: {get_param: BlockStorageRemovalPolicies}
1082 type: OS::TripleO::BlockStorage
1084 Debug: {get_param: Debug}
1085 Image: {get_param: BlockStorageImage}
1086 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1087 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1088 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1089 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1090 CinderPassword: {get_param: CinderPassword}
1091 KeyName: {get_param: KeyName}
1092 Flavor: {get_param: OvercloudBlockStorageFlavor}
1093 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1094 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1095 RabbitPassword: {get_param: RabbitPassword}
1096 RabbitUserName: {get_param: RabbitUserName}
1097 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1098 RabbitClientPort: {get_param: RabbitClientPort}
1099 TimeZone: {get_param: TimeZone}
1100 NtpServer: {get_param: NtpServer}
1101 UpdateIdentifier: {get_param: UpdateIdentifier}
1104 template: {get_param: BlockStorageHostnameFormat}
1106 '%stackname%': {get_param: 'OS::stack_name'}
1107 ServiceNetMap: {get_param: ServiceNetMap}
1108 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1109 ExtraConfig: {get_param: ExtraConfig}
1110 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1111 CloudDomain: {get_param: CloudDomain}
1112 ServerMetadata: {get_param: ServerMetadata}
1113 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1114 NodeIndex: '%index%'
1116 ObjectStorageServiceChain:
1117 type: OS::TripleO::Services
1119 Services: {get_param: ObjectStorageServices}
1120 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1123 type: OS::Heat::ResourceGroup
1124 depends_on: Networks
1126 count: {get_param: ObjectStorageCount}
1127 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1129 type: OS::TripleO::ObjectStorage
1131 KeyName: {get_param: KeyName}
1132 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1133 HashSuffix: {get_param: SwiftHashSuffix}
1134 MountCheck: {get_param: SwiftMountCheck}
1135 MinPartHours: {get_param: SwiftMinPartHours}
1136 PartPower: {get_param: SwiftPartPower}
1137 Image: {get_param: SwiftStorageImage}
1138 Replicas: { get_param: SwiftReplicas}
1139 TimeZone: {get_param: TimeZone}
1140 NtpServer: {get_param: NtpServer}
1141 UpdateIdentifier: {get_param: UpdateIdentifier}
1142 ServiceNetMap: {get_param: ServiceNetMap}
1145 template: {get_param: ObjectStorageHostnameFormat}
1147 '%stackname%': {get_param: 'OS::stack_name'}
1148 ExtraConfig: {get_param: ExtraConfig}
1149 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1150 CloudDomain: {get_param: CloudDomain}
1151 ServerMetadata: {get_param: ServerMetadata}
1152 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1153 NodeIndex: '%index%'
1154 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1156 CephStorageServiceChain:
1157 type: OS::TripleO::Services
1159 Services: {get_param: CephStorageServices}
1160 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1163 type: OS::Heat::ResourceGroup
1164 depends_on: Networks
1166 count: {get_param: CephStorageCount}
1167 removal_policies: {get_param: CephStorageRemovalPolicies}
1169 type: OS::TripleO::CephStorage
1171 Image: {get_param: CephStorageImage}
1172 KeyName: {get_param: KeyName}
1173 Flavor: {get_param: OvercloudCephStorageFlavor}
1174 NtpServer: {get_param: NtpServer}
1175 ServiceNetMap: {get_param: ServiceNetMap}
1176 TimeZone: {get_param: TimeZone}
1177 UpdateIdentifier: {get_param: UpdateIdentifier}
1180 template: {get_param: CephStorageHostnameFormat}
1182 '%stackname%': {get_param: 'OS::stack_name'}
1183 ExtraConfig: {get_param: ExtraConfig}
1184 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1185 CloudDomain: {get_param: CloudDomain}
1186 ServerMetadata: {get_param: ServerMetadata}
1187 SchedulerHints: {get_param: CephStorageSchedulerHints}
1188 NodeIndex: '%index%'
1189 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1191 ControllerIpListMap:
1192 type: OS::TripleO::Network::Ports::NetIpListMap
1194 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1195 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1196 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1197 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1198 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1199 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1200 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1203 type: OS::TripleO::AllNodes::SoftwareConfig
1205 compute_hosts: {get_attr: [Compute, hosts_entry]}
1206 controller_hosts: {get_attr: [Controller, hosts_entry]}
1207 controller_ips: {get_attr: [Controller, ip_address]}
1208 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1209 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1210 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1211 controller_names: {get_attr: [Controller, hostname]}
1212 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1213 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1214 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1215 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1216 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1217 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1218 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1219 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1220 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1221 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1222 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1223 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1224 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1225 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1226 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1227 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1228 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1229 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1230 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1231 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1232 DeployIdentifier: {get_param: DeployIdentifier}
1233 UpdateIdentifier: {get_param: UpdateIdentifier}
1236 type: OS::Heat::RandomString
1240 MysqlClusterUniquePart:
1241 type: OS::Heat::RandomString
1246 type: OS::Heat::RandomString
1249 salt: {get_param: RabbitCookieSalt}
1251 # creates the network architecture
1253 type: OS::TripleO::Network
1256 type: OS::Neutron::Port
1257 depends_on: Networks
1259 name: control_virtual_ip
1260 network: {get_param: NeutronControlPlaneID}
1261 fixed_ips: {get_param: ControlFixedIPs}
1262 replacement_policy: AUTO
1265 depends_on: Networks
1266 type: OS::TripleO::Network::Ports::RedisVipPort
1268 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1269 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1270 PortName: redis_virtual_ip
1271 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1274 # The public VIP is on the External net, falls back to ctlplane
1276 depends_on: Networks
1277 type: OS::TripleO::Network::Ports::ExternalVipPort
1279 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1280 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1281 PortName: public_virtual_ip
1282 FixedIPs: {get_param: PublicVirtualFixedIPs}
1284 InternalApiVirtualIP:
1285 depends_on: Networks
1286 type: OS::TripleO::Network::Ports::InternalApiVipPort
1288 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1289 PortName: internal_api_virtual_ip
1290 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1293 depends_on: Networks
1294 type: OS::TripleO::Network::Ports::StorageVipPort
1296 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1297 PortName: storage_virtual_ip
1298 FixedIPs: {get_param: StorageVirtualFixedIPs}
1300 StorageMgmtVirtualIP:
1301 depends_on: Networks
1302 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1304 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1305 PortName: storage_management_virtual_ip
1306 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1309 type: OS::TripleO::Network::Ports::NetVipMap
1311 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1312 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1313 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1314 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1315 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1316 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1317 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1318 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1319 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1320 # No tenant or management VIP required
1323 type: OS::TripleO::VipConfig
1326 type: OS::Heat::StructuredDeployments
1329 config: {get_resource: VipConfig}
1330 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1332 # service VIP mappings
1333 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1334 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1335 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1336 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1337 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1338 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1339 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1340 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1341 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1342 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1343 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1344 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1345 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1346 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1347 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1348 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1349 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1350 # direct configuration of Virtual IPs for each network
1351 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1352 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1353 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1354 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1355 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1356 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1358 ControllerBootstrapNodeConfig:
1359 type: OS::TripleO::BootstrapNode::SoftwareConfig
1361 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1362 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1364 ControllerBootstrapNodeDeployment:
1365 type: OS::Heat::StructuredDeployments
1367 name: ControllerBootstrapNodeDeployment
1368 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1369 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1371 ControllerSwiftDeployment:
1372 type: OS::Heat::StructuredDeployments
1374 name: ControllerSwiftDeployment
1375 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1376 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1378 ObjectStorageSwiftDeployment:
1379 type: OS::Heat::StructuredDeployments
1381 name: ObjectStorageSwiftDeployment
1382 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1383 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1385 SwiftDevicesAndProxyConfig:
1386 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1388 controller_swift_devices: {get_attr: [Controller, swift_device]}
1389 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1390 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1392 ComputeCephDeployment:
1393 type: OS::Heat::StructuredDeployments
1395 name: ComputeCephDeployment
1396 config: {get_attr: [CephClusterConfig, config_id]}
1397 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1399 ControllerCephDeployment:
1400 type: OS::Heat::StructuredDeployments
1402 name: ControllerCephDeployment
1403 config: {get_attr: [CephClusterConfig, config_id]}
1404 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1406 CephStorageCephDeployment:
1407 type: OS::Heat::StructuredDeployments
1409 name: CephStorageCephDeployment
1410 config: {get_attr: [CephClusterConfig, config_id]}
1411 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1414 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1416 ceph_storage_count: {get_param: CephStorageCount}
1417 ceph_fsid: {get_param: CephClusterFSID}
1418 ceph_mon_key: {get_param: CephMonKey}
1419 ceph_admin_key: {get_param: CephAdminKey}
1420 ceph_client_key: {get_param: CephClientKey}
1421 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1422 ceph_mon_names: {get_attr: [Controller, hostname]}
1423 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1425 ControllerAllNodesDeployment:
1426 type: OS::Heat::StructuredDeployments
1428 name: ControllerAllNodesDeployment
1429 config: {get_attr: [allNodesConfig, config_id]}
1430 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1432 ComputeAllNodesDeployment:
1433 type: OS::Heat::StructuredDeployments
1435 name: ComputeAllNodesDeployment
1436 config: {get_attr: [allNodesConfig, config_id]}
1437 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1439 BlockStorageAllNodesDeployment:
1440 type: OS::Heat::StructuredDeployments
1442 name: BlockStorageAllNodesDeployment
1443 config: {get_attr: [allNodesConfig, config_id]}
1444 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1446 ObjectStorageAllNodesDeployment:
1447 type: OS::Heat::StructuredDeployments
1449 name: ObjectStorageAllNodesDeployment
1450 config: {get_attr: [allNodesConfig, config_id]}
1451 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1453 CephStorageAllNodesDeployment:
1454 type: OS::Heat::StructuredDeployments
1456 name: CephStorageAllNodesDeployment
1457 config: {get_attr: [allNodesConfig, config_id]}
1458 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1460 # All Nodes Validations
1461 AllNodesValidationConfig:
1462 type: OS::TripleO::AllNodes::Validation
1467 - - {get_attr: [Controller, resource.0.external_ip_address]}
1468 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1469 - {get_attr: [Controller, resource.0.storage_ip_address]}
1470 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1471 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1473 ControllerAllNodesValidationDeployment:
1474 type: OS::Heat::StructuredDeployments
1475 depends_on: ControllerAllNodesDeployment
1477 name: ControllerAllNodesValidationDeployment
1478 config: {get_resource: AllNodesValidationConfig}
1479 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1481 ComputeAllNodesValidationDeployment:
1482 type: OS::Heat::StructuredDeployments
1483 depends_on: ComputeAllNodesDeployment
1485 name: ComputeAllNodesValidationDeployment
1486 config: {get_resource: AllNodesValidationConfig}
1487 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1489 BlockStorageAllNodesValidationDeployment:
1490 type: OS::Heat::StructuredDeployments
1491 depends_on: BlockStorageAllNodesDeployment
1493 name: BlockStorageAllNodesValidationDeployment
1494 config: {get_resource: AllNodesValidationConfig}
1495 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1497 ObjectStorageAllNodesValidationDeployment:
1498 type: OS::Heat::StructuredDeployments
1499 depends_on: ObjectStorageAllNodesDeployment
1501 name: ObjectStorageAllNodesValidationDeployment
1502 config: {get_resource: AllNodesValidationConfig}
1503 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1505 CephStorageAllNodesValidationDeployment:
1506 type: OS::Heat::StructuredDeployments
1507 depends_on: CephStorageAllNodesDeployment
1509 name: CephStorageAllNodesValidationDeployment
1510 config: {get_resource: AllNodesValidationConfig}
1511 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1514 type: OS::TripleO::Tasks::UpdateWorkflow
1516 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1517 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1518 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1519 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1520 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1522 deploy_identifier: {get_param: DeployIdentifier}
1523 update_identifier: {get_param: UpdateIdentifier}
1525 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1526 # the nested template may configure each role differently (or not at all)
1527 AllNodesExtraConfig:
1528 type: OS::TripleO::AllNodesExtraConfig
1531 - ComputeAllNodesValidationDeployment
1532 - BlockStorageAllNodesValidationDeployment
1533 - ObjectStorageAllNodesValidationDeployment
1534 - CephStorageAllNodesValidationDeployment
1535 - ControllerAllNodesValidationDeployment
1537 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1538 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1539 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1540 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1541 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1543 # Nested stack deployment runs after all other controller deployments
1544 ControllerNodesPostDeployment:
1545 type: OS::TripleO::ControllerPostDeployment
1546 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1548 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1549 NodeConfigIdentifiers:
1550 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1551 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1552 deployment_identifier: {get_param: DeployIdentifier}
1553 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1555 ComputeNodesPostDeployment:
1556 type: OS::TripleO::ComputePostDeployment
1557 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1559 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1560 NodeConfigIdentifiers:
1561 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1562 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1563 deployment_identifier: {get_param: DeployIdentifier}
1564 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1566 ObjectStorageNodesPostDeployment:
1567 type: OS::TripleO::ObjectStoragePostDeployment
1568 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1570 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1571 NodeConfigIdentifiers:
1572 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1573 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1574 deployment_identifier: {get_param: DeployIdentifier}
1575 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1577 BlockStorageNodesPostDeployment:
1578 type: OS::TripleO::BlockStoragePostDeployment
1579 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1581 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1582 NodeConfigIdentifiers:
1583 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1584 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1585 deployment_identifier: {get_param: DeployIdentifier}
1587 CephStorageNodesPostDeployment:
1588 type: OS::TripleO::CephStoragePostDeployment
1589 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1591 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1592 NodeConfigIdentifiers:
1593 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1594 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1595 deployment_identifier: {get_param: DeployIdentifier}
1596 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1600 description: URL for the Overcloud Keystone service
1601 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1603 description: Keystone Admin VIP endpoint
1604 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1606 description: Controller VIP for public API endpoints
1607 value: {get_attr: [VipMap, net_ip_map, external]}
1609 description: VIP for Aodh API internal endpoint
1610 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1611 CeilometerInternalVip:
1612 description: VIP for Ceilometer API internal endpoint
1613 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1615 description: VIP for Cinder API internal endpoint
1616 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1618 description: VIP for Glance API internal endpoint
1619 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1621 description: VIP for Gnocchi API internal endpoint
1622 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1624 description: VIP for Heat API internal endpoint
1625 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1626 KeystoneInternalVip:
1627 description: VIP for Keystone API internal endpoint
1628 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1630 description: VIP for Neutron API internal endpoint
1631 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1633 description: VIP for Nova API internal endpoint
1634 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1636 description: VIP for Sahara API internal endpoint
1637 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1639 description: VIP for Swift Proxy internal endpoint
1640 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1643 Mapping of the resources with the needed info for their endpoints.
1644 This includes the protocol used, the IP, port and also a full
1645 representation of the URI.
1646 value: {get_attr: [EndpointMap, endpoint_map]}
1649 The content that should be appended to your /etc/hosts if you want to get
1650 hostname-based access to the deployed nodes (useful for testing without
1652 value: {get_attr: [allNodesConfig, hosts_entries]}