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::Loadbalancer
641 - OS::TripleO::Services::Memcached
642 - OS::TripleO::Services::SwiftProxy
643 - OS::TripleO::Services::Redis
644 description: A list of service resources (configured in the Heat
645 resource_registry) which represent nested stacks
646 for each service that should get installed on the Controllers.
647 type: comma_delimited_list
651 description: A list of service resources (configured in the Heat
652 resource_registry) which represent nested stacks
653 for each service that should get installed on the Compute Nodes.
654 type: comma_delimited_list
656 # Block storage specific parameters
661 default: overcloud-full
663 OvercloudBlockStorageFlavor:
664 description: Flavor for block storage nodes to request when deploying.
668 - custom_constraint: nova.flavor
669 BlockStorageExtraConfig:
672 BlockStorage specific configuration to inject into the cluster. Same
673 structure as ExtraConfig.
675 BlockStorageSchedulerHints:
677 description: Optional scheduler hints to pass to nova
681 # Object storage specific parameters
685 OvercloudSwiftStorageFlavor:
686 description: Flavor for Swift storage nodes to request when deploying.
690 - custom_constraint: nova.flavor
692 default: overcloud-full
694 ObjectStorageExtraConfig:
697 ObjectStorage specific configuration to inject into the cluster. Same
698 structure as ExtraConfig.
700 ObjectStorageSchedulerHints:
702 description: Optional scheduler hints to pass to nova
704 ObjectStorageServices:
706 description: A list of service resources (configured in the Heat
707 resource_registry) which represent nested stacks
708 for each service that should get installed on the ObjectStorage nodes.
709 Note this role currently only supports steps 2, 3 and 4 configuration.
710 type: comma_delimited_list
713 # Ceph storage specific parameters
718 default: overcloud-full
720 OvercloudCephStorageFlavor:
722 description: Flavor for Ceph storage nodes to request when deploying.
725 - custom_constraint: nova.flavor
726 CephStorageExtraConfig:
729 CephStorage specific configuration to inject into the cluster. Same
730 structure as ExtraConfig.
732 CephStorageSchedulerHints:
734 description: Optional scheduler hints to pass to nova
738 description: A list of service resources (configured in the Heat
739 resource_registry) which represent nested stacks
740 for each service that should get installed on the CephStorage nodes.
741 type: comma_delimited_list
743 # Hostname format for each role
744 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
745 # and %stackname% is replaced with OS::stack_name in the template below.
746 # If you want to use the heat generated names, pass '' (empty string).
747 ControllerHostnameFormat:
749 description: Format for Controller node hostnames
750 default: '%stackname%-controller-%index%'
751 ComputeHostnameFormat:
753 description: Format for Compute node hostnames
754 default: '%stackname%-novacompute-%index%'
755 BlockStorageHostnameFormat:
757 description: Format for BlockStorage node hostnames
758 default: '%stackname%-blockstorage-%index%'
759 ObjectStorageHostnameFormat:
761 description: Format for SwiftStorage node hostnames
762 default: '%stackname%-objectstorage-%index%'
763 CephStorageHostnameFormat:
765 description: Format for CephStorage node hostnames
766 default: '%stackname%-cephstorage-%index%'
768 # Identifiers to trigger tasks on nodes
773 Setting to a previously unused value during stack-update will trigger
774 package update on all nodes
779 Setting this to a unique value will re-run any deployment tasks which
780 perform configuration on a Heat stack-update.
782 # If you want to remove a specific node from a resource group, you can pass
783 # the node name or id as a <Group>RemovalPolicies parameter, for example:
784 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
785 ControllerRemovalPolicies:
789 List of resources to be removed from ControllerResourceGroup when
790 doing an update which requires removal of specific resources.
791 ComputeRemovalPolicies:
795 List of resources to be removed from ComputeResourceGroup when
796 doing an update which requires removal of specific resources.
797 BlockStorageRemovalPolicies:
801 List of resources to be removed from BlockStorageResourceGroup when
802 doing an update which requires removal of specific resources.
803 ObjectStorageRemovalPolicies:
807 List of resources to be removed from ObjectStorageResourceGroup when
808 doing an update which requires removal of specific resources.
809 CephStorageRemovalPolicies:
813 List of resources to be removed from CephStorageResourceGroup when
814 doing an update which requires removal of specific resources.
818 description: Do not use deprecated params, they will be removed.
820 - controllerExtraConfig
825 HeatAuthEncryptionKey:
826 type: OS::Heat::RandomString
829 type: OS::Heat::RandomString
834 type: OS::Heat::RandomString
839 type: OS::TripleO::EndpointMap
841 CloudName: {get_param: CloudName}
842 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
843 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
844 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
845 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
846 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
847 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
848 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
849 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
850 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
851 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
852 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
853 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
854 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
855 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
856 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
858 ControllerServiceChain:
859 type: OS::TripleO::Services
862 Services: {get_param: ControllerServices}
863 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
866 type: OS::Heat::ResourceGroup
869 count: {get_param: ControllerCount}
870 removal_policies: {get_param: ControllerRemovalPolicies}
872 type: OS::TripleO::Controller
874 AdminPassword: {get_param: AdminPassword}
875 AodhPassword: {get_param: AodhPassword}
876 CeilometerBackend: {get_param: CeilometerBackend}
877 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
878 CeilometerPassword: {get_param: CeilometerPassword}
879 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
880 CloudDomain: {get_param: CloudDomain}
881 ControlVirtualInterface: {get_param: ControlVirtualInterface}
882 controllerExtraConfig: {get_param: controllerExtraConfig}
883 CorosyncIPv6: {get_param: CorosyncIPv6}
884 Debug: {get_param: Debug}
885 EnableFencing: {get_param: EnableFencing}
886 ManageFirewall: {get_param: ManageFirewall}
887 PurgeFirewallRules: {get_param: PurgeFirewallRules}
888 EnableGalera: {get_param: EnableGalera}
889 EnableCephStorage: {get_param: ControllerEnableCephStorage}
890 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
891 ExtraConfig: {get_param: ExtraConfig}
892 FencingConfig: {get_param: FencingConfig}
893 Flavor: {get_param: OvercloudControlFlavor}
894 GnocchiPassword: {get_param: GnocchiPassword}
895 GnocchiBackend: {get_param: GnocchiBackend}
896 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
897 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
898 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
899 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
900 HorizonSecret: {get_resource: HorizonSecret}
901 Image: {get_param: controllerImage}
902 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
903 InstanceNameTemplate: {get_param: InstanceNameTemplate}
904 KeyName: {get_param: KeyName}
905 MemcachedIPv6: {get_param: MemcachedIPv6}
906 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
907 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
908 MysqlMaxConnections: {get_param: MysqlMaxConnections}
909 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
910 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
911 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
912 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
913 NeutronTenantMtu: {get_param: NeutronTenantMtu}
914 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
915 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
916 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
917 NeutronPublicInterface: {get_param: NeutronPublicInterface}
918 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
919 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
920 NeutronPassword: {get_param: NeutronPassword}
921 NeutronDVR: {get_param: NeutronDVR}
922 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
923 NeutronAgentMode: {get_param: NeutronAgentMode}
924 NeutronCorePlugin: {get_param: NeutronCorePlugin}
925 NeutronServicePlugins: {get_param: NeutronServicePlugins}
926 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
927 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
928 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
929 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
930 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
931 NeutronL3HA: {get_param: NeutronL3HA}
932 NeutronNetworkType: {get_param: NeutronNetworkType}
933 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
934 NovaIPv6: {get_param: NovaIPv6}
935 NovaPassword: {get_param: NovaPassword}
936 NtpServer: {get_param: NtpServer}
937 MongoDbNoJournal: {get_param: MongoDbNoJournal}
938 MongoDbIPv6: {get_param: MongoDbIPv6}
939 PcsdPassword: {get_resource: PcsdPassword}
940 PublicVirtualInterface: {get_param: PublicVirtualInterface}
941 RabbitPassword: {get_param: RabbitPassword}
942 RabbitUserName: {get_param: RabbitUserName}
943 RabbitCookie: {get_attr: [RabbitCookie, value]}
944 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
945 RabbitClientPort: {get_param: RabbitClientPort}
946 RedisPassword: {get_param: RedisPassword}
947 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
948 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
949 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
950 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
951 SwiftHashSuffix: {get_param: SwiftHashSuffix}
952 SwiftMountCheck: {get_param: SwiftMountCheck}
953 SwiftMinPartHours: {get_param: SwiftMinPartHours}
954 SwiftPartPower: {get_param: SwiftPartPower}
955 SwiftReplicas: { get_param: SwiftReplicas}
956 TimeZone: {get_param: TimeZone}
957 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
958 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
959 ServiceNetMap: {get_param: ServiceNetMap}
960 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
961 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
962 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
963 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
964 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
965 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
966 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
967 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
968 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
969 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
970 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
971 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
972 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
973 UpdateIdentifier: {get_param: UpdateIdentifier}
976 template: {get_param: ControllerHostnameFormat}
978 '%stackname%': {get_param: 'OS::stack_name'}
980 ServerMetadata: {get_param: ServerMetadata}
981 SchedulerHints: {get_param: ControllerSchedulerHints}
982 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
985 type: OS::TripleO::Services
987 Services: {get_param: ComputeServices}
988 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
991 type: OS::Heat::ResourceGroup
994 count: {get_param: ComputeCount}
995 removal_policies: {get_param: ComputeRemovalPolicies}
997 type: OS::TripleO::Compute
999 AdminPassword: {get_param: AdminPassword}
1000 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1001 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1002 CeilometerPassword: {get_param: CeilometerPassword}
1003 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1004 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1005 Debug: {get_param: Debug}
1006 ExtraConfig: {get_param: ExtraConfig}
1007 Flavor: {get_param: OvercloudComputeFlavor}
1008 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1009 Image: {get_param: NovaImage}
1010 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1011 KeyName: {get_param: KeyName}
1012 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1013 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1014 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1015 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1016 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1017 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1018 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1019 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1020 NeutronNetworkType: {get_param: NeutronNetworkType}
1021 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1022 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1023 NeutronPassword: {get_param: NeutronPassword}
1024 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1025 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1026 NeutronDVR: {get_param: NeutronDVR}
1027 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1028 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1029 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1030 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1031 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1032 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1033 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1034 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1035 # L3 HA and Failover is not relevant for Computes, should be removed
1036 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1037 NeutronL3HA: {get_param: NeutronL3HA}
1038 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1039 NovaComputeDriver: {get_param: NovaComputeDriver}
1040 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1041 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1042 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1043 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1044 NovaIPv6: {get_param: NovaIPv6}
1045 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1046 NovaPassword: {get_param: NovaPassword}
1047 NovaOVSBridge: {get_param: NovaOVSBridge}
1048 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1049 NtpServer: {get_param: NtpServer}
1050 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1051 RabbitPassword: {get_param: RabbitPassword}
1052 RabbitUserName: {get_param: RabbitUserName}
1053 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1054 RabbitClientPort: {get_param: RabbitClientPort}
1055 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1056 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1057 ServiceNetMap: {get_param: ServiceNetMap}
1058 TimeZone: {get_param: TimeZone}
1059 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1060 UpdateIdentifier: {get_param: UpdateIdentifier}
1063 template: {get_param: ComputeHostnameFormat}
1065 '%stackname%': {get_param: 'OS::stack_name'}
1066 CloudDomain: {get_param: CloudDomain}
1067 ServerMetadata: {get_param: ServerMetadata}
1068 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1069 NodeIndex: '%index%'
1070 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
1074 type: OS::Heat::ResourceGroup
1075 depends_on: Networks
1077 count: {get_param: BlockStorageCount}
1078 removal_policies: {get_param: BlockStorageRemovalPolicies}
1080 type: OS::TripleO::BlockStorage
1082 Debug: {get_param: Debug}
1083 Image: {get_param: BlockStorageImage}
1084 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1085 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1086 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1087 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1088 CinderPassword: {get_param: CinderPassword}
1089 KeyName: {get_param: KeyName}
1090 Flavor: {get_param: OvercloudBlockStorageFlavor}
1091 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1092 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1093 RabbitPassword: {get_param: RabbitPassword}
1094 RabbitUserName: {get_param: RabbitUserName}
1095 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1096 RabbitClientPort: {get_param: RabbitClientPort}
1097 TimeZone: {get_param: TimeZone}
1098 NtpServer: {get_param: NtpServer}
1099 UpdateIdentifier: {get_param: UpdateIdentifier}
1102 template: {get_param: BlockStorageHostnameFormat}
1104 '%stackname%': {get_param: 'OS::stack_name'}
1105 ServiceNetMap: {get_param: ServiceNetMap}
1106 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1107 ExtraConfig: {get_param: ExtraConfig}
1108 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1109 CloudDomain: {get_param: CloudDomain}
1110 ServerMetadata: {get_param: ServerMetadata}
1111 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1112 NodeIndex: '%index%'
1114 ObjectStorageServiceChain:
1115 type: OS::TripleO::Services
1117 Services: {get_param: ObjectStorageServices}
1118 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1121 type: OS::Heat::ResourceGroup
1122 depends_on: Networks
1124 count: {get_param: ObjectStorageCount}
1125 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1127 type: OS::TripleO::ObjectStorage
1129 KeyName: {get_param: KeyName}
1130 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1131 HashSuffix: {get_param: SwiftHashSuffix}
1132 MountCheck: {get_param: SwiftMountCheck}
1133 MinPartHours: {get_param: SwiftMinPartHours}
1134 PartPower: {get_param: SwiftPartPower}
1135 Image: {get_param: SwiftStorageImage}
1136 Replicas: { get_param: SwiftReplicas}
1137 TimeZone: {get_param: TimeZone}
1138 NtpServer: {get_param: NtpServer}
1139 UpdateIdentifier: {get_param: UpdateIdentifier}
1140 ServiceNetMap: {get_param: ServiceNetMap}
1143 template: {get_param: ObjectStorageHostnameFormat}
1145 '%stackname%': {get_param: 'OS::stack_name'}
1146 ExtraConfig: {get_param: ExtraConfig}
1147 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1148 CloudDomain: {get_param: CloudDomain}
1149 ServerMetadata: {get_param: ServerMetadata}
1150 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1151 NodeIndex: '%index%'
1152 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1154 CephStorageServiceChain:
1155 type: OS::TripleO::Services
1157 Services: {get_param: CephStorageServices}
1158 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1161 type: OS::Heat::ResourceGroup
1162 depends_on: Networks
1164 count: {get_param: CephStorageCount}
1165 removal_policies: {get_param: CephStorageRemovalPolicies}
1167 type: OS::TripleO::CephStorage
1169 Image: {get_param: CephStorageImage}
1170 KeyName: {get_param: KeyName}
1171 Flavor: {get_param: OvercloudCephStorageFlavor}
1172 NtpServer: {get_param: NtpServer}
1173 ServiceNetMap: {get_param: ServiceNetMap}
1174 TimeZone: {get_param: TimeZone}
1175 UpdateIdentifier: {get_param: UpdateIdentifier}
1178 template: {get_param: CephStorageHostnameFormat}
1180 '%stackname%': {get_param: 'OS::stack_name'}
1181 ExtraConfig: {get_param: ExtraConfig}
1182 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1183 CloudDomain: {get_param: CloudDomain}
1184 ServerMetadata: {get_param: ServerMetadata}
1185 SchedulerHints: {get_param: CephStorageSchedulerHints}
1186 NodeIndex: '%index%'
1187 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1189 ControllerIpListMap:
1190 type: OS::TripleO::Network::Ports::NetIpListMap
1192 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1193 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1194 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1195 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1196 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1197 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1198 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1201 type: OS::TripleO::AllNodes::SoftwareConfig
1203 compute_hosts: {get_attr: [Compute, hosts_entry]}
1204 controller_hosts: {get_attr: [Controller, hosts_entry]}
1205 controller_ips: {get_attr: [Controller, ip_address]}
1206 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1207 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1208 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1209 controller_names: {get_attr: [Controller, hostname]}
1210 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1211 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1212 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1213 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1214 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1215 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1216 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1217 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1218 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1219 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1220 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1221 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1222 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1223 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1224 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1225 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1226 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1227 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1228 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1229 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1230 DeployIdentifier: {get_param: DeployIdentifier}
1231 UpdateIdentifier: {get_param: UpdateIdentifier}
1234 type: OS::Heat::RandomString
1238 MysqlClusterUniquePart:
1239 type: OS::Heat::RandomString
1244 type: OS::Heat::RandomString
1247 salt: {get_param: RabbitCookieSalt}
1249 # creates the network architecture
1251 type: OS::TripleO::Network
1254 type: OS::Neutron::Port
1255 depends_on: Networks
1257 name: control_virtual_ip
1258 network: {get_param: NeutronControlPlaneID}
1259 fixed_ips: {get_param: ControlFixedIPs}
1260 replacement_policy: AUTO
1263 depends_on: Networks
1264 type: OS::TripleO::Network::Ports::RedisVipPort
1266 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1267 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1268 PortName: redis_virtual_ip
1269 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1272 # The public VIP is on the External net, falls back to ctlplane
1274 depends_on: Networks
1275 type: OS::TripleO::Network::Ports::ExternalVipPort
1277 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1278 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1279 PortName: public_virtual_ip
1280 FixedIPs: {get_param: PublicVirtualFixedIPs}
1282 InternalApiVirtualIP:
1283 depends_on: Networks
1284 type: OS::TripleO::Network::Ports::InternalApiVipPort
1286 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1287 PortName: internal_api_virtual_ip
1288 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1291 depends_on: Networks
1292 type: OS::TripleO::Network::Ports::StorageVipPort
1294 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1295 PortName: storage_virtual_ip
1296 FixedIPs: {get_param: StorageVirtualFixedIPs}
1298 StorageMgmtVirtualIP:
1299 depends_on: Networks
1300 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1302 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1303 PortName: storage_management_virtual_ip
1304 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1307 type: OS::TripleO::Network::Ports::NetVipMap
1309 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1310 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1311 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1312 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1313 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1314 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1315 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1316 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1317 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1318 # No tenant or management VIP required
1321 type: OS::TripleO::VipConfig
1324 type: OS::Heat::StructuredDeployments
1327 config: {get_resource: VipConfig}
1328 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1330 # service VIP mappings
1331 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1332 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1333 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1334 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1335 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1336 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1337 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1338 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1339 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1340 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1341 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1342 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1343 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1344 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1345 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1346 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1347 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1348 # direct configuration of Virtual IPs for each network
1349 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1350 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1351 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1352 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1353 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1354 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1356 ControllerBootstrapNodeConfig:
1357 type: OS::TripleO::BootstrapNode::SoftwareConfig
1359 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1360 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1362 ControllerBootstrapNodeDeployment:
1363 type: OS::Heat::StructuredDeployments
1365 name: ControllerBootstrapNodeDeployment
1366 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1367 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1369 ControllerSwiftDeployment:
1370 type: OS::Heat::StructuredDeployments
1372 name: ControllerSwiftDeployment
1373 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1374 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1376 ObjectStorageSwiftDeployment:
1377 type: OS::Heat::StructuredDeployments
1379 name: ObjectStorageSwiftDeployment
1380 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1381 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1383 SwiftDevicesAndProxyConfig:
1384 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1386 controller_swift_devices: {get_attr: [Controller, swift_device]}
1387 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1388 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1390 ComputeCephDeployment:
1391 type: OS::Heat::StructuredDeployments
1393 name: ComputeCephDeployment
1394 config: {get_attr: [CephClusterConfig, config_id]}
1395 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1397 ControllerCephDeployment:
1398 type: OS::Heat::StructuredDeployments
1400 name: ControllerCephDeployment
1401 config: {get_attr: [CephClusterConfig, config_id]}
1402 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1404 CephStorageCephDeployment:
1405 type: OS::Heat::StructuredDeployments
1407 name: CephStorageCephDeployment
1408 config: {get_attr: [CephClusterConfig, config_id]}
1409 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1412 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1414 ceph_storage_count: {get_param: CephStorageCount}
1415 ceph_fsid: {get_param: CephClusterFSID}
1416 ceph_mon_key: {get_param: CephMonKey}
1417 ceph_admin_key: {get_param: CephAdminKey}
1418 ceph_client_key: {get_param: CephClientKey}
1419 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1420 ceph_mon_names: {get_attr: [Controller, hostname]}
1421 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1423 ControllerAllNodesDeployment:
1424 type: OS::Heat::StructuredDeployments
1426 name: ControllerAllNodesDeployment
1427 config: {get_attr: [allNodesConfig, config_id]}
1428 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1430 ComputeAllNodesDeployment:
1431 type: OS::Heat::StructuredDeployments
1433 name: ComputeAllNodesDeployment
1434 config: {get_attr: [allNodesConfig, config_id]}
1435 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1437 BlockStorageAllNodesDeployment:
1438 type: OS::Heat::StructuredDeployments
1440 name: BlockStorageAllNodesDeployment
1441 config: {get_attr: [allNodesConfig, config_id]}
1442 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1444 ObjectStorageAllNodesDeployment:
1445 type: OS::Heat::StructuredDeployments
1447 name: ObjectStorageAllNodesDeployment
1448 config: {get_attr: [allNodesConfig, config_id]}
1449 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1451 CephStorageAllNodesDeployment:
1452 type: OS::Heat::StructuredDeployments
1454 name: CephStorageAllNodesDeployment
1455 config: {get_attr: [allNodesConfig, config_id]}
1456 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1458 # All Nodes Validations
1459 AllNodesValidationConfig:
1460 type: OS::TripleO::AllNodes::Validation
1465 - - {get_attr: [Controller, resource.0.external_ip_address]}
1466 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1467 - {get_attr: [Controller, resource.0.storage_ip_address]}
1468 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1469 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1471 ControllerAllNodesValidationDeployment:
1472 type: OS::Heat::StructuredDeployments
1473 depends_on: ControllerAllNodesDeployment
1475 name: ControllerAllNodesValidationDeployment
1476 config: {get_resource: AllNodesValidationConfig}
1477 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1479 ComputeAllNodesValidationDeployment:
1480 type: OS::Heat::StructuredDeployments
1481 depends_on: ComputeAllNodesDeployment
1483 name: ComputeAllNodesValidationDeployment
1484 config: {get_resource: AllNodesValidationConfig}
1485 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1487 BlockStorageAllNodesValidationDeployment:
1488 type: OS::Heat::StructuredDeployments
1489 depends_on: BlockStorageAllNodesDeployment
1491 name: BlockStorageAllNodesValidationDeployment
1492 config: {get_resource: AllNodesValidationConfig}
1493 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1495 ObjectStorageAllNodesValidationDeployment:
1496 type: OS::Heat::StructuredDeployments
1497 depends_on: ObjectStorageAllNodesDeployment
1499 name: ObjectStorageAllNodesValidationDeployment
1500 config: {get_resource: AllNodesValidationConfig}
1501 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1503 CephStorageAllNodesValidationDeployment:
1504 type: OS::Heat::StructuredDeployments
1505 depends_on: CephStorageAllNodesDeployment
1507 name: CephStorageAllNodesValidationDeployment
1508 config: {get_resource: AllNodesValidationConfig}
1509 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1512 type: OS::TripleO::Tasks::UpdateWorkflow
1514 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1515 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1516 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1517 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1518 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1520 deploy_identifier: {get_param: DeployIdentifier}
1521 update_identifier: {get_param: UpdateIdentifier}
1523 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1524 # the nested template may configure each role differently (or not at all)
1525 AllNodesExtraConfig:
1526 type: OS::TripleO::AllNodesExtraConfig
1529 - ComputeAllNodesValidationDeployment
1530 - BlockStorageAllNodesValidationDeployment
1531 - ObjectStorageAllNodesValidationDeployment
1532 - CephStorageAllNodesValidationDeployment
1533 - ControllerAllNodesValidationDeployment
1535 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1536 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1537 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1538 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1539 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1541 # Nested stack deployment runs after all other controller deployments
1542 ControllerNodesPostDeployment:
1543 type: OS::TripleO::ControllerPostDeployment
1544 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1546 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1547 NodeConfigIdentifiers:
1548 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1549 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1550 deployment_identifier: {get_param: DeployIdentifier}
1551 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1553 ComputeNodesPostDeployment:
1554 type: OS::TripleO::ComputePostDeployment
1555 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1557 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1558 NodeConfigIdentifiers:
1559 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1560 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1561 deployment_identifier: {get_param: DeployIdentifier}
1562 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1564 ObjectStorageNodesPostDeployment:
1565 type: OS::TripleO::ObjectStoragePostDeployment
1566 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1568 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1569 NodeConfigIdentifiers:
1570 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1571 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1572 deployment_identifier: {get_param: DeployIdentifier}
1573 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1575 BlockStorageNodesPostDeployment:
1576 type: OS::TripleO::BlockStoragePostDeployment
1577 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1579 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1580 NodeConfigIdentifiers:
1581 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1582 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1583 deployment_identifier: {get_param: DeployIdentifier}
1585 CephStorageNodesPostDeployment:
1586 type: OS::TripleO::CephStoragePostDeployment
1587 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1589 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1590 NodeConfigIdentifiers:
1591 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1592 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1593 deployment_identifier: {get_param: DeployIdentifier}
1594 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1598 description: URL for the Overcloud Keystone service
1599 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1601 description: Keystone Admin VIP endpoint
1602 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1604 description: Controller VIP for public API endpoints
1605 value: {get_attr: [VipMap, net_ip_map, external]}
1607 description: VIP for Aodh API internal endpoint
1608 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1609 CeilometerInternalVip:
1610 description: VIP for Ceilometer API internal endpoint
1611 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1613 description: VIP for Cinder API internal endpoint
1614 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1616 description: VIP for Glance API internal endpoint
1617 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1619 description: VIP for Gnocchi API internal endpoint
1620 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1622 description: VIP for Heat API internal endpoint
1623 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1624 KeystoneInternalVip:
1625 description: VIP for Keystone API internal endpoint
1626 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1628 description: VIP for Neutron API internal endpoint
1629 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1631 description: VIP for Nova API internal endpoint
1632 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1634 description: VIP for Sahara API internal endpoint
1635 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1637 description: VIP for Swift Proxy internal endpoint
1638 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1641 Mapping of the resources with the needed info for their endpoints.
1642 This includes the protocol used, the IP, port and also a full
1643 representation of the URI.
1644 value: {get_attr: [EndpointMap, endpoint_map]}
1647 The content that should be appended to your /etc/hosts if you want to get
1648 hostname-based access to the deployed nodes (useful for testing without
1650 value: {get_attr: [allNodesConfig, hosts_entries]}