1 heat_template_version: 2015-04-30
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.
21 description: The ceilometer backend type.
23 CeilometerMeteringSecret:
24 description: Secret shared by the ceilometer services.
28 description: The password for the ceilometer service account.
31 # This has to be an UUID so for now we generate it outside the template
35 description: The Ceph cluster FSID. Must be a UUID.
38 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
43 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
46 CinderEnableNfsBackend:
48 description: Whether to enable or not the NFS backend for Cinder
52 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.
58 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
59 CinderEnableIscsiBackend:
61 description: Whether to enable or not the Iscsi backend for Cinder
63 CinderEnableRbdBackend:
65 description: Whether to enable or not the Rbd backend for Cinder
69 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
73 description: Should be used for arbitrary ips.
77 description: Set to True to enable debugging on all services.
81 description: Syslog address where HAproxy will send its log
85 description: A list of IP/Hostname allowed to connect to horizon
86 type: comma_delimited_list
88 default: 'REBUILD_PRESERVE_EPHEMERAL'
89 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
91 InternalApiVirtualFixedIPs:
94 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
95 [{'ip_address':'1.2.3.4'}]
99 description: Name of an existing Nova key pair to enable SSH access to the instances
102 - custom_constraint: nova.keypair
103 NeutronExternalNetworkBridge:
104 description: Name of bridge used for external network traffic.
107 NeutronBridgeMappings:
109 The OVS logical->physical bridge mappings to use. See the Neutron
110 documentation for details. Defaults to mapping br-ex - the external
111 bridge on hosts - to a physical name 'datacentre' which can be used
112 to create provider networks (and we use this for the default floating
113 network) - if changing this either use different post-install network
114 scripts or be sure to keep 'datacentre' as a mapping network name.
115 type: comma_delimited_list
116 default: "datacentre:br-ex"
117 NeutronControlPlaneID:
120 description: Neutron ID or name for ctlplane network.
121 NeutronEnableIsolatedMetadata:
123 description: If True, DHCP provide metadata route to VM.
125 NeutronEnableTunnelling:
131 Enable/disable the L2 population feature in the Neutron agents.
134 type: comma_delimited_list
135 default: 'datacentre'
137 If set, flat networks to configure in neutron plugins. Defaults to
138 'datacentre' to permit external network creation.
141 description: The tenant network type for Neutron.
142 type: comma_delimited_list
144 description: The password for the neutron service account, used by neutron agents.
147 NeutronPublicInterface:
149 description: What interface to bridge onto br-ex for network nodes.
151 NeutronPublicInterfaceTag:
154 VLAN tag for creating a public VLAN. The tag will be used to
155 create an access port on the exterior bridge for each control plane node,
156 and that port will be given the IP address returned by neutron from the
157 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
158 overcloud.yaml to include the deployment of VLAN ports to the control
161 NeutronComputeAgentMode:
163 description: Agent mode for the neutron-l3-agent on the compute hosts
167 description: Agent mode for the neutron-l3-agent on the controller hosts
171 description: Whether to configure Neutron Distributed Virtual Routers
173 NeutronMetadataProxySharedSecret:
174 description: Shared secret to prevent spoofing
179 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
180 be at least 50 bytes smaller than the MTU on the physical network. This
181 value will be used to set the MTU on the virtual Ethernet device.
182 This value will be used to construct the NeutronDnsmasqOptions, since that
183 will determine the MTU that is assigned to the VM host through DHCP.
189 The tunnel types for the Neutron tenant network.
190 type: comma_delimited_list
191 NeutronTunnelIdRanges:
193 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
194 of GRE tunnel IDs that are available for tenant network allocation
195 default: ["1:4094", ]
196 type: comma_delimited_list
199 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
200 of VXLAN VNI IDs that are available for tenant network allocation
201 default: ["1:4094", ]
202 type: comma_delimited_list
206 The core plugin for Neutron. The value should be the entrypoint to be loaded
207 from neutron.core_plugins namespace.
209 NeutronServicePlugins:
210 default: "router,qos"
212 Comma-separated list of service plugin entrypoints to be loaded from the
213 neutron.service_plugins namespace.
214 type: comma_delimited_list
216 default: "vxlan,vlan,flat,gre"
218 Comma-separated list of network type driver entrypoints to be loaded.
219 type: comma_delimited_list
220 NeutronMechanismDrivers:
221 default: 'openvswitch'
223 The mechanism drivers for the Neutron tenant network.
224 type: comma_delimited_list
225 NeutronPluginExtensions:
226 default: "qos,port_security"
228 Comma-separated list of extensions enabled for the Neutron plugin.
229 type: comma_delimited_list
230 NeutronAgentExtensions:
233 Comma-separated list of extensions enabled for the Neutron agents.
234 type: comma_delimited_list
235 NeutronAllowL3AgentFailover:
237 description: Allow automatic l3-agent failover
241 description: Whether to enable l3-agent HA
243 NeutronDhcpAgentsPerNetwork:
246 description: The number of neutron dhcp agents to schedule per network
248 description: The password for the nova service account, used by nova-api.
253 description: Comma-separated list of ntp servers
254 type: comma_delimited_list
257 description: Should MongoDb journaling be disabled
259 PublicVirtualFixedIPs:
262 Control the IP allocation for the PublicVirtualInterface port. E.g.
263 [{'ip_address':'1.2.3.4'}]
268 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
269 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
272 description: The username for RabbitMQ
276 description: The password for RabbitMQ
282 Rabbit client subscriber parameter to specify
283 an SSL connection to the RabbitMQ host.
287 description: Set rabbit subscriber port, change this if using SSL
289 # We need to set this as string because 'unlimited' is a valid setting
292 description: Configures RabbitMQ FD limit
294 SnmpdReadonlyUserName:
295 default: ro_snmp_user
296 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
298 SnmpdReadonlyUserPassword:
299 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
302 StorageVirtualFixedIPs:
305 Control the IP allocation for the StorageVirtualInterface port. E.g.
306 [{'ip_address':'1.2.3.4'}]
308 StorageMgmtVirtualFixedIPs:
311 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
312 [{'ip_address':'1.2.3.4'}]
316 description: The timezone to be set on nodes.
319 default: 'localdomain'
322 The DNS domain used for the hosts. This should match the dhcp_domain
323 configured in the Undercloud neutron. Defaults to localdomain.
327 Extra properties or metadata passed to Nova for the created nodes in
328 the overcloud. It's accessible via the Nova metadata API.
331 # Controller-specific params
333 description: The keystone auth secret.
336 CinderLVMLoopDeviceSize:
338 description: The size of the loopback file used by the cinder LVM driver.
340 CinderNfsMountOptions:
343 Mount options for NFS mounts used by Cinder NFS backend. Effective
344 when CinderEnableNfsBackend is true.
349 NFS servers used by Cinder NFS backend. Effective when
350 CinderEnableNfsBackend is true.
351 type: comma_delimited_list
353 description: The password for the cinder service account, used by cinder-api.
358 description: The iSCSI helper to use with cinder.
365 controllerExtraConfig:
368 Controller specific configuration to inject into the cluster. Same
369 structure as ExtraConfig.
373 default: overcloud-full
375 - custom_constraint: glance.image
376 OvercloudControlFlavor:
377 description: Flavor for control nodes to request when deploying.
381 - custom_constraint: nova.flavor
382 ControlVirtualInterface:
384 description: Interface where virtual ip will be assigned.
388 description: Whether to enable fencing in Pacemaker or not.
392 description: Whether to use Galera instead of regular MariaDB.
394 ControllerEnableCephStorage:
396 description: Whether to deploy Ceph Storage (OSD) on the Controller
398 ControllerEnableSwiftStorage:
400 description: Whether to enable Swift Storage on the Controller
402 ControllerSchedulerHints:
404 description: Optional scheduler hints to pass to nova
409 Additional configuration to inject into the cluster. The format required
410 may be implementation specific, e.g puppet hieradata. Any role specific
411 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
416 Pacemaker fencing configuration. The JSON should have
417 the following structure:
421 "agent": "AGENT_NAME",
422 "host_mac": "HOST_MAC_ADDRESS",
423 "params": {"PARAM_NAME": "PARAM_VALUE"}
431 "agent": "fence_xvm",
432 "host_mac": "52:54:00:aa:bb:cc",
434 "multicast_address": "225.0.0.12",
435 "port": "baremetal_0",
437 "manage_key_file": true,
438 "key_file": "/etc/fence_xvm.key",
439 "key_file_password": "abcdef"
446 description: The filepath of the file to use for logging messages from Glance.
449 GlanceNotifierStrategy:
450 description: Strategy to use for Glance notification queue
454 description: The password for the glance service account, used by the glance services.
459 description: The short name of the Glance backend to use. Should be one
460 of swift, rbd or file
463 - allowed_values: ['swift', 'file', 'rbd']
465 description: The password for the Heat service account, used by the Heat services.
468 HeatStackDomainAdminPassword:
469 description: Password for heat_domain_admin user.
472 InstanceNameTemplate:
473 default: 'instance-%08x'
474 description: Template string to be used to generate instance names
476 KeystoneCACertificate:
478 description: Keystone self-signed certificate authority certificate.
480 KeystoneSigningCertificate:
482 description: Keystone certificate for verifying token validity.
486 description: Keystone key for signing tokens.
489 KeystoneSSLCertificate:
491 description: Keystone certificate for verifying token validity.
493 KeystoneSSLCertificateKey:
495 description: Keystone key for signing tokens.
498 KeystoneNotificationDriver:
499 description: Comma-separated list of Oslo notification drivers used by Keystone
500 default: ['messaging']
501 type: comma_delimited_list
502 KeystoneNotificationFormat:
503 description: The Keystone notification format
507 - allowed_values: [ 'basic', 'cadf' ]
510 description: Whether to manage IPtables rules.
514 description: Whether IPtables rules should be purged before setting up the ones.
516 MysqlInnodbBufferPoolSize:
518 Specifies the size of the buffer pool in megabytes. Setting to
519 zero should be interpreted as "no value" and will defer to the
524 description: Configures MySQL max_connections config setting
527 NeutronDnsmasqOptions:
528 default: 'dhcp-option-force=26,%MTU%'
530 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
531 to be set to the value of NeutronTenantMtu, which should be set to account
534 NeutronPublicInterfaceDefaultRoute:
536 description: A custom default route for the NeutronPublicInterface.
538 NeutronPublicInterfaceIP:
540 description: A custom IP address to put onto the NeutronPublicInterface.
542 NeutronPublicInterfaceRawDevice:
544 description: If set, the public interface is a vlan with this device as the raw device.
546 PublicVirtualInterface:
549 Specifies the interface where the public-facing virtual ip will be assigned.
550 This should be int_public when a VLAN is being used.
553 description: A random string to be used as a salt when hashing to determine mappings in the ring.
557 description: The password for the swift service account, used by the swift proxy services.
562 description: Value of mount_check in Swift account/container/object -server.conf
567 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
570 description: Partition Power to use when building Swift rings
575 description: How many replicas to use in the swift rings.
577 description: The password for the sahara service account.
581 # Compute-specific params
582 CeilometerComputeAgent:
583 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
587 - allowed_values: ['', Present]
591 HypervisorNeutronPhysicalBridge:
594 An OVS bridge to create on each hypervisor. This defaults to br-ex the
595 same as the control plane nodes, as we have a uniform configuration of
596 the openvswitch agent. Typically should not need to be changed.
598 HypervisorNeutronPublicInterface:
600 description: What interface to add to the HypervisorNeutronPhysicalBridge.
602 NeutronNetworkVLANRanges:
603 default: 'datacentre:1:1000'
605 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
606 Neutron documentation for permitted values. Defaults to permitting any
607 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
608 type: comma_delimited_list
611 default: libvirt.LibvirtDriver
612 NovaComputeExtraConfig:
615 NovaCompute specific configuration to inject into the cluster. Same
616 structure as ExtraConfig.
618 NovaComputeLibvirtType:
621 NovaComputeLibvirtVifDriver:
623 description: Libvirt VIF driver configuration for the network
625 NovaComputeSchedulerHints:
627 description: Optional scheduler hints to pass to nova
629 NovaEnableRbdBackend:
631 description: Whether to enable or not the Rbd backend for Nova
635 default: overcloud-full
637 - custom_constraint: glance.image
640 description: Name of integration bridge used by Open vSwitch
642 NovaSecurityGroupAPI:
644 description: The full class name of the security API class
646 OvercloudComputeFlavor:
647 description: Use this flavor
651 - custom_constraint: nova.flavor
654 NeutronTenantNetwork: tenant
655 CeilometerApiNetwork: internal_api
656 MongoDbNetwork: internal_api
657 CinderApiNetwork: internal_api
658 CinderIscsiNetwork: storage
659 GlanceApiNetwork: storage
660 GlanceRegistryNetwork: internal_api
661 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
662 KeystonePublicApiNetwork: internal_api
663 NeutronApiNetwork: internal_api
664 HeatApiNetwork: internal_api
665 NovaApiNetwork: internal_api
666 NovaMetadataNetwork: internal_api
667 NovaVncProxyNetwork: internal_api
668 SwiftMgmtNetwork: storage_mgmt
669 SwiftProxyNetwork: storage
670 SaharaApiNetwork: internal_api
671 HorizonNetwork: internal_api
672 MemcachedNetwork: internal_api
673 RabbitMqNetwork: internal_api
674 RedisNetwork: internal_api
675 MysqlNetwork: internal_api
676 CephClusterNetwork: storage_mgmt
677 CephPublicNetwork: storage
678 ControllerHostnameResolveNetwork: internal_api
679 ComputeHostnameResolveNetwork: internal_api
680 BlockStorageHostnameResolveNetwork: internal_api
681 ObjectStorageHostnameResolveNetwork: internal_api
682 CephStorageHostnameResolveNetwork: storage
683 description: Mapping of service_name -> network name. Typically set
684 via parameter_defaults in the resource registry.
687 # Block storage specific parameters
692 default: overcloud-full
694 OvercloudBlockStorageFlavor:
695 description: Flavor for block storage nodes to request when deploying.
699 - custom_constraint: nova.flavor
700 BlockStorageExtraConfig:
703 BlockStorage specific configuration to inject into the cluster. Same
704 structure as ExtraConfig.
706 BlockStorageSchedulerHints:
708 description: Optional scheduler hints to pass to nova
712 # Object storage specific parameters
716 OvercloudSwiftStorageFlavor:
717 description: Flavor for Swift storage nodes to request when deploying.
721 - custom_constraint: nova.flavor
723 default: overcloud-full
725 ObjectStorageExtraConfig:
728 ObjectStorage specific configuration to inject into the cluster. Same
729 structure as ExtraConfig.
731 ObjectStorageSchedulerHints:
733 description: Optional scheduler hints to pass to nova
736 # Ceph storage specific parameters
741 default: overcloud-full
743 OvercloudCephStorageFlavor:
745 description: Flavor for Ceph storage nodes to request when deploying.
748 - custom_constraint: nova.flavor
749 CephStorageExtraConfig:
752 CephStorage specific configuration to inject into the cluster. Same
753 structure as ExtraConfig.
755 CephStorageSchedulerHints:
757 description: Optional scheduler hints to pass to nova
761 # Hostname format for each role
762 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
763 # and %stackname% is replaced with OS::stack_name in the template below.
764 # If you want to use the heat generated names, pass '' (empty string).
765 ControllerHostnameFormat:
767 description: Format for Controller node hostnames
768 default: '%stackname%-controller-%index%'
769 ComputeHostnameFormat:
771 description: Format for Compute node hostnames
772 default: '%stackname%-novacompute-%index%'
773 BlockStorageHostnameFormat:
775 description: Format for BlockStorage node hostnames
776 default: '%stackname%-blockstorage-%index%'
777 ObjectStorageHostnameFormat:
779 description: Format for SwiftStorage node hostnames
780 default: '%stackname%-objectstorage-%index%'
781 CephStorageHostnameFormat:
783 description: Format for CephStorage node hostnames
784 default: '%stackname%-cephstorage-%index%'
786 # Identifiers to trigger tasks on nodes
791 Setting to a previously unused value during stack-update will trigger
792 package update on all nodes
797 Setting this to a unique value will re-run any deployment tasks which
798 perform configuration on a Heat stack-update.
800 # If you want to remove a specific node from a resource group, you can pass
801 # the node name or id as a <Group>RemovalPolicies parameter, for example:
802 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
803 ControllerRemovalPolicies:
807 List of resources to be removed from ControllerResourceGroup when
808 doing an update which requires removal of specific resources.
809 ComputeRemovalPolicies:
813 List of resources to be removed from ComputeResourceGroup when
814 doing an update which requires removal of specific resources.
815 BlockStorageRemovalPolicies:
819 List of resources to be removed from BlockStorageResourceGroup when
820 doing an update which requires removal of specific resources.
821 ObjectStorageRemovalPolicies:
825 List of resources to be removed from ObjectStorageResourceGroup when
826 doing an update which requires removal of specific resources.
827 CephStorageRemovalPolicies:
831 List of resources to be removed from CephStorageResourceGroup when
832 doing an update which requires removal of specific resources.
837 HeatAuthEncryptionKey:
838 type: OS::Heat::RandomString
841 type: OS::Heat::RandomString
846 type: OS::Heat::RandomString
851 type: OS::TripleO::EndpointMap
853 CloudName: {get_param: CloudName}
854 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
855 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
856 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
857 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
858 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
859 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
860 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
861 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
862 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
863 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
864 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
865 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
866 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
869 type: OS::Heat::ResourceGroup
872 count: {get_param: ControllerCount}
873 removal_policies: {get_param: ControllerRemovalPolicies}
875 type: OS::TripleO::Controller
877 AdminPassword: {get_param: AdminPassword}
878 AdminToken: {get_param: AdminToken}
879 CeilometerBackend: {get_param: CeilometerBackend}
880 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
881 CeilometerPassword: {get_param: CeilometerPassword}
882 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
883 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
884 CinderNfsServers: {get_param: CinderNfsServers}
885 CinderPassword: {get_param: CinderPassword}
886 CinderISCSIHelper: {get_param: CinderISCSIHelper}
887 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
888 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
889 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
890 CloudDomain: {get_param: CloudDomain}
891 ControlVirtualInterface: {get_param: ControlVirtualInterface}
892 ControllerExtraConfig: {get_param: controllerExtraConfig}
893 Debug: {get_param: Debug}
894 EnableFencing: {get_param: EnableFencing}
895 ManageFirewall: {get_param: ManageFirewall}
896 PurgeFirewallRules: {get_param: PurgeFirewallRules}
897 EnableGalera: {get_param: EnableGalera}
898 EnableCephStorage: {get_param: ControllerEnableCephStorage}
899 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
900 ExtraConfig: {get_param: ExtraConfig}
901 FencingConfig: {get_param: FencingConfig}
902 Flavor: {get_param: OvercloudControlFlavor}
903 GlancePassword: {get_param: GlancePassword}
904 GlanceBackend: {get_param: GlanceBackend}
905 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
906 GlanceLogFile: {get_param: GlanceLogFile}
907 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
908 HeatPassword: {get_param: HeatPassword}
909 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
910 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
911 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
912 HorizonSecret: {get_resource: HorizonSecret}
913 Image: {get_param: controllerImage}
914 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
915 InstanceNameTemplate: {get_param: InstanceNameTemplate}
916 KeyName: {get_param: KeyName}
917 KeystoneCACertificate: {get_param: KeystoneCACertificate}
918 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
919 KeystoneSigningKey: {get_param: KeystoneSigningKey}
920 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
921 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
922 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
923 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
924 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
925 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
926 MysqlMaxConnections: {get_param: MysqlMaxConnections}
927 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
928 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
929 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
930 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
931 NeutronTenantMtu: {get_param: NeutronTenantMtu}
932 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
933 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
934 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
935 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
936 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
937 NeutronPublicInterface: {get_param: NeutronPublicInterface}
938 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
939 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
940 NeutronPassword: {get_param: NeutronPassword}
941 NeutronDnsmasqOptions:
943 template: {get_param: NeutronDnsmasqOptions}
945 '%MTU%': {get_param: NeutronTenantMtu}
946 NeutronDVR: {get_param: NeutronDVR}
947 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
948 NeutronAgentMode: {get_param: NeutronAgentMode}
949 NeutronCorePlugin: {get_param: NeutronCorePlugin}
950 NeutronServicePlugins: {get_param: NeutronServicePlugins}
951 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
952 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
953 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
954 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
955 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
956 NeutronL3HA: {get_param: NeutronL3HA}
957 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
958 NeutronNetworkType: {get_param: NeutronNetworkType}
959 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
960 NovaPassword: {get_param: NovaPassword}
961 NtpServer: {get_param: NtpServer}
962 MongoDbNoJournal: {get_param: MongoDbNoJournal}
963 PcsdPassword: {get_resource: PcsdPassword}
964 PublicVirtualInterface: {get_param: PublicVirtualInterface}
965 RabbitPassword: {get_param: RabbitPassword}
966 RabbitUserName: {get_param: RabbitUserName}
967 RabbitCookie: {get_attr: [RabbitCookie, value]}
968 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
969 RabbitClientPort: {get_param: RabbitClientPort}
970 RabbitFDLimit: {get_param: RabbitFDLimit}
971 SaharaPassword: {get_param: SaharaPassword}
972 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
973 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
974 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
975 SwiftHashSuffix: {get_param: SwiftHashSuffix}
976 SwiftMountCheck: {get_param: SwiftMountCheck}
977 SwiftMinPartHours: {get_param: SwiftMinPartHours}
978 SwiftPartPower: {get_param: SwiftPartPower}
979 SwiftPassword: {get_param: SwiftPassword}
980 SwiftReplicas: { get_param: SwiftReplicas}
981 TimeZone: {get_param: TimeZone}
982 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
983 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
984 ServiceNetMap: {get_param: ServiceNetMap}
985 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
986 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
987 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
988 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
989 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
990 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
991 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
992 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
993 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
994 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
995 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
996 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
997 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
998 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
999 UpdateIdentifier: {get_param: UpdateIdentifier}
1002 template: {get_param: ControllerHostnameFormat}
1004 '%stackname%': {get_param: 'OS::stack_name'}
1005 NodeIndex: '%index%'
1006 ServerMetadata: {get_param: ServerMetadata}
1007 SchedulerHints: {get_param: ControllerSchedulerHints}
1010 type: OS::Heat::ResourceGroup
1011 depends_on: Networks
1013 count: {get_param: ComputeCount}
1014 removal_policies: {get_param: ComputeRemovalPolicies}
1016 type: OS::TripleO::Compute
1018 AdminPassword: {get_param: AdminPassword}
1019 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1020 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1021 CeilometerPassword: {get_param: CeilometerPassword}
1022 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1023 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1024 Debug: {get_param: Debug}
1025 ExtraConfig: {get_param: ExtraConfig}
1026 Flavor: {get_param: OvercloudComputeFlavor}
1027 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1028 Image: {get_param: NovaImage}
1029 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1030 KeyName: {get_param: KeyName}
1031 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1032 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1033 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1034 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1035 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1036 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1037 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1038 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1039 NeutronNetworkType: {get_param: NeutronNetworkType}
1040 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1041 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1042 NeutronPassword: {get_param: NeutronPassword}
1043 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1044 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1045 NeutronDVR: {get_param: NeutronDVR}
1046 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1047 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1048 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1049 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1050 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1051 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1052 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1053 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1054 # L3 HA and Failover is not relevant for Computes, should be removed
1055 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1056 NeutronL3HA: {get_param: NeutronL3HA}
1057 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1058 NovaComputeDriver: {get_param: NovaComputeDriver}
1059 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1060 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1061 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1062 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1063 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1064 NovaPassword: {get_param: NovaPassword}
1065 NovaOVSBridge: {get_param: NovaOVSBridge}
1066 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1067 NtpServer: {get_param: NtpServer}
1068 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1069 RabbitPassword: {get_param: RabbitPassword}
1070 RabbitUserName: {get_param: RabbitUserName}
1071 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1072 RabbitClientPort: {get_param: RabbitClientPort}
1073 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1074 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1075 ServiceNetMap: {get_param: ServiceNetMap}
1076 TimeZone: {get_param: TimeZone}
1077 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1078 UpdateIdentifier: {get_param: UpdateIdentifier}
1081 template: {get_param: ComputeHostnameFormat}
1083 '%stackname%': {get_param: 'OS::stack_name'}
1084 CloudDomain: {get_param: CloudDomain}
1085 ServerMetadata: {get_param: ServerMetadata}
1086 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1089 type: OS::Heat::ResourceGroup
1090 depends_on: Networks
1092 count: {get_param: BlockStorageCount}
1093 removal_policies: {get_param: BlockStorageRemovalPolicies}
1095 type: OS::TripleO::BlockStorage
1097 Debug: {get_param: Debug}
1098 Image: {get_param: BlockStorageImage}
1099 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1100 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1101 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1102 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1103 CinderPassword: {get_param: CinderPassword}
1104 KeyName: {get_param: KeyName}
1105 Flavor: {get_param: OvercloudBlockStorageFlavor}
1106 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1107 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1108 RabbitPassword: {get_param: RabbitPassword}
1109 RabbitUserName: {get_param: RabbitUserName}
1110 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1111 RabbitClientPort: {get_param: RabbitClientPort}
1112 TimeZone: {get_param: TimeZone}
1113 NtpServer: {get_param: NtpServer}
1114 UpdateIdentifier: {get_param: UpdateIdentifier}
1117 template: {get_param: BlockStorageHostnameFormat}
1119 '%stackname%': {get_param: 'OS::stack_name'}
1120 ServiceNetMap: {get_param: ServiceNetMap}
1121 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1122 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1123 ExtraConfig: {get_param: ExtraConfig}
1124 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1125 CloudDomain: {get_param: CloudDomain}
1126 ServerMetadata: {get_param: ServerMetadata}
1127 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1130 type: OS::Heat::ResourceGroup
1131 depends_on: Networks
1133 count: {get_param: ObjectStorageCount}
1134 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1136 type: OS::TripleO::ObjectStorage
1138 KeyName: {get_param: KeyName}
1139 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1140 HashSuffix: {get_param: SwiftHashSuffix}
1141 MountCheck: {get_param: SwiftMountCheck}
1142 MinPartHours: {get_param: SwiftMinPartHours}
1143 PartPower: {get_param: SwiftPartPower}
1144 Image: {get_param: SwiftStorageImage}
1145 Replicas: { get_param: SwiftReplicas}
1146 TimeZone: {get_param: TimeZone}
1147 NtpServer: {get_param: NtpServer}
1148 UpdateIdentifier: {get_param: UpdateIdentifier}
1149 ServiceNetMap: {get_param: ServiceNetMap}
1152 template: {get_param: ObjectStorageHostnameFormat}
1154 '%stackname%': {get_param: 'OS::stack_name'}
1155 ExtraConfig: {get_param: ExtraConfig}
1156 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1157 CloudDomain: {get_param: CloudDomain}
1158 ServerMetadata: {get_param: ServerMetadata}
1159 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1162 type: OS::Heat::ResourceGroup
1163 depends_on: Networks
1165 count: {get_param: CephStorageCount}
1166 removal_policies: {get_param: CephStorageRemovalPolicies}
1168 type: OS::TripleO::CephStorage
1170 Image: {get_param: CephStorageImage}
1171 KeyName: {get_param: KeyName}
1172 Flavor: {get_param: OvercloudCephStorageFlavor}
1173 NtpServer: {get_param: NtpServer}
1174 ServiceNetMap: {get_param: ServiceNetMap}
1175 TimeZone: {get_param: TimeZone}
1176 UpdateIdentifier: {get_param: UpdateIdentifier}
1179 template: {get_param: CephStorageHostnameFormat}
1181 '%stackname%': {get_param: 'OS::stack_name'}
1182 ExtraConfig: {get_param: ExtraConfig}
1183 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1184 CloudDomain: {get_param: CloudDomain}
1185 ServerMetadata: {get_param: ServerMetadata}
1186 SchedulerHints: {get_param: CephStorageSchedulerHints}
1188 ControllerIpListMap:
1189 type: OS::TripleO::Network::Ports::NetIpListMap
1191 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1192 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1193 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1194 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1195 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1196 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1197 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1200 type: OS::TripleO::AllNodes::SoftwareConfig
1202 compute_hosts: {get_attr: [Compute, hosts_entry]}
1203 controller_hosts: {get_attr: [Controller, hosts_entry]}
1204 controller_ips: {get_attr: [Controller, ip_address]}
1205 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1206 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1207 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1208 controller_names: {get_attr: [Controller, hostname]}
1209 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1210 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1211 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1212 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1213 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1214 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1215 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1216 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1217 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1218 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1219 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1220 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1221 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1222 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1223 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1224 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1225 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1226 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1227 DeployIdentifier: {get_param: DeployIdentifier}
1228 UpdateIdentifier: {get_param: UpdateIdentifier}
1231 type: OS::Heat::RandomString
1235 MysqlClusterUniquePart:
1236 type: OS::Heat::RandomString
1241 type: OS::Heat::RandomString
1244 salt: {get_param: RabbitCookieSalt}
1246 # creates the network architecture
1248 type: OS::TripleO::Network
1251 type: OS::Neutron::Port
1252 depends_on: Networks
1254 name: control_virtual_ip
1255 network: {get_param: NeutronControlPlaneID}
1256 fixed_ips: {get_param: ControlFixedIPs}
1257 replacement_policy: AUTO
1260 depends_on: Networks
1261 type: OS::TripleO::Network::Ports::RedisVipPort
1263 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1264 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1265 PortName: redis_virtual_ip
1266 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1269 # The public VIP is on the External net, falls back to ctlplane
1271 depends_on: Networks
1272 type: OS::TripleO::Network::Ports::ExternalVipPort
1274 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1275 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1276 PortName: public_virtual_ip
1277 FixedIPs: {get_param: PublicVirtualFixedIPs}
1279 InternalApiVirtualIP:
1280 depends_on: Networks
1281 type: OS::TripleO::Network::Ports::InternalApiVipPort
1283 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1284 PortName: internal_api_virtual_ip
1285 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1288 depends_on: Networks
1289 type: OS::TripleO::Network::Ports::StorageVipPort
1291 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1292 PortName: storage_virtual_ip
1293 FixedIPs: {get_param: StorageVirtualFixedIPs}
1295 StorageMgmtVirtualIP:
1296 depends_on: Networks
1297 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1299 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1300 PortName: storage_management_virtual_ip
1301 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1304 type: OS::TripleO::Network::Ports::NetVipMap
1306 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1307 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1308 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1309 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1310 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1311 # No tenant or management VIP required
1314 type: OS::TripleO::VipConfig
1317 type: OS::Heat::StructuredDeployments
1320 config: {get_resource: VipConfig}
1321 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1323 # service VIP mappings
1324 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1325 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1326 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1327 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1328 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1329 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1330 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1331 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1332 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1333 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1334 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1335 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1336 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1337 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1338 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1339 # direct configuration of Virtual IPs for each network
1340 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1341 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1342 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1343 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1344 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1345 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1347 ControllerBootstrapNodeConfig:
1348 type: OS::TripleO::BootstrapNode::SoftwareConfig
1350 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1351 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1353 ControllerBootstrapNodeDeployment:
1354 type: OS::Heat::StructuredDeployments
1356 name: ControllerBootstrapNodeDeployment
1357 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1358 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1360 ControllerSwiftDeployment:
1361 type: OS::Heat::StructuredDeployments
1363 name: ControllerSwiftDeployment
1364 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1365 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1367 ObjectStorageSwiftDeployment:
1368 type: OS::Heat::StructuredDeployments
1370 name: ObjectStorageSwiftDeployment
1371 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1372 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1374 SwiftDevicesAndProxyConfig:
1375 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1377 controller_swift_devices: {get_attr: [Controller, swift_device]}
1378 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1379 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1381 ComputeCephDeployment:
1382 type: OS::Heat::StructuredDeployments
1384 name: ComputeCephDeployment
1385 config: {get_attr: [CephClusterConfig, config_id]}
1386 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1388 ControllerCephDeployment:
1389 type: OS::Heat::StructuredDeployments
1391 name: ControllerCephDeployment
1392 config: {get_attr: [CephClusterConfig, config_id]}
1393 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1395 CephStorageCephDeployment:
1396 type: OS::Heat::StructuredDeployments
1398 name: CephStorageCephDeployment
1399 config: {get_attr: [CephClusterConfig, config_id]}
1400 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1403 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1405 ceph_storage_count: {get_param: CephStorageCount}
1406 ceph_fsid: {get_param: CephClusterFSID}
1407 ceph_mon_key: {get_param: CephMonKey}
1408 ceph_admin_key: {get_param: CephAdminKey}
1409 ceph_client_key: {get_param: CephClientKey}
1410 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1411 ceph_mon_names: {get_attr: [Controller, hostname]}
1412 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1414 ControllerClusterConfig:
1415 type: OS::Heat::StructuredConfig
1417 group: os-apply-config
1420 nodes: {get_attr: [Controller, corosync_node]}
1424 nodes: {get_attr: [Controller, hostname]}
1426 nodes: {get_attr: [Controller, corosync_node]}
1428 nodes: {get_attr: [Controller, corosync_node]}
1430 ControllerClusterDeployment:
1431 type: OS::Heat::StructuredDeployments
1433 name: ControllerClusterDeployment
1434 config: {get_resource: ControllerClusterConfig}
1435 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1437 ControllerAllNodesDeployment:
1438 type: OS::Heat::StructuredDeployments
1440 name: ControllerAllNodesDeployment
1441 config: {get_attr: [allNodesConfig, config_id]}
1442 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1444 ComputeAllNodesDeployment:
1445 type: OS::Heat::StructuredDeployments
1447 name: ComputeAllNodesDeployment
1448 config: {get_attr: [allNodesConfig, config_id]}
1449 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1451 BlockStorageAllNodesDeployment:
1452 type: OS::Heat::StructuredDeployments
1454 name: BlockStorageAllNodesDeployment
1455 config: {get_attr: [allNodesConfig, config_id]}
1456 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1458 ObjectStorageAllNodesDeployment:
1459 type: OS::Heat::StructuredDeployments
1461 name: ObjectStorageAllNodesDeployment
1462 config: {get_attr: [allNodesConfig, config_id]}
1463 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1465 CephStorageAllNodesDeployment:
1466 type: OS::Heat::StructuredDeployments
1468 name: CephStorageAllNodesDeployment
1469 config: {get_attr: [allNodesConfig, config_id]}
1470 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1472 # All Nodes Validations
1473 AllNodesValidationConfig:
1474 type: OS::TripleO::AllNodes::Validation
1479 - - {get_attr: [Controller, resource.0.external_ip_address]}
1480 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1481 - {get_attr: [Controller, resource.0.storage_ip_address]}
1482 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1483 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1485 ControllerAllNodesValidationDeployment:
1486 type: OS::Heat::StructuredDeployments
1487 depends_on: ControllerAllNodesDeployment
1489 name: ControllerAllNodesValidationDeployment
1490 config: {get_resource: AllNodesValidationConfig}
1491 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1493 ComputeAllNodesValidationDeployment:
1494 type: OS::Heat::StructuredDeployments
1495 depends_on: ComputeAllNodesDeployment
1497 name: ComputeAllNodesValidationDeployment
1498 config: {get_resource: AllNodesValidationConfig}
1499 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1501 BlockStorageAllNodesValidationDeployment:
1502 type: OS::Heat::StructuredDeployments
1503 depends_on: BlockStorageAllNodesDeployment
1505 name: BlockStorageAllNodesValidationDeployment
1506 config: {get_resource: AllNodesValidationConfig}
1507 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1509 ObjectStorageAllNodesValidationDeployment:
1510 type: OS::Heat::StructuredDeployments
1511 depends_on: ObjectStorageAllNodesDeployment
1513 name: ObjectStorageAllNodesValidationDeployment
1514 config: {get_resource: AllNodesValidationConfig}
1515 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1517 CephStorageAllNodesValidationDeployment:
1518 type: OS::Heat::StructuredDeployments
1519 depends_on: CephStorageAllNodesDeployment
1521 name: CephStorageAllNodesValidationDeployment
1522 config: {get_resource: AllNodesValidationConfig}
1523 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1526 type: OS::TripleO::Tasks::UpdateWorkflow
1528 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1529 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1530 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1531 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1532 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1534 deploy_identifier: {get_param: DeployIdentifier}
1535 update_identifier: {get_param: UpdateIdentifier}
1537 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1538 # the nested template may configure each role differently (or not at all)
1539 AllNodesExtraConfig:
1540 type: OS::TripleO::AllNodesExtraConfig
1541 depends_on: UpdateWorkflow
1543 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1544 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1545 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1546 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1547 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1549 # Nested stack deployment runs after all other controller deployments
1550 ControllerNodesPostDeployment:
1551 type: OS::TripleO::ControllerPostDeployment
1552 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1554 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1555 NodeConfigIdentifiers:
1556 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1557 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1558 deployment_identifier: {get_param: DeployIdentifier}
1560 ComputeNodesPostDeployment:
1561 type: OS::TripleO::ComputePostDeployment
1562 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1564 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1565 NodeConfigIdentifiers:
1566 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1567 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1568 deployment_identifier: {get_param: DeployIdentifier}
1570 ObjectStorageNodesPostDeployment:
1571 type: OS::TripleO::ObjectStoragePostDeployment
1572 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1574 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1575 NodeConfigIdentifiers:
1576 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1577 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1578 deployment_identifier: {get_param: DeployIdentifier}
1580 BlockStorageNodesPostDeployment:
1581 type: OS::TripleO::BlockStoragePostDeployment
1582 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1584 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1585 NodeConfigIdentifiers:
1586 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1587 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1588 deployment_identifier: {get_param: DeployIdentifier}
1590 CephStorageNodesPostDeployment:
1591 type: OS::TripleO::CephStoragePostDeployment
1592 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1594 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1595 NodeConfigIdentifiers:
1596 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1597 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1598 deployment_identifier: {get_param: DeployIdentifier}
1602 description: URL for the Overcloud Keystone service
1603 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1605 description: Keystone Admin VIP endpoint
1606 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1608 description: Controller VIP for public API endpoints
1609 value: {get_attr: [VipMap, net_ip_map, external]}
1610 CeilometerInternalVip:
1611 description: VIP for Ceilometer API internal endpoint
1612 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1614 description: VIP for Cinder API internal endpoint
1615 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1617 description: VIP for Glance API internal endpoint
1618 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1620 description: VIP for Heat API internal endpoint
1621 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1622 KeystoneInternalVip:
1623 description: VIP for Keystone API internal endpoint
1624 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1626 description: VIP for Neutron API internal endpoint
1627 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1629 description: VIP for Nova API internal endpoint
1630 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1632 description: VIP for Sahara API internal endpoint
1633 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1635 description: VIP for Swift Proxy internal endpoint
1636 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1639 The content that should be appended to your /etc/hosts if you want to get
1640 hostname-based access to the deployed nodes (useful for testing without
1642 value: {get_attr: [allNodesConfig, hosts_entries]}