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 # This has to be an UUID so for now we generate it outside the template
39 description: The Ceph cluster FSID. Must be a UUID.
42 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
47 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
50 CinderEnableNfsBackend:
52 description: Whether to enable or not the NFS backend for Cinder
56 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.
62 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
63 CinderEnableIscsiBackend:
65 description: Whether to enable or not the Iscsi backend for Cinder
67 CinderEnableRbdBackend:
69 description: Whether to enable or not the Rbd backend for Cinder
73 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
77 description: Should be used for arbitrary ips.
81 description: Enable IPv6 in Corosync
85 description: Set to True to enable debugging on all services.
89 description: Syslog address where HAproxy will send its log
93 description: A list of IP/Hostname allowed to connect to horizon
94 type: comma_delimited_list
96 default: 'REBUILD_PRESERVE_EPHEMERAL'
97 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
99 InternalApiVirtualFixedIPs:
102 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
103 [{'ip_address':'1.2.3.4'}]
107 description: Name of an existing Nova key pair to enable SSH access to the instances
110 - custom_constraint: nova.keypair
113 description: Enable IPv6 features in Memcached.
115 NeutronExternalNetworkBridge:
116 description: Name of bridge used for external network traffic.
119 NeutronBridgeMappings:
121 The OVS logical->physical bridge mappings to use. See the Neutron
122 documentation for details. Defaults to mapping br-ex - the external
123 bridge on hosts - to a physical name 'datacentre' which can be used
124 to create provider networks (and we use this for the default floating
125 network) - if changing this either use different post-install network
126 scripts or be sure to keep 'datacentre' as a mapping network name.
127 type: comma_delimited_list
128 default: "datacentre:br-ex"
129 NeutronControlPlaneID:
132 description: Neutron ID or name for ctlplane network.
133 NeutronEnableIsolatedMetadata:
135 description: If True, DHCP provide metadata route to VM.
137 NeutronEnableTunnelling:
143 Enable/disable the L2 population feature in the Neutron agents.
146 type: comma_delimited_list
147 default: 'datacentre'
149 If set, flat networks to configure in neutron plugins. Defaults to
150 'datacentre' to permit external network creation.
153 description: The tenant network type for Neutron.
154 type: comma_delimited_list
156 description: The password for the neutron service account, used by neutron agents.
159 NeutronPublicInterface:
161 description: What interface to bridge onto br-ex for network nodes.
163 NeutronPublicInterfaceTag:
166 VLAN tag for creating a public VLAN. The tag will be used to
167 create an access port on the exterior bridge for each control plane node,
168 and that port will be given the IP address returned by neutron from the
169 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
170 overcloud.yaml to include the deployment of VLAN ports to the control
173 NeutronComputeAgentMode:
175 description: Agent mode for the neutron-l3-agent on the compute hosts
179 description: Agent mode for the neutron-l3-agent on the controller hosts
183 description: Whether to configure Neutron Distributed Virtual Routers
185 NeutronMetadataProxySharedSecret:
186 description: Shared secret to prevent spoofing
191 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
192 be at least 50 bytes smaller than the MTU on the physical network. This
193 value will be used to set the MTU on the virtual Ethernet device.
194 This value will be used to construct the NeutronDnsmasqOptions, since that
195 will determine the MTU that is assigned to the VM host through DHCP.
201 The tunnel types for the Neutron tenant network.
202 type: comma_delimited_list
203 NeutronTunnelIdRanges:
205 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
206 of GRE tunnel IDs that are available for tenant network allocation
207 default: ["1:4094", ]
208 type: comma_delimited_list
211 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
212 of VXLAN VNI IDs that are available for tenant network allocation
213 default: ["1:4094", ]
214 type: comma_delimited_list
218 The core plugin for Neutron. The value should be the entrypoint to be loaded
219 from neutron.core_plugins namespace.
221 NeutronServicePlugins:
222 default: "router,qos"
224 Comma-separated list of service plugin entrypoints to be loaded from the
225 neutron.service_plugins namespace.
226 type: comma_delimited_list
228 default: "vxlan,vlan,flat,gre"
230 Comma-separated list of network type driver entrypoints to be loaded.
231 type: comma_delimited_list
232 NeutronMechanismDrivers:
233 default: 'openvswitch'
235 The mechanism drivers for the Neutron tenant network.
236 type: comma_delimited_list
237 NeutronPluginExtensions:
238 default: "qos,port_security"
240 Comma-separated list of extensions enabled for the Neutron plugin.
241 type: comma_delimited_list
242 NeutronAgentExtensions:
245 Comma-separated list of extensions enabled for the Neutron agents.
246 type: comma_delimited_list
247 NeutronAllowL3AgentFailover:
249 description: Allow automatic l3-agent failover
253 description: Whether to enable l3-agent HA
255 NeutronDhcpAgentsPerNetwork:
258 description: The number of neutron dhcp agents to schedule per network
261 description: Enable IPv6 features in Nova
264 description: The password for the nova service account, used by nova-api.
269 description: Comma-separated list of ntp servers
270 type: comma_delimited_list
273 description: Should MongoDb journaling be disabled
277 description: Enable IPv6 if MongoDB VIP is IPv6
279 PublicVirtualFixedIPs:
282 Control the IP allocation for the PublicVirtualInterface port. E.g.
283 [{'ip_address':'1.2.3.4'}]
288 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
291 description: The username for RabbitMQ
294 description: The password for RabbitMQ
300 Rabbit client subscriber parameter to specify
301 an SSL connection to the RabbitMQ host.
305 description: Set rabbit subscriber port, change this if using SSL
307 # We need to set this as string because 'unlimited' is a valid setting
310 description: Configures RabbitMQ FD limit
314 description: Enable IPv6 in RabbitMQ
317 description: The password for Redis
320 SnmpdReadonlyUserName:
321 default: ro_snmp_user
322 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
324 SnmpdReadonlyUserPassword:
325 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
328 StorageVirtualFixedIPs:
331 Control the IP allocation for the StorageVirtualInterface port. E.g.
332 [{'ip_address':'1.2.3.4'}]
334 StorageMgmtVirtualFixedIPs:
337 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
338 [{'ip_address':'1.2.3.4'}]
342 description: The timezone to be set on nodes.
345 default: 'localdomain'
348 The DNS domain used for the hosts. This should match the dhcp_domain
349 configured in the Undercloud neutron. Defaults to localdomain.
353 Extra properties or metadata passed to Nova for the created nodes in
354 the overcloud. It's accessible via the Nova metadata API.
357 # Controller-specific params
358 CinderLVMLoopDeviceSize:
360 description: The size of the loopback file used by the cinder LVM driver.
362 CinderNfsMountOptions:
365 Mount options for NFS mounts used by Cinder NFS backend. Effective
366 when CinderEnableNfsBackend is true.
371 NFS servers used by Cinder NFS backend. Effective when
372 CinderEnableNfsBackend is true.
373 type: comma_delimited_list
375 description: The password for the cinder service account, used by cinder-api.
380 description: The iSCSI helper to use with cinder.
387 controllerExtraConfig:
390 Controller specific configuration to inject into the cluster. Same
391 structure as ExtraConfig.
395 default: overcloud-full
397 - custom_constraint: glance.image
398 OvercloudControlFlavor:
399 description: Flavor for control nodes to request when deploying.
403 - custom_constraint: nova.flavor
404 ControlVirtualInterface:
406 description: Interface where virtual ip will be assigned.
410 description: Whether to enable fencing in Pacemaker or not.
414 description: Whether to use Galera instead of regular MariaDB.
416 ControllerEnableCephStorage:
418 description: Whether to deploy Ceph Storage (OSD) on the Controller
420 ControllerEnableSwiftStorage:
422 description: Whether to enable Swift Storage on the Controller
424 ControllerSchedulerHints:
426 description: Optional scheduler hints to pass to nova
431 Additional configuration to inject into the cluster. The format required
432 may be implementation specific, e.g puppet hieradata. Any role specific
433 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
438 Pacemaker fencing configuration. The JSON should have
439 the following structure:
443 "agent": "AGENT_NAME",
444 "host_mac": "HOST_MAC_ADDRESS",
445 "params": {"PARAM_NAME": "PARAM_VALUE"}
453 "agent": "fence_xvm",
454 "host_mac": "52:54:00:aa:bb:cc",
456 "multicast_address": "225.0.0.12",
457 "port": "baremetal_0",
459 "manage_key_file": true,
460 "key_file": "/etc/fence_xvm.key",
461 "key_file_password": "abcdef"
468 description: The filepath of the file to use for logging messages from Glance.
471 GlanceNotifierStrategy:
472 description: Strategy to use for Glance notification queue
476 description: The password for the glance service account, used by the glance services.
481 description: The short name of the Glance backend to use. Should be one
482 of swift, rbd or file
485 - allowed_values: ['swift', 'file', 'rbd']
487 description: The password for the Heat service account, used by the Heat services.
490 HeatStackDomainAdminPassword:
491 description: Password for heat_stack_domain_admin user.
494 InstanceNameTemplate:
495 default: 'instance-%08x'
496 description: Template string to be used to generate instance names
500 description: Whether to manage IPtables rules.
504 description: Whether IPtables rules should be purged before setting up the ones.
506 MysqlInnodbBufferPoolSize:
508 Specifies the size of the buffer pool in megabytes. Setting to
509 zero should be interpreted as "no value" and will defer to the
514 description: Configures MySQL max_connections config setting
517 NeutronDnsmasqOptions:
518 default: 'dhcp-option-force=26,%MTU%'
520 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
521 to be set to the value of NeutronTenantMtu, which should be set to account
524 NeutronPublicInterfaceDefaultRoute:
526 description: A custom default route for the NeutronPublicInterface.
528 NeutronPublicInterfaceIP:
530 description: A custom IP address to put onto the NeutronPublicInterface.
532 NeutronPublicInterfaceRawDevice:
534 description: If set, the public interface is a vlan with this device as the raw device.
536 PublicVirtualInterface:
539 Specifies the interface where the public-facing virtual ip will be assigned.
540 This should be int_public when a VLAN is being used.
543 description: A random string to be used as a salt when hashing to determine mappings in the ring.
547 description: The password for the swift service account, used by the swift proxy services.
552 description: Value of mount_check in Swift account/container/object -server.conf
557 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
560 description: Partition Power to use when building Swift rings
565 description: How many replicas to use in the swift rings.
567 description: The password for the sahara service account.
571 # Compute-specific params
572 CeilometerComputeAgent:
573 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
577 - allowed_values: ['', Present]
581 HypervisorNeutronPhysicalBridge:
584 An OVS bridge to create on each hypervisor. This defaults to br-ex the
585 same as the control plane nodes, as we have a uniform configuration of
586 the openvswitch agent. Typically should not need to be changed.
588 HypervisorNeutronPublicInterface:
590 description: What interface to add to the HypervisorNeutronPhysicalBridge.
592 NeutronNetworkVLANRanges:
593 default: 'datacentre:1:1000'
595 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
596 Neutron documentation for permitted values. Defaults to permitting any
597 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
598 type: comma_delimited_list
601 default: libvirt.LibvirtDriver
602 NovaComputeExtraConfig:
605 NovaCompute specific configuration to inject into the cluster. Same
606 structure as ExtraConfig.
608 NovaComputeLibvirtType:
611 NovaComputeLibvirtVifDriver:
613 description: Libvirt VIF driver configuration for the network
615 NovaComputeSchedulerHints:
617 description: Optional scheduler hints to pass to nova
619 NovaEnableRbdBackend:
621 description: Whether to enable or not the Rbd backend for Nova
625 default: overcloud-full
627 - custom_constraint: glance.image
630 description: Name of integration bridge used by Open vSwitch
632 NovaSecurityGroupAPI:
634 description: The full class name of the security API class
636 OvercloudComputeFlavor:
637 description: Use this flavor
641 - custom_constraint: nova.flavor
644 NeutronTenantNetwork: tenant
645 CeilometerApiNetwork: internal_api
646 AodhApiNetwork: internal_api
647 MongoDbNetwork: internal_api
648 CinderApiNetwork: internal_api
649 CinderIscsiNetwork: storage
650 GlanceApiNetwork: storage
651 GlanceRegistryNetwork: internal_api
652 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
653 KeystonePublicApiNetwork: internal_api
654 NeutronApiNetwork: internal_api
655 HeatApiNetwork: internal_api
656 NovaApiNetwork: internal_api
657 NovaMetadataNetwork: internal_api
658 NovaVncProxyNetwork: internal_api
659 SwiftMgmtNetwork: storage_mgmt
660 SwiftProxyNetwork: storage
661 SaharaApiNetwork: internal_api
662 HorizonNetwork: internal_api
663 MemcachedNetwork: internal_api
664 RabbitMqNetwork: internal_api
665 RedisNetwork: internal_api
666 MysqlNetwork: internal_api
667 CephClusterNetwork: storage_mgmt
668 CephPublicNetwork: storage
669 ControllerHostnameResolveNetwork: internal_api
670 ComputeHostnameResolveNetwork: internal_api
671 BlockStorageHostnameResolveNetwork: internal_api
672 ObjectStorageHostnameResolveNetwork: internal_api
673 CephStorageHostnameResolveNetwork: storage
674 description: Mapping of service_name -> network name. Typically set
675 via parameter_defaults in the resource registry.
680 - OS::TripleO::Services::Keystone
681 description: A list of service resources (configured in the Heat
682 resource_registry) which represent nested stacks
683 for each service that should get installed on the Controllers.
684 type: comma_delimited_list
686 # Block storage specific parameters
691 default: overcloud-full
693 OvercloudBlockStorageFlavor:
694 description: Flavor for block storage nodes to request when deploying.
698 - custom_constraint: nova.flavor
699 BlockStorageExtraConfig:
702 BlockStorage specific configuration to inject into the cluster. Same
703 structure as ExtraConfig.
705 BlockStorageSchedulerHints:
707 description: Optional scheduler hints to pass to nova
711 # Object storage specific parameters
715 OvercloudSwiftStorageFlavor:
716 description: Flavor for Swift storage nodes to request when deploying.
720 - custom_constraint: nova.flavor
722 default: overcloud-full
724 ObjectStorageExtraConfig:
727 ObjectStorage specific configuration to inject into the cluster. Same
728 structure as ExtraConfig.
730 ObjectStorageSchedulerHints:
732 description: Optional scheduler hints to pass to nova
735 # Ceph storage specific parameters
740 default: overcloud-full
742 OvercloudCephStorageFlavor:
744 description: Flavor for Ceph storage nodes to request when deploying.
747 - custom_constraint: nova.flavor
748 CephStorageExtraConfig:
751 CephStorage specific configuration to inject into the cluster. Same
752 structure as ExtraConfig.
754 CephStorageSchedulerHints:
756 description: Optional scheduler hints to pass to nova
760 # Hostname format for each role
761 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
762 # and %stackname% is replaced with OS::stack_name in the template below.
763 # If you want to use the heat generated names, pass '' (empty string).
764 ControllerHostnameFormat:
766 description: Format for Controller node hostnames
767 default: '%stackname%-controller-%index%'
768 ComputeHostnameFormat:
770 description: Format for Compute node hostnames
771 default: '%stackname%-novacompute-%index%'
772 BlockStorageHostnameFormat:
774 description: Format for BlockStorage node hostnames
775 default: '%stackname%-blockstorage-%index%'
776 ObjectStorageHostnameFormat:
778 description: Format for SwiftStorage node hostnames
779 default: '%stackname%-objectstorage-%index%'
780 CephStorageHostnameFormat:
782 description: Format for CephStorage node hostnames
783 default: '%stackname%-cephstorage-%index%'
785 # Identifiers to trigger tasks on nodes
790 Setting to a previously unused value during stack-update will trigger
791 package update on all nodes
796 Setting this to a unique value will re-run any deployment tasks which
797 perform configuration on a Heat stack-update.
799 # If you want to remove a specific node from a resource group, you can pass
800 # the node name or id as a <Group>RemovalPolicies parameter, for example:
801 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
802 ControllerRemovalPolicies:
806 List of resources to be removed from ControllerResourceGroup when
807 doing an update which requires removal of specific resources.
808 ComputeRemovalPolicies:
812 List of resources to be removed from ComputeResourceGroup when
813 doing an update which requires removal of specific resources.
814 BlockStorageRemovalPolicies:
818 List of resources to be removed from BlockStorageResourceGroup when
819 doing an update which requires removal of specific resources.
820 ObjectStorageRemovalPolicies:
824 List of resources to be removed from ObjectStorageResourceGroup when
825 doing an update which requires removal of specific resources.
826 CephStorageRemovalPolicies:
830 List of resources to be removed from CephStorageResourceGroup when
831 doing an update which requires removal of specific resources.
836 HeatAuthEncryptionKey:
837 type: OS::Heat::RandomString
840 type: OS::Heat::RandomString
845 type: OS::Heat::RandomString
850 type: OS::TripleO::EndpointMap
852 CloudName: {get_param: CloudName}
853 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
854 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
855 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
856 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
857 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
858 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
859 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
860 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
861 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
862 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
863 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
864 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
865 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
867 ControllerServiceChain:
868 type: OS::TripleO::Services
870 Services: {get_param: ControllerServices}
871 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
872 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
875 type: OS::Heat::ResourceGroup
878 count: {get_param: ControllerCount}
879 removal_policies: {get_param: ControllerRemovalPolicies}
881 type: OS::TripleO::Controller
883 AdminPassword: {get_param: AdminPassword}
884 AodhPassword: {get_param: AodhPassword}
885 CeilometerBackend: {get_param: CeilometerBackend}
886 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
887 CeilometerPassword: {get_param: CeilometerPassword}
888 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
889 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
890 CinderNfsServers: {get_param: CinderNfsServers}
891 CinderPassword: {get_param: CinderPassword}
892 CinderISCSIHelper: {get_param: CinderISCSIHelper}
893 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
894 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
895 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
896 CloudDomain: {get_param: CloudDomain}
897 ControlVirtualInterface: {get_param: ControlVirtualInterface}
898 ControllerExtraConfig: {get_param: controllerExtraConfig}
899 CorosyncIPv6: {get_param: CorosyncIPv6}
900 Debug: {get_param: Debug}
901 EnableFencing: {get_param: EnableFencing}
902 ManageFirewall: {get_param: ManageFirewall}
903 PurgeFirewallRules: {get_param: PurgeFirewallRules}
904 EnableGalera: {get_param: EnableGalera}
905 EnableCephStorage: {get_param: ControllerEnableCephStorage}
906 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
907 ExtraConfig: {get_param: ExtraConfig}
908 FencingConfig: {get_param: FencingConfig}
909 Flavor: {get_param: OvercloudControlFlavor}
910 GlancePassword: {get_param: GlancePassword}
911 GlanceBackend: {get_param: GlanceBackend}
912 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
913 GlanceLogFile: {get_param: GlanceLogFile}
914 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
915 HeatPassword: {get_param: HeatPassword}
916 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
917 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
918 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
919 HorizonSecret: {get_resource: HorizonSecret}
920 Image: {get_param: controllerImage}
921 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
922 InstanceNameTemplate: {get_param: InstanceNameTemplate}
923 KeyName: {get_param: KeyName}
924 MemcachedIPv6: {get_param: MemcachedIPv6}
925 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
926 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
927 MysqlMaxConnections: {get_param: MysqlMaxConnections}
928 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
929 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
930 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
931 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
932 NeutronTenantMtu: {get_param: NeutronTenantMtu}
933 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
934 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
935 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
936 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
937 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
938 NeutronPublicInterface: {get_param: NeutronPublicInterface}
939 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
940 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
941 NeutronPassword: {get_param: NeutronPassword}
942 NeutronDnsmasqOptions:
944 template: {get_param: NeutronDnsmasqOptions}
946 '%MTU%': {get_param: NeutronTenantMtu}
947 NeutronDVR: {get_param: NeutronDVR}
948 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
949 NeutronAgentMode: {get_param: NeutronAgentMode}
950 NeutronCorePlugin: {get_param: NeutronCorePlugin}
951 NeutronServicePlugins: {get_param: NeutronServicePlugins}
952 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
953 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
954 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
955 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
956 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
957 NeutronL3HA: {get_param: NeutronL3HA}
958 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
959 NeutronNetworkType: {get_param: NeutronNetworkType}
960 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
961 NovaIPv6: {get_param: NovaIPv6}
962 NovaPassword: {get_param: NovaPassword}
963 NtpServer: {get_param: NtpServer}
964 MongoDbNoJournal: {get_param: MongoDbNoJournal}
965 MongoDbIPv6: {get_param: MongoDbIPv6}
966 PcsdPassword: {get_resource: PcsdPassword}
967 PublicVirtualInterface: {get_param: PublicVirtualInterface}
968 RabbitPassword: {get_param: RabbitPassword}
969 RabbitUserName: {get_param: RabbitUserName}
970 RabbitCookie: {get_attr: [RabbitCookie, value]}
971 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
972 RabbitClientPort: {get_param: RabbitClientPort}
973 RabbitFDLimit: {get_param: RabbitFDLimit}
974 RabbitIPv6: {get_param: RabbitIPv6}
975 RedisPassword: {get_param: RedisPassword}
976 SaharaPassword: {get_param: SaharaPassword}
977 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
978 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
979 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
980 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
981 SwiftHashSuffix: {get_param: SwiftHashSuffix}
982 SwiftMountCheck: {get_param: SwiftMountCheck}
983 SwiftMinPartHours: {get_param: SwiftMinPartHours}
984 SwiftPartPower: {get_param: SwiftPartPower}
985 SwiftPassword: {get_param: SwiftPassword}
986 SwiftReplicas: { get_param: SwiftReplicas}
987 TimeZone: {get_param: TimeZone}
988 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
989 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
990 ServiceNetMap: {get_param: ServiceNetMap}
991 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
992 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
993 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
994 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
995 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
996 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
997 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
998 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
999 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1000 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1001 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1002 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1003 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1004 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1005 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1006 UpdateIdentifier: {get_param: UpdateIdentifier}
1009 template: {get_param: ControllerHostnameFormat}
1011 '%stackname%': {get_param: 'OS::stack_name'}
1012 NodeIndex: '%index%'
1013 ServerMetadata: {get_param: ServerMetadata}
1014 SchedulerHints: {get_param: ControllerSchedulerHints}
1015 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
1018 type: OS::Heat::ResourceGroup
1019 depends_on: Networks
1021 count: {get_param: ComputeCount}
1022 removal_policies: {get_param: ComputeRemovalPolicies}
1024 type: OS::TripleO::Compute
1026 AdminPassword: {get_param: AdminPassword}
1027 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1028 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1029 CeilometerPassword: {get_param: CeilometerPassword}
1030 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1031 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1032 Debug: {get_param: Debug}
1033 ExtraConfig: {get_param: ExtraConfig}
1034 Flavor: {get_param: OvercloudComputeFlavor}
1035 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1036 Image: {get_param: NovaImage}
1037 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1038 KeyName: {get_param: KeyName}
1039 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1040 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1041 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1042 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1043 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1044 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1045 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1046 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1047 NeutronNetworkType: {get_param: NeutronNetworkType}
1048 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1049 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1050 NeutronPassword: {get_param: NeutronPassword}
1051 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1052 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1053 NeutronDVR: {get_param: NeutronDVR}
1054 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1055 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1056 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1057 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1058 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1059 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1060 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1061 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1062 # L3 HA and Failover is not relevant for Computes, should be removed
1063 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1064 NeutronL3HA: {get_param: NeutronL3HA}
1065 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1066 NovaComputeDriver: {get_param: NovaComputeDriver}
1067 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1068 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1069 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1070 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1071 NovaIPv6: {get_param: NovaIPv6}
1072 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1073 NovaPassword: {get_param: NovaPassword}
1074 NovaOVSBridge: {get_param: NovaOVSBridge}
1075 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1076 NtpServer: {get_param: NtpServer}
1077 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1078 RabbitPassword: {get_param: RabbitPassword}
1079 RabbitUserName: {get_param: RabbitUserName}
1080 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1081 RabbitClientPort: {get_param: RabbitClientPort}
1082 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1083 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1084 ServiceNetMap: {get_param: ServiceNetMap}
1085 TimeZone: {get_param: TimeZone}
1086 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1087 UpdateIdentifier: {get_param: UpdateIdentifier}
1090 template: {get_param: ComputeHostnameFormat}
1092 '%stackname%': {get_param: 'OS::stack_name'}
1093 CloudDomain: {get_param: CloudDomain}
1094 ServerMetadata: {get_param: ServerMetadata}
1095 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1096 NodeIndex: '%index%'
1099 type: OS::Heat::ResourceGroup
1100 depends_on: Networks
1102 count: {get_param: BlockStorageCount}
1103 removal_policies: {get_param: BlockStorageRemovalPolicies}
1105 type: OS::TripleO::BlockStorage
1107 Debug: {get_param: Debug}
1108 Image: {get_param: BlockStorageImage}
1109 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1110 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1111 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1112 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1113 CinderPassword: {get_param: CinderPassword}
1114 KeyName: {get_param: KeyName}
1115 Flavor: {get_param: OvercloudBlockStorageFlavor}
1116 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1117 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1118 RabbitPassword: {get_param: RabbitPassword}
1119 RabbitUserName: {get_param: RabbitUserName}
1120 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1121 RabbitClientPort: {get_param: RabbitClientPort}
1122 TimeZone: {get_param: TimeZone}
1123 NtpServer: {get_param: NtpServer}
1124 UpdateIdentifier: {get_param: UpdateIdentifier}
1127 template: {get_param: BlockStorageHostnameFormat}
1129 '%stackname%': {get_param: 'OS::stack_name'}
1130 ServiceNetMap: {get_param: ServiceNetMap}
1131 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1132 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1133 ExtraConfig: {get_param: ExtraConfig}
1134 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1135 CloudDomain: {get_param: CloudDomain}
1136 ServerMetadata: {get_param: ServerMetadata}
1137 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1138 NodeIndex: '%index%'
1141 type: OS::Heat::ResourceGroup
1142 depends_on: Networks
1144 count: {get_param: ObjectStorageCount}
1145 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1147 type: OS::TripleO::ObjectStorage
1149 KeyName: {get_param: KeyName}
1150 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1151 HashSuffix: {get_param: SwiftHashSuffix}
1152 MountCheck: {get_param: SwiftMountCheck}
1153 MinPartHours: {get_param: SwiftMinPartHours}
1154 PartPower: {get_param: SwiftPartPower}
1155 Image: {get_param: SwiftStorageImage}
1156 Replicas: { get_param: SwiftReplicas}
1157 TimeZone: {get_param: TimeZone}
1158 NtpServer: {get_param: NtpServer}
1159 UpdateIdentifier: {get_param: UpdateIdentifier}
1160 ServiceNetMap: {get_param: ServiceNetMap}
1163 template: {get_param: ObjectStorageHostnameFormat}
1165 '%stackname%': {get_param: 'OS::stack_name'}
1166 ExtraConfig: {get_param: ExtraConfig}
1167 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1168 CloudDomain: {get_param: CloudDomain}
1169 ServerMetadata: {get_param: ServerMetadata}
1170 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1171 NodeIndex: '%index%'
1174 type: OS::Heat::ResourceGroup
1175 depends_on: Networks
1177 count: {get_param: CephStorageCount}
1178 removal_policies: {get_param: CephStorageRemovalPolicies}
1180 type: OS::TripleO::CephStorage
1182 Image: {get_param: CephStorageImage}
1183 KeyName: {get_param: KeyName}
1184 Flavor: {get_param: OvercloudCephStorageFlavor}
1185 NtpServer: {get_param: NtpServer}
1186 ServiceNetMap: {get_param: ServiceNetMap}
1187 TimeZone: {get_param: TimeZone}
1188 UpdateIdentifier: {get_param: UpdateIdentifier}
1191 template: {get_param: CephStorageHostnameFormat}
1193 '%stackname%': {get_param: 'OS::stack_name'}
1194 ExtraConfig: {get_param: ExtraConfig}
1195 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1196 CloudDomain: {get_param: CloudDomain}
1197 ServerMetadata: {get_param: ServerMetadata}
1198 SchedulerHints: {get_param: CephStorageSchedulerHints}
1199 NodeIndex: '%index%'
1201 ControllerIpListMap:
1202 type: OS::TripleO::Network::Ports::NetIpListMap
1204 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1205 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1206 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1207 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1208 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1209 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1210 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1213 type: OS::TripleO::AllNodes::SoftwareConfig
1215 compute_hosts: {get_attr: [Compute, hosts_entry]}
1216 controller_hosts: {get_attr: [Controller, hosts_entry]}
1217 controller_ips: {get_attr: [Controller, ip_address]}
1218 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1219 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1220 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1221 controller_names: {get_attr: [Controller, hostname]}
1222 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1223 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1224 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1225 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1226 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1227 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1228 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1229 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1230 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1231 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1232 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1233 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1234 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1235 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1236 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1237 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1238 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1239 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1240 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1241 DeployIdentifier: {get_param: DeployIdentifier}
1242 UpdateIdentifier: {get_param: UpdateIdentifier}
1245 type: OS::Heat::RandomString
1249 MysqlClusterUniquePart:
1250 type: OS::Heat::RandomString
1255 type: OS::Heat::RandomString
1258 salt: {get_param: RabbitCookieSalt}
1260 # creates the network architecture
1262 type: OS::TripleO::Network
1265 type: OS::Neutron::Port
1266 depends_on: Networks
1268 name: control_virtual_ip
1269 network: {get_param: NeutronControlPlaneID}
1270 fixed_ips: {get_param: ControlFixedIPs}
1271 replacement_policy: AUTO
1274 depends_on: Networks
1275 type: OS::TripleO::Network::Ports::RedisVipPort
1277 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1278 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1279 PortName: redis_virtual_ip
1280 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1283 # The public VIP is on the External net, falls back to ctlplane
1285 depends_on: Networks
1286 type: OS::TripleO::Network::Ports::ExternalVipPort
1288 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1289 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1290 PortName: public_virtual_ip
1291 FixedIPs: {get_param: PublicVirtualFixedIPs}
1293 InternalApiVirtualIP:
1294 depends_on: Networks
1295 type: OS::TripleO::Network::Ports::InternalApiVipPort
1297 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1298 PortName: internal_api_virtual_ip
1299 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1302 depends_on: Networks
1303 type: OS::TripleO::Network::Ports::StorageVipPort
1305 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1306 PortName: storage_virtual_ip
1307 FixedIPs: {get_param: StorageVirtualFixedIPs}
1309 StorageMgmtVirtualIP:
1310 depends_on: Networks
1311 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1313 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1314 PortName: storage_management_virtual_ip
1315 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1318 type: OS::TripleO::Network::Ports::NetVipMap
1320 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1321 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1322 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1323 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1324 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1325 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1326 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1327 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1328 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1329 # No tenant or management VIP required
1332 type: OS::TripleO::VipConfig
1335 type: OS::Heat::StructuredDeployments
1338 config: {get_resource: VipConfig}
1339 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1341 # service VIP mappings
1342 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1343 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1344 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1345 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1346 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1347 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1348 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1349 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1350 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1351 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1352 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1353 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1354 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1355 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1356 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1357 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1358 # direct configuration of Virtual IPs for each network
1359 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1360 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1361 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1362 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1363 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1364 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1366 ControllerBootstrapNodeConfig:
1367 type: OS::TripleO::BootstrapNode::SoftwareConfig
1369 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1370 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1372 ControllerBootstrapNodeDeployment:
1373 type: OS::Heat::StructuredDeployments
1375 name: ControllerBootstrapNodeDeployment
1376 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1377 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1379 ControllerSwiftDeployment:
1380 type: OS::Heat::StructuredDeployments
1382 name: ControllerSwiftDeployment
1383 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1384 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1386 ObjectStorageSwiftDeployment:
1387 type: OS::Heat::StructuredDeployments
1389 name: ObjectStorageSwiftDeployment
1390 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1391 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1393 SwiftDevicesAndProxyConfig:
1394 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1396 controller_swift_devices: {get_attr: [Controller, swift_device]}
1397 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1398 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1400 ComputeCephDeployment:
1401 type: OS::Heat::StructuredDeployments
1403 name: ComputeCephDeployment
1404 config: {get_attr: [CephClusterConfig, config_id]}
1405 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1407 ControllerCephDeployment:
1408 type: OS::Heat::StructuredDeployments
1410 name: ControllerCephDeployment
1411 config: {get_attr: [CephClusterConfig, config_id]}
1412 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1414 CephStorageCephDeployment:
1415 type: OS::Heat::StructuredDeployments
1417 name: CephStorageCephDeployment
1418 config: {get_attr: [CephClusterConfig, config_id]}
1419 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1422 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1424 ceph_storage_count: {get_param: CephStorageCount}
1425 ceph_fsid: {get_param: CephClusterFSID}
1426 ceph_mon_key: {get_param: CephMonKey}
1427 ceph_admin_key: {get_param: CephAdminKey}
1428 ceph_client_key: {get_param: CephClientKey}
1429 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1430 ceph_mon_names: {get_attr: [Controller, hostname]}
1431 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1433 ControllerClusterConfig:
1434 type: OS::Heat::StructuredConfig
1436 group: os-apply-config
1439 nodes: {get_attr: [Controller, corosync_node]}
1443 nodes: {get_attr: [Controller, hostname]}
1445 nodes: {get_attr: [Controller, corosync_node]}
1447 nodes: {get_attr: [Controller, corosync_node]}
1449 ControllerClusterDeployment:
1450 type: OS::Heat::StructuredDeployments
1452 name: ControllerClusterDeployment
1453 config: {get_resource: ControllerClusterConfig}
1454 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1456 ControllerAllNodesDeployment:
1457 type: OS::Heat::StructuredDeployments
1459 name: ControllerAllNodesDeployment
1460 config: {get_attr: [allNodesConfig, config_id]}
1461 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1463 ComputeAllNodesDeployment:
1464 type: OS::Heat::StructuredDeployments
1466 name: ComputeAllNodesDeployment
1467 config: {get_attr: [allNodesConfig, config_id]}
1468 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1470 BlockStorageAllNodesDeployment:
1471 type: OS::Heat::StructuredDeployments
1473 name: BlockStorageAllNodesDeployment
1474 config: {get_attr: [allNodesConfig, config_id]}
1475 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1477 ObjectStorageAllNodesDeployment:
1478 type: OS::Heat::StructuredDeployments
1480 name: ObjectStorageAllNodesDeployment
1481 config: {get_attr: [allNodesConfig, config_id]}
1482 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1484 CephStorageAllNodesDeployment:
1485 type: OS::Heat::StructuredDeployments
1487 name: CephStorageAllNodesDeployment
1488 config: {get_attr: [allNodesConfig, config_id]}
1489 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1491 # All Nodes Validations
1492 AllNodesValidationConfig:
1493 type: OS::TripleO::AllNodes::Validation
1498 - - {get_attr: [Controller, resource.0.external_ip_address]}
1499 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1500 - {get_attr: [Controller, resource.0.storage_ip_address]}
1501 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1502 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1504 ControllerAllNodesValidationDeployment:
1505 type: OS::Heat::StructuredDeployments
1506 depends_on: ControllerAllNodesDeployment
1508 name: ControllerAllNodesValidationDeployment
1509 config: {get_resource: AllNodesValidationConfig}
1510 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1512 ComputeAllNodesValidationDeployment:
1513 type: OS::Heat::StructuredDeployments
1514 depends_on: ComputeAllNodesDeployment
1516 name: ComputeAllNodesValidationDeployment
1517 config: {get_resource: AllNodesValidationConfig}
1518 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1520 BlockStorageAllNodesValidationDeployment:
1521 type: OS::Heat::StructuredDeployments
1522 depends_on: BlockStorageAllNodesDeployment
1524 name: BlockStorageAllNodesValidationDeployment
1525 config: {get_resource: AllNodesValidationConfig}
1526 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1528 ObjectStorageAllNodesValidationDeployment:
1529 type: OS::Heat::StructuredDeployments
1530 depends_on: ObjectStorageAllNodesDeployment
1532 name: ObjectStorageAllNodesValidationDeployment
1533 config: {get_resource: AllNodesValidationConfig}
1534 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1536 CephStorageAllNodesValidationDeployment:
1537 type: OS::Heat::StructuredDeployments
1538 depends_on: CephStorageAllNodesDeployment
1540 name: CephStorageAllNodesValidationDeployment
1541 config: {get_resource: AllNodesValidationConfig}
1542 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1545 type: OS::TripleO::Tasks::UpdateWorkflow
1547 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1548 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1549 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1550 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1551 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1553 deploy_identifier: {get_param: DeployIdentifier}
1554 update_identifier: {get_param: UpdateIdentifier}
1556 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1557 # the nested template may configure each role differently (or not at all)
1558 AllNodesExtraConfig:
1559 type: OS::TripleO::AllNodesExtraConfig
1562 - ComputeAllNodesValidationDeployment
1563 - BlockStorageAllNodesValidationDeployment
1564 - ObjectStorageAllNodesValidationDeployment
1565 - CephStorageAllNodesValidationDeployment
1566 - ControllerAllNodesValidationDeployment
1568 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1569 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1570 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1571 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1572 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1574 # Nested stack deployment runs after all other controller deployments
1575 ControllerNodesPostDeployment:
1576 type: OS::TripleO::ControllerPostDeployment
1577 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1579 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1580 NodeConfigIdentifiers:
1581 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1582 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1583 deployment_identifier: {get_param: DeployIdentifier}
1584 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1586 ComputeNodesPostDeployment:
1587 type: OS::TripleO::ComputePostDeployment
1588 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1590 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1591 NodeConfigIdentifiers:
1592 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1593 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1594 deployment_identifier: {get_param: DeployIdentifier}
1596 ObjectStorageNodesPostDeployment:
1597 type: OS::TripleO::ObjectStoragePostDeployment
1598 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1600 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1601 NodeConfigIdentifiers:
1602 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1603 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1604 deployment_identifier: {get_param: DeployIdentifier}
1606 BlockStorageNodesPostDeployment:
1607 type: OS::TripleO::BlockStoragePostDeployment
1608 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1610 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1611 NodeConfigIdentifiers:
1612 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1613 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1614 deployment_identifier: {get_param: DeployIdentifier}
1616 CephStorageNodesPostDeployment:
1617 type: OS::TripleO::CephStoragePostDeployment
1618 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1620 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1621 NodeConfigIdentifiers:
1622 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1623 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1624 deployment_identifier: {get_param: DeployIdentifier}
1628 description: URL for the Overcloud Keystone service
1629 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1631 description: Keystone Admin VIP endpoint
1632 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1634 description: Controller VIP for public API endpoints
1635 value: {get_attr: [VipMap, net_ip_map, external]}
1637 description: VIP for Aodh API internal endpoint
1638 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1639 CeilometerInternalVip:
1640 description: VIP for Ceilometer API internal endpoint
1641 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1643 description: VIP for Cinder API internal endpoint
1644 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1646 description: VIP for Glance API internal endpoint
1647 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1649 description: VIP for Heat API internal endpoint
1650 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1651 KeystoneInternalVip:
1652 description: VIP for Keystone API internal endpoint
1653 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1655 description: VIP for Neutron API internal endpoint
1656 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1658 description: VIP for Nova API internal endpoint
1659 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1661 description: VIP for Sahara API internal endpoint
1662 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1664 description: VIP for Swift Proxy internal endpoint
1665 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1668 Mapping of the resources with the needed info for their endpoints.
1669 This includes the protocol used, the IP, port and also a full
1670 representation of the URI.
1671 value: {get_attr: [EndpointMap, endpoint_map]}
1674 The content that should be appended to your /etc/hosts if you want to get
1675 hostname-based access to the deployed nodes (useful for testing without
1677 value: {get_attr: [allNodesConfig, hosts_entries]}