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.
347 CinderNfsMountOptions:
350 Mount options for NFS mounts used by Cinder NFS backend. Effective
351 when CinderEnableNfsBackend is true.
356 NFS servers used by Cinder NFS backend. Effective when
357 CinderEnableNfsBackend is true.
358 type: comma_delimited_list
360 description: The password for the cinder service account, used by cinder-api.
365 description: The iSCSI helper to use with cinder.
372 controllerExtraConfig:
375 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
379 default: overcloud-full
381 - custom_constraint: glance.image
382 OvercloudControlFlavor:
383 description: Flavor for control nodes to request when deploying.
387 - custom_constraint: nova.flavor
388 ControlVirtualInterface:
390 description: Interface where virtual ip will be assigned.
394 description: Whether to enable fencing in Pacemaker or not.
398 description: Whether to use Galera instead of regular MariaDB.
400 ControllerEnableCephStorage:
402 description: Whether to deploy Ceph Storage (OSD) on the Controller
404 ControllerEnableSwiftStorage:
406 description: Whether to enable Swift Storage on the Controller
408 ControllerSchedulerHints:
410 description: Optional scheduler hints to pass to nova
415 Additional configuration to inject into the cluster. The format required
416 may be implementation specific, e.g puppet hieradata. Any role specific
417 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
422 Pacemaker fencing configuration. The JSON should have
423 the following structure:
427 "agent": "AGENT_NAME",
428 "host_mac": "HOST_MAC_ADDRESS",
429 "params": {"PARAM_NAME": "PARAM_VALUE"}
437 "agent": "fence_xvm",
438 "host_mac": "52:54:00:aa:bb:cc",
440 "multicast_address": "225.0.0.12",
441 "port": "baremetal_0",
443 "manage_key_file": true,
444 "key_file": "/etc/fence_xvm.key",
445 "key_file_password": "abcdef"
453 description: The short name of the Gnocchi backend to use. Should be one
454 of swift, rbd or file
457 - allowed_values: ['swift', 'file', 'rbd']
458 GnocchiIndexerBackend:
460 description: The short name of the Gnocchi indexer backend to use.
463 description: The password for the gnocchi service account.
467 description: The password for the Heat service account, used by the Heat services.
470 HeatStackDomainAdminPassword:
471 description: Password for heat_stack_domain_admin user.
474 InstanceNameTemplate:
475 default: 'instance-%08x'
476 description: Template string to be used to generate instance names
480 description: Whether to manage IPtables rules.
484 description: Whether IPtables rules should be purged before setting up the ones.
486 MysqlInnodbBufferPoolSize:
488 Specifies the size of the buffer pool in megabytes. Setting to
489 zero should be interpreted as "no value" and will defer to the
494 description: Configures MySQL max_connections config setting
497 NeutronPublicInterfaceDefaultRoute:
499 description: A custom default route for the NeutronPublicInterface.
501 NeutronPublicInterfaceIP:
503 description: A custom IP address to put onto the NeutronPublicInterface.
505 NeutronPublicInterfaceRawDevice:
507 description: If set, the public interface is a vlan with this device as the raw device.
509 PublicVirtualInterface:
512 Specifies the interface where the public-facing virtual ip will be assigned.
513 This should be int_public when a VLAN is being used.
516 description: A random string to be used as a salt when hashing to determine mappings in the ring.
520 description: The password for the swift service account, used by the swift proxy services.
525 description: Value of mount_check in Swift account/container/object -server.conf
530 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
533 description: Partition Power to use when building Swift rings
538 description: How many replicas to use in the swift rings.
540 description: The password for the sahara service account.
544 # Compute-specific params
545 CeilometerComputeAgent:
546 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
550 - allowed_values: ['', Present]
554 HypervisorNeutronPhysicalBridge:
557 An OVS bridge to create on each hypervisor. This defaults to br-ex the
558 same as the control plane nodes, as we have a uniform configuration of
559 the openvswitch agent. Typically should not need to be changed.
561 HypervisorNeutronPublicInterface:
563 description: What interface to add to the HypervisorNeutronPhysicalBridge.
565 NeutronNetworkVLANRanges:
566 default: 'datacentre:1:1000'
568 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
569 Neutron documentation for permitted values. Defaults to permitting any
570 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
571 type: comma_delimited_list
574 default: libvirt.LibvirtDriver
575 NovaComputeExtraConfig:
578 NovaCompute specific configuration to inject into the cluster. Same
579 structure as ExtraConfig.
581 NovaComputeLibvirtType:
584 NovaComputeLibvirtVifDriver:
586 description: Libvirt VIF driver configuration for the network
588 NovaComputeSchedulerHints:
590 description: Optional scheduler hints to pass to nova
592 NovaEnableRbdBackend:
594 description: Whether to enable or not the Rbd backend for Nova
598 default: overcloud-full
600 - custom_constraint: glance.image
603 description: Name of integration bridge used by Open vSwitch
605 NovaSecurityGroupAPI:
607 description: The full class name of the security API class
609 OvercloudComputeFlavor:
610 description: Use this flavor
614 - custom_constraint: nova.flavor
617 NeutronTenantNetwork: tenant
618 CeilometerApiNetwork: internal_api
619 AodhApiNetwork: internal_api
620 GnocchiApiNetwork: internal_api
621 MongoDbNetwork: internal_api
622 CinderApiNetwork: internal_api
623 CinderIscsiNetwork: storage
624 GlanceApiNetwork: storage
625 GlanceRegistryNetwork: internal_api
626 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
627 KeystonePublicApiNetwork: internal_api
628 NeutronApiNetwork: internal_api
629 HeatApiNetwork: internal_api
630 NovaApiNetwork: internal_api
631 NovaMetadataNetwork: internal_api
632 NovaVncProxyNetwork: internal_api
633 SwiftMgmtNetwork: storage_mgmt
634 SwiftProxyNetwork: storage
635 SaharaApiNetwork: internal_api
636 HorizonNetwork: internal_api
637 MemcachedNetwork: internal_api
638 RabbitMqNetwork: internal_api
639 RedisNetwork: internal_api
640 MysqlNetwork: internal_api
641 CephClusterNetwork: storage_mgmt
642 CephPublicNetwork: storage
643 ControllerHostnameResolveNetwork: internal_api
644 ComputeHostnameResolveNetwork: internal_api
645 BlockStorageHostnameResolveNetwork: internal_api
646 ObjectStorageHostnameResolveNetwork: internal_api
647 CephStorageHostnameResolveNetwork: storage
648 description: Mapping of service_name -> network name. Typically set
649 via parameter_defaults in the resource registry.
654 - OS::TripleO::Services::Keystone
655 - OS::TripleO::Services::GlanceApi
656 - OS::TripleO::Services::GlanceRegistry
657 - OS::TripleO::Services::NeutronDhcpAgent
658 - OS::TripleO::Services::NeutronL3Agent
659 - OS::TripleO::Services::NeutronMetadataAgent
660 - OS::TripleO::Services::RabbitMQ
661 description: A list of service resources (configured in the Heat
662 resource_registry) which represent nested stacks
663 for each service that should get installed on the Controllers.
664 type: comma_delimited_list
666 # Block storage specific parameters
671 default: overcloud-full
673 OvercloudBlockStorageFlavor:
674 description: Flavor for block storage nodes to request when deploying.
678 - custom_constraint: nova.flavor
679 BlockStorageExtraConfig:
682 BlockStorage specific configuration to inject into the cluster. Same
683 structure as ExtraConfig.
685 BlockStorageSchedulerHints:
687 description: Optional scheduler hints to pass to nova
691 # Object storage specific parameters
695 OvercloudSwiftStorageFlavor:
696 description: Flavor for Swift storage nodes to request when deploying.
700 - custom_constraint: nova.flavor
702 default: overcloud-full
704 ObjectStorageExtraConfig:
707 ObjectStorage specific configuration to inject into the cluster. Same
708 structure as ExtraConfig.
710 ObjectStorageSchedulerHints:
712 description: Optional scheduler hints to pass to nova
715 # Ceph storage specific parameters
720 default: overcloud-full
722 OvercloudCephStorageFlavor:
724 description: Flavor for Ceph storage nodes to request when deploying.
727 - custom_constraint: nova.flavor
728 CephStorageExtraConfig:
731 CephStorage specific configuration to inject into the cluster. Same
732 structure as ExtraConfig.
734 CephStorageSchedulerHints:
736 description: Optional scheduler hints to pass to nova
740 # Hostname format for each role
741 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
742 # and %stackname% is replaced with OS::stack_name in the template below.
743 # If you want to use the heat generated names, pass '' (empty string).
744 ControllerHostnameFormat:
746 description: Format for Controller node hostnames
747 default: '%stackname%-controller-%index%'
748 ComputeHostnameFormat:
750 description: Format for Compute node hostnames
751 default: '%stackname%-novacompute-%index%'
752 BlockStorageHostnameFormat:
754 description: Format for BlockStorage node hostnames
755 default: '%stackname%-blockstorage-%index%'
756 ObjectStorageHostnameFormat:
758 description: Format for SwiftStorage node hostnames
759 default: '%stackname%-objectstorage-%index%'
760 CephStorageHostnameFormat:
762 description: Format for CephStorage node hostnames
763 default: '%stackname%-cephstorage-%index%'
765 # Identifiers to trigger tasks on nodes
770 Setting to a previously unused value during stack-update will trigger
771 package update on all nodes
776 Setting this to a unique value will re-run any deployment tasks which
777 perform configuration on a Heat stack-update.
779 # If you want to remove a specific node from a resource group, you can pass
780 # the node name or id as a <Group>RemovalPolicies parameter, for example:
781 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
782 ControllerRemovalPolicies:
786 List of resources to be removed from ControllerResourceGroup when
787 doing an update which requires removal of specific resources.
788 ComputeRemovalPolicies:
792 List of resources to be removed from ComputeResourceGroup when
793 doing an update which requires removal of specific resources.
794 BlockStorageRemovalPolicies:
798 List of resources to be removed from BlockStorageResourceGroup when
799 doing an update which requires removal of specific resources.
800 ObjectStorageRemovalPolicies:
804 List of resources to be removed from ObjectStorageResourceGroup when
805 doing an update which requires removal of specific resources.
806 CephStorageRemovalPolicies:
810 List of resources to be removed from CephStorageResourceGroup when
811 doing an update which requires removal of specific resources.
815 description: Do not use deprecated params, they will be removed.
817 - controllerExtraConfig
822 HeatAuthEncryptionKey:
823 type: OS::Heat::RandomString
826 type: OS::Heat::RandomString
831 type: OS::Heat::RandomString
836 type: OS::TripleO::EndpointMap
838 CloudName: {get_param: CloudName}
839 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
840 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
841 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
842 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
843 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
844 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
845 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
846 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
847 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
848 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
849 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
850 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
851 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
852 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
853 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
855 ControllerServiceChain:
856 type: OS::TripleO::Services
858 Services: {get_param: ControllerServices}
859 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
860 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
863 type: OS::Heat::ResourceGroup
866 count: {get_param: ControllerCount}
867 removal_policies: {get_param: ControllerRemovalPolicies}
869 type: OS::TripleO::Controller
871 AdminPassword: {get_param: AdminPassword}
872 AodhPassword: {get_param: AodhPassword}
873 CeilometerBackend: {get_param: CeilometerBackend}
874 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
875 CeilometerPassword: {get_param: CeilometerPassword}
876 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
877 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
878 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
879 CinderNfsServers: {get_param: CinderNfsServers}
880 CinderPassword: {get_param: CinderPassword}
881 CinderISCSIHelper: {get_param: CinderISCSIHelper}
882 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
883 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
884 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
885 CloudDomain: {get_param: CloudDomain}
886 ControlVirtualInterface: {get_param: ControlVirtualInterface}
887 controllerExtraConfig: {get_param: controllerExtraConfig}
888 CorosyncIPv6: {get_param: CorosyncIPv6}
889 Debug: {get_param: Debug}
890 EnableFencing: {get_param: EnableFencing}
891 ManageFirewall: {get_param: ManageFirewall}
892 PurgeFirewallRules: {get_param: PurgeFirewallRules}
893 EnableGalera: {get_param: EnableGalera}
894 EnableCephStorage: {get_param: ControllerEnableCephStorage}
895 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
896 ExtraConfig: {get_param: ExtraConfig}
897 FencingConfig: {get_param: FencingConfig}
898 Flavor: {get_param: OvercloudControlFlavor}
899 GnocchiPassword: {get_param: GnocchiPassword}
900 GnocchiBackend: {get_param: GnocchiBackend}
901 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
902 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
903 HeatPassword: {get_param: HeatPassword}
904 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
905 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
906 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
907 HorizonSecret: {get_resource: HorizonSecret}
908 Image: {get_param: controllerImage}
909 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
910 InstanceNameTemplate: {get_param: InstanceNameTemplate}
911 KeyName: {get_param: KeyName}
912 MemcachedIPv6: {get_param: MemcachedIPv6}
913 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
914 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
915 MysqlMaxConnections: {get_param: MysqlMaxConnections}
916 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
917 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
918 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
919 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
920 NeutronTenantMtu: {get_param: NeutronTenantMtu}
921 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
922 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
923 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
924 NeutronPublicInterface: {get_param: NeutronPublicInterface}
925 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
926 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
927 NeutronPassword: {get_param: NeutronPassword}
928 NeutronDVR: {get_param: NeutronDVR}
929 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
930 NeutronAgentMode: {get_param: NeutronAgentMode}
931 NeutronCorePlugin: {get_param: NeutronCorePlugin}
932 NeutronServicePlugins: {get_param: NeutronServicePlugins}
933 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
934 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
935 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
936 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
937 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
938 NeutronL3HA: {get_param: NeutronL3HA}
939 NeutronNetworkType: {get_param: NeutronNetworkType}
940 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
941 NovaIPv6: {get_param: NovaIPv6}
942 NovaPassword: {get_param: NovaPassword}
943 NtpServer: {get_param: NtpServer}
944 MongoDbNoJournal: {get_param: MongoDbNoJournal}
945 MongoDbIPv6: {get_param: MongoDbIPv6}
946 PcsdPassword: {get_resource: PcsdPassword}
947 PublicVirtualInterface: {get_param: PublicVirtualInterface}
948 RabbitPassword: {get_param: RabbitPassword}
949 RabbitUserName: {get_param: RabbitUserName}
950 RabbitCookie: {get_attr: [RabbitCookie, value]}
951 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
952 RabbitClientPort: {get_param: RabbitClientPort}
953 RedisPassword: {get_param: RedisPassword}
954 SaharaPassword: {get_param: SaharaPassword}
955 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
956 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
957 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
958 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
959 SwiftHashSuffix: {get_param: SwiftHashSuffix}
960 SwiftMountCheck: {get_param: SwiftMountCheck}
961 SwiftMinPartHours: {get_param: SwiftMinPartHours}
962 SwiftPartPower: {get_param: SwiftPartPower}
963 SwiftPassword: {get_param: SwiftPassword}
964 SwiftReplicas: { get_param: SwiftReplicas}
965 TimeZone: {get_param: TimeZone}
966 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
967 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
968 ServiceNetMap: {get_param: ServiceNetMap}
969 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
970 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
971 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
972 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
973 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
974 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
975 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
976 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
977 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
978 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
979 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
980 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
981 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
982 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
983 UpdateIdentifier: {get_param: UpdateIdentifier}
986 template: {get_param: ControllerHostnameFormat}
988 '%stackname%': {get_param: 'OS::stack_name'}
990 ServerMetadata: {get_param: ServerMetadata}
991 SchedulerHints: {get_param: ControllerSchedulerHints}
992 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
995 type: OS::Heat::ResourceGroup
998 count: {get_param: ComputeCount}
999 removal_policies: {get_param: ComputeRemovalPolicies}
1001 type: OS::TripleO::Compute
1003 AdminPassword: {get_param: AdminPassword}
1004 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1005 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1006 CeilometerPassword: {get_param: CeilometerPassword}
1007 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1008 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1009 Debug: {get_param: Debug}
1010 ExtraConfig: {get_param: ExtraConfig}
1011 Flavor: {get_param: OvercloudComputeFlavor}
1012 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1013 Image: {get_param: NovaImage}
1014 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1015 KeyName: {get_param: KeyName}
1016 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1017 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1018 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1019 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1020 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1021 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1022 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1023 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1024 NeutronNetworkType: {get_param: NeutronNetworkType}
1025 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1026 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1027 NeutronPassword: {get_param: NeutronPassword}
1028 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1029 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1030 NeutronDVR: {get_param: NeutronDVR}
1031 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1032 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1033 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1034 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1035 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1036 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1037 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1038 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1039 # L3 HA and Failover is not relevant for Computes, should be removed
1040 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1041 NeutronL3HA: {get_param: NeutronL3HA}
1042 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1043 NovaComputeDriver: {get_param: NovaComputeDriver}
1044 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1045 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1046 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1047 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1048 NovaIPv6: {get_param: NovaIPv6}
1049 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1050 NovaPassword: {get_param: NovaPassword}
1051 NovaOVSBridge: {get_param: NovaOVSBridge}
1052 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1053 NtpServer: {get_param: NtpServer}
1054 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1055 RabbitPassword: {get_param: RabbitPassword}
1056 RabbitUserName: {get_param: RabbitUserName}
1057 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1058 RabbitClientPort: {get_param: RabbitClientPort}
1059 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1060 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1061 ServiceNetMap: {get_param: ServiceNetMap}
1062 TimeZone: {get_param: TimeZone}
1063 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1064 UpdateIdentifier: {get_param: UpdateIdentifier}
1067 template: {get_param: ComputeHostnameFormat}
1069 '%stackname%': {get_param: 'OS::stack_name'}
1070 CloudDomain: {get_param: CloudDomain}
1071 ServerMetadata: {get_param: ServerMetadata}
1072 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1073 NodeIndex: '%index%'
1076 type: OS::Heat::ResourceGroup
1077 depends_on: Networks
1079 count: {get_param: BlockStorageCount}
1080 removal_policies: {get_param: BlockStorageRemovalPolicies}
1082 type: OS::TripleO::BlockStorage
1084 Debug: {get_param: Debug}
1085 Image: {get_param: BlockStorageImage}
1086 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1087 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1088 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1089 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1090 CinderPassword: {get_param: CinderPassword}
1091 KeyName: {get_param: KeyName}
1092 Flavor: {get_param: OvercloudBlockStorageFlavor}
1093 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1094 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1095 RabbitPassword: {get_param: RabbitPassword}
1096 RabbitUserName: {get_param: RabbitUserName}
1097 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1098 RabbitClientPort: {get_param: RabbitClientPort}
1099 TimeZone: {get_param: TimeZone}
1100 NtpServer: {get_param: NtpServer}
1101 UpdateIdentifier: {get_param: UpdateIdentifier}
1104 template: {get_param: BlockStorageHostnameFormat}
1106 '%stackname%': {get_param: 'OS::stack_name'}
1107 ServiceNetMap: {get_param: ServiceNetMap}
1108 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1109 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1110 ExtraConfig: {get_param: ExtraConfig}
1111 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1112 CloudDomain: {get_param: CloudDomain}
1113 ServerMetadata: {get_param: ServerMetadata}
1114 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1115 NodeIndex: '%index%'
1118 type: OS::Heat::ResourceGroup
1119 depends_on: Networks
1121 count: {get_param: ObjectStorageCount}
1122 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1124 type: OS::TripleO::ObjectStorage
1126 KeyName: {get_param: KeyName}
1127 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1128 HashSuffix: {get_param: SwiftHashSuffix}
1129 MountCheck: {get_param: SwiftMountCheck}
1130 MinPartHours: {get_param: SwiftMinPartHours}
1131 PartPower: {get_param: SwiftPartPower}
1132 Image: {get_param: SwiftStorageImage}
1133 Replicas: { get_param: SwiftReplicas}
1134 TimeZone: {get_param: TimeZone}
1135 NtpServer: {get_param: NtpServer}
1136 UpdateIdentifier: {get_param: UpdateIdentifier}
1137 ServiceNetMap: {get_param: ServiceNetMap}
1140 template: {get_param: ObjectStorageHostnameFormat}
1142 '%stackname%': {get_param: 'OS::stack_name'}
1143 ExtraConfig: {get_param: ExtraConfig}
1144 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1145 CloudDomain: {get_param: CloudDomain}
1146 ServerMetadata: {get_param: ServerMetadata}
1147 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1148 NodeIndex: '%index%'
1151 type: OS::Heat::ResourceGroup
1152 depends_on: Networks
1154 count: {get_param: CephStorageCount}
1155 removal_policies: {get_param: CephStorageRemovalPolicies}
1157 type: OS::TripleO::CephStorage
1159 Image: {get_param: CephStorageImage}
1160 KeyName: {get_param: KeyName}
1161 Flavor: {get_param: OvercloudCephStorageFlavor}
1162 NtpServer: {get_param: NtpServer}
1163 ServiceNetMap: {get_param: ServiceNetMap}
1164 TimeZone: {get_param: TimeZone}
1165 UpdateIdentifier: {get_param: UpdateIdentifier}
1168 template: {get_param: CephStorageHostnameFormat}
1170 '%stackname%': {get_param: 'OS::stack_name'}
1171 ExtraConfig: {get_param: ExtraConfig}
1172 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1173 CloudDomain: {get_param: CloudDomain}
1174 ServerMetadata: {get_param: ServerMetadata}
1175 SchedulerHints: {get_param: CephStorageSchedulerHints}
1176 NodeIndex: '%index%'
1178 ControllerIpListMap:
1179 type: OS::TripleO::Network::Ports::NetIpListMap
1181 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1182 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1183 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1184 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1185 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1186 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1187 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1190 type: OS::TripleO::AllNodes::SoftwareConfig
1192 compute_hosts: {get_attr: [Compute, hosts_entry]}
1193 controller_hosts: {get_attr: [Controller, hosts_entry]}
1194 controller_ips: {get_attr: [Controller, ip_address]}
1195 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1196 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1197 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1198 controller_names: {get_attr: [Controller, hostname]}
1199 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1200 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1201 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1202 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1203 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1204 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1205 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1206 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1207 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1208 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1209 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1210 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1211 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1212 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1213 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1214 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1215 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1216 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1217 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1218 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1219 DeployIdentifier: {get_param: DeployIdentifier}
1220 UpdateIdentifier: {get_param: UpdateIdentifier}
1223 type: OS::Heat::RandomString
1227 MysqlClusterUniquePart:
1228 type: OS::Heat::RandomString
1233 type: OS::Heat::RandomString
1236 salt: {get_param: RabbitCookieSalt}
1238 # creates the network architecture
1240 type: OS::TripleO::Network
1243 type: OS::Neutron::Port
1244 depends_on: Networks
1246 name: control_virtual_ip
1247 network: {get_param: NeutronControlPlaneID}
1248 fixed_ips: {get_param: ControlFixedIPs}
1249 replacement_policy: AUTO
1252 depends_on: Networks
1253 type: OS::TripleO::Network::Ports::RedisVipPort
1255 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1256 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1257 PortName: redis_virtual_ip
1258 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1261 # The public VIP is on the External net, falls back to ctlplane
1263 depends_on: Networks
1264 type: OS::TripleO::Network::Ports::ExternalVipPort
1266 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1267 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1268 PortName: public_virtual_ip
1269 FixedIPs: {get_param: PublicVirtualFixedIPs}
1271 InternalApiVirtualIP:
1272 depends_on: Networks
1273 type: OS::TripleO::Network::Ports::InternalApiVipPort
1275 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1276 PortName: internal_api_virtual_ip
1277 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1280 depends_on: Networks
1281 type: OS::TripleO::Network::Ports::StorageVipPort
1283 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1284 PortName: storage_virtual_ip
1285 FixedIPs: {get_param: StorageVirtualFixedIPs}
1287 StorageMgmtVirtualIP:
1288 depends_on: Networks
1289 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1291 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1292 PortName: storage_management_virtual_ip
1293 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1296 type: OS::TripleO::Network::Ports::NetVipMap
1298 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1299 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1300 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1301 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1302 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1303 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1304 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1305 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1306 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1307 # No tenant or management VIP required
1310 type: OS::TripleO::VipConfig
1313 type: OS::Heat::StructuredDeployments
1316 config: {get_resource: VipConfig}
1317 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1319 # service VIP mappings
1320 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1321 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1322 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1323 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1324 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1325 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1326 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1327 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1328 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1329 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1330 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1331 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1332 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1333 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1334 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1335 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1336 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1337 # direct configuration of Virtual IPs for each network
1338 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1339 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1340 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1341 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1342 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1343 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1345 ControllerBootstrapNodeConfig:
1346 type: OS::TripleO::BootstrapNode::SoftwareConfig
1348 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1349 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1351 ControllerBootstrapNodeDeployment:
1352 type: OS::Heat::StructuredDeployments
1354 name: ControllerBootstrapNodeDeployment
1355 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1356 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1358 ControllerSwiftDeployment:
1359 type: OS::Heat::StructuredDeployments
1361 name: ControllerSwiftDeployment
1362 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1363 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1365 ObjectStorageSwiftDeployment:
1366 type: OS::Heat::StructuredDeployments
1368 name: ObjectStorageSwiftDeployment
1369 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1370 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1372 SwiftDevicesAndProxyConfig:
1373 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1375 controller_swift_devices: {get_attr: [Controller, swift_device]}
1376 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1377 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1379 ComputeCephDeployment:
1380 type: OS::Heat::StructuredDeployments
1382 name: ComputeCephDeployment
1383 config: {get_attr: [CephClusterConfig, config_id]}
1384 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1386 ControllerCephDeployment:
1387 type: OS::Heat::StructuredDeployments
1389 name: ControllerCephDeployment
1390 config: {get_attr: [CephClusterConfig, config_id]}
1391 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1393 CephStorageCephDeployment:
1394 type: OS::Heat::StructuredDeployments
1396 name: CephStorageCephDeployment
1397 config: {get_attr: [CephClusterConfig, config_id]}
1398 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1401 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1403 ceph_storage_count: {get_param: CephStorageCount}
1404 ceph_fsid: {get_param: CephClusterFSID}
1405 ceph_mon_key: {get_param: CephMonKey}
1406 ceph_admin_key: {get_param: CephAdminKey}
1407 ceph_client_key: {get_param: CephClientKey}
1408 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1409 ceph_mon_names: {get_attr: [Controller, hostname]}
1410 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1412 ControllerAllNodesDeployment:
1413 type: OS::Heat::StructuredDeployments
1415 name: ControllerAllNodesDeployment
1416 config: {get_attr: [allNodesConfig, config_id]}
1417 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1419 ComputeAllNodesDeployment:
1420 type: OS::Heat::StructuredDeployments
1422 name: ComputeAllNodesDeployment
1423 config: {get_attr: [allNodesConfig, config_id]}
1424 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1426 BlockStorageAllNodesDeployment:
1427 type: OS::Heat::StructuredDeployments
1429 name: BlockStorageAllNodesDeployment
1430 config: {get_attr: [allNodesConfig, config_id]}
1431 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1433 ObjectStorageAllNodesDeployment:
1434 type: OS::Heat::StructuredDeployments
1436 name: ObjectStorageAllNodesDeployment
1437 config: {get_attr: [allNodesConfig, config_id]}
1438 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1440 CephStorageAllNodesDeployment:
1441 type: OS::Heat::StructuredDeployments
1443 name: CephStorageAllNodesDeployment
1444 config: {get_attr: [allNodesConfig, config_id]}
1445 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1447 # All Nodes Validations
1448 AllNodesValidationConfig:
1449 type: OS::TripleO::AllNodes::Validation
1454 - - {get_attr: [Controller, resource.0.external_ip_address]}
1455 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1456 - {get_attr: [Controller, resource.0.storage_ip_address]}
1457 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1458 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1460 ControllerAllNodesValidationDeployment:
1461 type: OS::Heat::StructuredDeployments
1462 depends_on: ControllerAllNodesDeployment
1464 name: ControllerAllNodesValidationDeployment
1465 config: {get_resource: AllNodesValidationConfig}
1466 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1468 ComputeAllNodesValidationDeployment:
1469 type: OS::Heat::StructuredDeployments
1470 depends_on: ComputeAllNodesDeployment
1472 name: ComputeAllNodesValidationDeployment
1473 config: {get_resource: AllNodesValidationConfig}
1474 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1476 BlockStorageAllNodesValidationDeployment:
1477 type: OS::Heat::StructuredDeployments
1478 depends_on: BlockStorageAllNodesDeployment
1480 name: BlockStorageAllNodesValidationDeployment
1481 config: {get_resource: AllNodesValidationConfig}
1482 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1484 ObjectStorageAllNodesValidationDeployment:
1485 type: OS::Heat::StructuredDeployments
1486 depends_on: ObjectStorageAllNodesDeployment
1488 name: ObjectStorageAllNodesValidationDeployment
1489 config: {get_resource: AllNodesValidationConfig}
1490 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1492 CephStorageAllNodesValidationDeployment:
1493 type: OS::Heat::StructuredDeployments
1494 depends_on: CephStorageAllNodesDeployment
1496 name: CephStorageAllNodesValidationDeployment
1497 config: {get_resource: AllNodesValidationConfig}
1498 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1501 type: OS::TripleO::Tasks::UpdateWorkflow
1503 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1504 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1505 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1506 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1507 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1509 deploy_identifier: {get_param: DeployIdentifier}
1510 update_identifier: {get_param: UpdateIdentifier}
1512 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1513 # the nested template may configure each role differently (or not at all)
1514 AllNodesExtraConfig:
1515 type: OS::TripleO::AllNodesExtraConfig
1518 - ComputeAllNodesValidationDeployment
1519 - BlockStorageAllNodesValidationDeployment
1520 - ObjectStorageAllNodesValidationDeployment
1521 - CephStorageAllNodesValidationDeployment
1522 - ControllerAllNodesValidationDeployment
1524 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1525 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1526 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1527 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1528 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1530 # Nested stack deployment runs after all other controller deployments
1531 ControllerNodesPostDeployment:
1532 type: OS::TripleO::ControllerPostDeployment
1533 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1535 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1536 NodeConfigIdentifiers:
1537 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1538 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1539 deployment_identifier: {get_param: DeployIdentifier}
1540 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1542 ComputeNodesPostDeployment:
1543 type: OS::TripleO::ComputePostDeployment
1544 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1546 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1547 NodeConfigIdentifiers:
1548 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1549 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1550 deployment_identifier: {get_param: DeployIdentifier}
1552 ObjectStorageNodesPostDeployment:
1553 type: OS::TripleO::ObjectStoragePostDeployment
1554 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1556 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1557 NodeConfigIdentifiers:
1558 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1559 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1560 deployment_identifier: {get_param: DeployIdentifier}
1562 BlockStorageNodesPostDeployment:
1563 type: OS::TripleO::BlockStoragePostDeployment
1564 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1566 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1567 NodeConfigIdentifiers:
1568 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1569 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1570 deployment_identifier: {get_param: DeployIdentifier}
1572 CephStorageNodesPostDeployment:
1573 type: OS::TripleO::CephStoragePostDeployment
1574 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1576 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1577 NodeConfigIdentifiers:
1578 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1579 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1580 deployment_identifier: {get_param: DeployIdentifier}
1584 description: URL for the Overcloud Keystone service
1585 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1587 description: Keystone Admin VIP endpoint
1588 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1590 description: Controller VIP for public API endpoints
1591 value: {get_attr: [VipMap, net_ip_map, external]}
1593 description: VIP for Aodh API internal endpoint
1594 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1595 CeilometerInternalVip:
1596 description: VIP for Ceilometer API internal endpoint
1597 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1599 description: VIP for Cinder API internal endpoint
1600 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1602 description: VIP for Glance API internal endpoint
1603 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1605 description: VIP for Gnocchi API internal endpoint
1606 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1608 description: VIP for Heat API internal endpoint
1609 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1610 KeystoneInternalVip:
1611 description: VIP for Keystone API internal endpoint
1612 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1614 description: VIP for Neutron API internal endpoint
1615 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1617 description: VIP for Nova API internal endpoint
1618 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1620 description: VIP for Sahara API internal endpoint
1621 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1623 description: VIP for Swift Proxy internal endpoint
1624 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1627 Mapping of the resources with the needed info for their endpoints.
1628 This includes the protocol used, the IP, port and also a full
1629 representation of the URI.
1630 value: {get_attr: [EndpointMap, endpoint_map]}
1633 The content that should be appended to your /etc/hosts if you want to get
1634 hostname-based access to the deployed nodes (useful for testing without
1636 value: {get_attr: [allNodesConfig, hosts_entries]}