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 password for the aodh services.
26 description: The ceilometer backend type.
28 CeilometerMeteringSecret:
29 description: Secret shared by the ceilometer services.
33 description: The password for the ceilometer service account.
36 # This has to be an UUID so for now we generate it outside the template
40 description: The Ceph cluster FSID. Must be a UUID.
43 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
48 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
51 CinderEnableNfsBackend:
53 description: Whether to enable or not the NFS backend for Cinder
57 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.
63 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
64 CinderEnableIscsiBackend:
66 description: Whether to enable or not the Iscsi backend for Cinder
68 CinderEnableRbdBackend:
70 description: Whether to enable or not the Rbd backend for Cinder
74 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
78 description: Should be used for arbitrary ips.
82 description: Set to True to enable debugging on all services.
86 description: Syslog address where HAproxy will send its log
90 description: A list of IP/Hostname allowed to connect to horizon
91 type: comma_delimited_list
93 default: 'REBUILD_PRESERVE_EPHEMERAL'
94 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
96 InternalApiVirtualFixedIPs:
99 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
100 [{'ip_address':'1.2.3.4'}]
104 description: Name of an existing Nova key pair to enable SSH access to the instances
107 - custom_constraint: nova.keypair
108 NeutronExternalNetworkBridge:
109 description: Name of bridge used for external network traffic.
112 NeutronBridgeMappings:
114 The OVS logical->physical bridge mappings to use. See the Neutron
115 documentation for details. Defaults to mapping br-ex - the external
116 bridge on hosts - to a physical name 'datacentre' which can be used
117 to create provider networks (and we use this for the default floating
118 network) - if changing this either use different post-install network
119 scripts or be sure to keep 'datacentre' as a mapping network name.
120 type: comma_delimited_list
121 default: "datacentre:br-ex"
122 NeutronControlPlaneID:
125 description: Neutron ID or name for ctlplane network.
126 NeutronEnableIsolatedMetadata:
128 description: If True, DHCP provide metadata route to VM.
130 NeutronEnableTunnelling:
136 Enable/disable the L2 population feature in the Neutron agents.
139 type: comma_delimited_list
140 default: 'datacentre'
142 If set, flat networks to configure in neutron plugins. Defaults to
143 'datacentre' to permit external network creation.
146 description: The tenant network type for Neutron.
147 type: comma_delimited_list
149 description: The password for the neutron service account, used by neutron agents.
152 NeutronPublicInterface:
154 description: What interface to bridge onto br-ex for network nodes.
156 NeutronPublicInterfaceTag:
159 VLAN tag for creating a public VLAN. The tag will be used to
160 create an access port on the exterior bridge for each control plane node,
161 and that port will be given the IP address returned by neutron from the
162 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
163 overcloud.yaml to include the deployment of VLAN ports to the control
166 NeutronComputeAgentMode:
168 description: Agent mode for the neutron-l3-agent on the compute hosts
172 description: Agent mode for the neutron-l3-agent on the controller hosts
176 description: Whether to configure Neutron Distributed Virtual Routers
178 NeutronMetadataProxySharedSecret:
179 description: Shared secret to prevent spoofing
184 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
185 be at least 50 bytes smaller than the MTU on the physical network. This
186 value will be used to set the MTU on the virtual Ethernet device.
187 This value will be used to construct the NeutronDnsmasqOptions, since that
188 will determine the MTU that is assigned to the VM host through DHCP.
194 The tunnel types for the Neutron tenant network.
195 type: comma_delimited_list
196 NeutronTunnelIdRanges:
198 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
199 of GRE tunnel IDs that are available for tenant network allocation
200 default: ["1:4094", ]
201 type: comma_delimited_list
204 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
205 of VXLAN VNI IDs that are available for tenant network allocation
206 default: ["1:4094", ]
207 type: comma_delimited_list
211 The core plugin for Neutron. The value should be the entrypoint to be loaded
212 from neutron.core_plugins namespace.
214 NeutronServicePlugins:
215 default: "router,qos"
217 Comma-separated list of service plugin entrypoints to be loaded from the
218 neutron.service_plugins namespace.
219 type: comma_delimited_list
221 default: "vxlan,vlan,flat,gre"
223 Comma-separated list of network type driver entrypoints to be loaded.
224 type: comma_delimited_list
225 NeutronMechanismDrivers:
226 default: 'openvswitch'
228 The mechanism drivers for the Neutron tenant network.
229 type: comma_delimited_list
230 NeutronPluginExtensions:
231 default: "qos,port_security"
233 Comma-separated list of extensions enabled for the Neutron plugin.
234 type: comma_delimited_list
235 NeutronAgentExtensions:
238 Comma-separated list of extensions enabled for the Neutron agents.
239 type: comma_delimited_list
240 NeutronAllowL3AgentFailover:
242 description: Allow automatic l3-agent failover
246 description: Whether to enable l3-agent HA
248 NeutronDhcpAgentsPerNetwork:
251 description: The number of neutron dhcp agents to schedule per network
254 description: Enable IPv6 features in Nova
257 description: The password for the nova service account, used by nova-api.
262 description: Comma-separated list of ntp servers
263 type: comma_delimited_list
266 description: Should MongoDb journaling be disabled
270 description: Enable IPv6 if MongoDB VIP is IPv6
272 PublicVirtualFixedIPs:
275 Control the IP allocation for the PublicVirtualInterface port. E.g.
276 [{'ip_address':'1.2.3.4'}]
281 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
282 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
285 description: The username for RabbitMQ
289 description: The password for RabbitMQ
295 Rabbit client subscriber parameter to specify
296 an SSL connection to the RabbitMQ host.
300 description: Set rabbit subscriber port, change this if using SSL
302 # We need to set this as string because 'unlimited' is a valid setting
305 description: Configures RabbitMQ FD limit
307 SnmpdReadonlyUserName:
308 default: ro_snmp_user
309 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
311 SnmpdReadonlyUserPassword:
312 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
315 StorageVirtualFixedIPs:
318 Control the IP allocation for the StorageVirtualInterface port. E.g.
319 [{'ip_address':'1.2.3.4'}]
321 StorageMgmtVirtualFixedIPs:
324 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
325 [{'ip_address':'1.2.3.4'}]
329 description: The timezone to be set on nodes.
332 default: 'localdomain'
335 The DNS domain used for the hosts. This should match the dhcp_domain
336 configured in the Undercloud neutron. Defaults to localdomain.
340 Extra properties or metadata passed to Nova for the created nodes in
341 the overcloud. It's accessible via the Nova metadata API.
344 # Controller-specific params
346 description: The keystone auth secret.
349 CinderLVMLoopDeviceSize:
351 description: The size of the loopback file used by the cinder LVM driver.
353 CinderNfsMountOptions:
356 Mount options for NFS mounts used by Cinder NFS backend. Effective
357 when CinderEnableNfsBackend is true.
362 NFS servers used by Cinder NFS backend. Effective when
363 CinderEnableNfsBackend is true.
364 type: comma_delimited_list
366 description: The password for the cinder service account, used by cinder-api.
371 description: The iSCSI helper to use with cinder.
378 controllerExtraConfig:
381 Controller specific configuration to inject into the cluster. Same
382 structure as ExtraConfig.
386 default: overcloud-full
388 - custom_constraint: glance.image
389 OvercloudControlFlavor:
390 description: Flavor for control nodes to request when deploying.
394 - custom_constraint: nova.flavor
395 ControlVirtualInterface:
397 description: Interface where virtual ip will be assigned.
401 description: Whether to enable fencing in Pacemaker or not.
405 description: Whether to use Galera instead of regular MariaDB.
407 ControllerEnableCephStorage:
409 description: Whether to deploy Ceph Storage (OSD) on the Controller
411 ControllerEnableSwiftStorage:
413 description: Whether to enable Swift Storage on the Controller
415 ControllerSchedulerHints:
417 description: Optional scheduler hints to pass to nova
422 Additional configuration to inject into the cluster. The format required
423 may be implementation specific, e.g puppet hieradata. Any role specific
424 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
429 Pacemaker fencing configuration. The JSON should have
430 the following structure:
434 "agent": "AGENT_NAME",
435 "host_mac": "HOST_MAC_ADDRESS",
436 "params": {"PARAM_NAME": "PARAM_VALUE"}
444 "agent": "fence_xvm",
445 "host_mac": "52:54:00:aa:bb:cc",
447 "multicast_address": "225.0.0.12",
448 "port": "baremetal_0",
450 "manage_key_file": true,
451 "key_file": "/etc/fence_xvm.key",
452 "key_file_password": "abcdef"
459 description: The filepath of the file to use for logging messages from Glance.
462 GlanceNotifierStrategy:
463 description: Strategy to use for Glance notification queue
467 description: The password for the glance service account, used by the glance services.
472 description: The short name of the Glance backend to use. Should be one
473 of swift, rbd or file
476 - allowed_values: ['swift', 'file', 'rbd']
478 description: The password for the Heat service account, used by the Heat services.
481 HeatStackDomainAdminPassword:
482 description: Password for heat_domain_admin user.
485 InstanceNameTemplate:
486 default: 'instance-%08x'
487 description: Template string to be used to generate instance names
489 KeystoneCACertificate:
491 description: Keystone self-signed certificate authority certificate.
493 KeystoneSigningCertificate:
495 description: Keystone certificate for verifying token validity.
499 description: Keystone key for signing tokens.
502 KeystoneSSLCertificate:
504 description: Keystone certificate for verifying token validity.
506 KeystoneSSLCertificateKey:
508 description: Keystone key for signing tokens.
511 KeystoneNotificationDriver:
512 description: Comma-separated list of Oslo notification drivers used by Keystone
513 default: ['messaging']
514 type: comma_delimited_list
515 KeystoneNotificationFormat:
516 description: The Keystone notification format
520 - allowed_values: [ 'basic', 'cadf' ]
523 description: Whether to manage IPtables rules.
527 description: Whether IPtables rules should be purged before setting up the ones.
529 MysqlInnodbBufferPoolSize:
531 Specifies the size of the buffer pool in megabytes. Setting to
532 zero should be interpreted as "no value" and will defer to the
537 description: Configures MySQL max_connections config setting
540 NeutronDnsmasqOptions:
541 default: 'dhcp-option-force=26,%MTU%'
543 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
544 to be set to the value of NeutronTenantMtu, which should be set to account
547 NeutronPublicInterfaceDefaultRoute:
549 description: A custom default route for the NeutronPublicInterface.
551 NeutronPublicInterfaceIP:
553 description: A custom IP address to put onto the NeutronPublicInterface.
555 NeutronPublicInterfaceRawDevice:
557 description: If set, the public interface is a vlan with this device as the raw device.
559 PublicVirtualInterface:
562 Specifies the interface where the public-facing virtual ip will be assigned.
563 This should be int_public when a VLAN is being used.
566 description: A random string to be used as a salt when hashing to determine mappings in the ring.
570 description: The password for the swift service account, used by the swift proxy services.
575 description: Value of mount_check in Swift account/container/object -server.conf
580 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
583 description: Partition Power to use when building Swift rings
588 description: How many replicas to use in the swift rings.
590 description: The password for the sahara service account.
594 # Compute-specific params
595 CeilometerComputeAgent:
596 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
600 - allowed_values: ['', Present]
604 HypervisorNeutronPhysicalBridge:
607 An OVS bridge to create on each hypervisor. This defaults to br-ex the
608 same as the control plane nodes, as we have a uniform configuration of
609 the openvswitch agent. Typically should not need to be changed.
611 HypervisorNeutronPublicInterface:
613 description: What interface to add to the HypervisorNeutronPhysicalBridge.
615 NeutronNetworkVLANRanges:
616 default: 'datacentre:1:1000'
618 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
619 Neutron documentation for permitted values. Defaults to permitting any
620 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
621 type: comma_delimited_list
624 default: libvirt.LibvirtDriver
625 NovaComputeExtraConfig:
628 NovaCompute specific configuration to inject into the cluster. Same
629 structure as ExtraConfig.
631 NovaComputeLibvirtType:
634 NovaComputeLibvirtVifDriver:
636 description: Libvirt VIF driver configuration for the network
638 NovaComputeSchedulerHints:
640 description: Optional scheduler hints to pass to nova
642 NovaEnableRbdBackend:
644 description: Whether to enable or not the Rbd backend for Nova
648 default: overcloud-full
650 - custom_constraint: glance.image
653 description: Name of integration bridge used by Open vSwitch
655 NovaSecurityGroupAPI:
657 description: The full class name of the security API class
659 OvercloudComputeFlavor:
660 description: Use this flavor
664 - custom_constraint: nova.flavor
667 NeutronTenantNetwork: tenant
668 CeilometerApiNetwork: internal_api
669 AodhApiNetwork: internal_api
670 MongoDbNetwork: internal_api
671 CinderApiNetwork: internal_api
672 CinderIscsiNetwork: storage
673 GlanceApiNetwork: storage
674 GlanceRegistryNetwork: internal_api
675 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
676 KeystonePublicApiNetwork: internal_api
677 NeutronApiNetwork: internal_api
678 HeatApiNetwork: internal_api
679 NovaApiNetwork: internal_api
680 NovaMetadataNetwork: internal_api
681 NovaVncProxyNetwork: internal_api
682 SwiftMgmtNetwork: storage_mgmt
683 SwiftProxyNetwork: storage
684 SaharaApiNetwork: internal_api
685 HorizonNetwork: internal_api
686 MemcachedNetwork: internal_api
687 RabbitMqNetwork: internal_api
688 RedisNetwork: internal_api
689 MysqlNetwork: internal_api
690 CephClusterNetwork: storage_mgmt
691 CephPublicNetwork: storage
692 ControllerHostnameResolveNetwork: internal_api
693 ComputeHostnameResolveNetwork: internal_api
694 BlockStorageHostnameResolveNetwork: internal_api
695 ObjectStorageHostnameResolveNetwork: internal_api
696 CephStorageHostnameResolveNetwork: storage
697 description: Mapping of service_name -> network name. Typically set
698 via parameter_defaults in the resource registry.
701 # Block storage specific parameters
706 default: overcloud-full
708 OvercloudBlockStorageFlavor:
709 description: Flavor for block storage nodes to request when deploying.
713 - custom_constraint: nova.flavor
714 BlockStorageExtraConfig:
717 BlockStorage specific configuration to inject into the cluster. Same
718 structure as ExtraConfig.
720 BlockStorageSchedulerHints:
722 description: Optional scheduler hints to pass to nova
726 # Object storage specific parameters
730 OvercloudSwiftStorageFlavor:
731 description: Flavor for Swift storage nodes to request when deploying.
735 - custom_constraint: nova.flavor
737 default: overcloud-full
739 ObjectStorageExtraConfig:
742 ObjectStorage specific configuration to inject into the cluster. Same
743 structure as ExtraConfig.
745 ObjectStorageSchedulerHints:
747 description: Optional scheduler hints to pass to nova
750 # Ceph storage specific parameters
755 default: overcloud-full
757 OvercloudCephStorageFlavor:
759 description: Flavor for Ceph storage nodes to request when deploying.
762 - custom_constraint: nova.flavor
763 CephStorageExtraConfig:
766 CephStorage specific configuration to inject into the cluster. Same
767 structure as ExtraConfig.
769 CephStorageSchedulerHints:
771 description: Optional scheduler hints to pass to nova
775 # Hostname format for each role
776 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
777 # and %stackname% is replaced with OS::stack_name in the template below.
778 # If you want to use the heat generated names, pass '' (empty string).
779 ControllerHostnameFormat:
781 description: Format for Controller node hostnames
782 default: '%stackname%-controller-%index%'
783 ComputeHostnameFormat:
785 description: Format for Compute node hostnames
786 default: '%stackname%-novacompute-%index%'
787 BlockStorageHostnameFormat:
789 description: Format for BlockStorage node hostnames
790 default: '%stackname%-blockstorage-%index%'
791 ObjectStorageHostnameFormat:
793 description: Format for SwiftStorage node hostnames
794 default: '%stackname%-objectstorage-%index%'
795 CephStorageHostnameFormat:
797 description: Format for CephStorage node hostnames
798 default: '%stackname%-cephstorage-%index%'
800 # Identifiers to trigger tasks on nodes
805 Setting to a previously unused value during stack-update will trigger
806 package update on all nodes
811 Setting this to a unique value will re-run any deployment tasks which
812 perform configuration on a Heat stack-update.
814 # If you want to remove a specific node from a resource group, you can pass
815 # the node name or id as a <Group>RemovalPolicies parameter, for example:
816 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
817 ControllerRemovalPolicies:
821 List of resources to be removed from ControllerResourceGroup when
822 doing an update which requires removal of specific resources.
823 ComputeRemovalPolicies:
827 List of resources to be removed from ComputeResourceGroup when
828 doing an update which requires removal of specific resources.
829 BlockStorageRemovalPolicies:
833 List of resources to be removed from BlockStorageResourceGroup when
834 doing an update which requires removal of specific resources.
835 ObjectStorageRemovalPolicies:
839 List of resources to be removed from ObjectStorageResourceGroup when
840 doing an update which requires removal of specific resources.
841 CephStorageRemovalPolicies:
845 List of resources to be removed from CephStorageResourceGroup when
846 doing an update which requires removal of specific resources.
851 HeatAuthEncryptionKey:
852 type: OS::Heat::RandomString
855 type: OS::Heat::RandomString
860 type: OS::Heat::RandomString
865 type: OS::TripleO::EndpointMap
867 CloudName: {get_param: CloudName}
868 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
869 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
870 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
871 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
872 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
873 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
874 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
875 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
876 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
877 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
878 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
879 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
880 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
881 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
884 type: OS::Heat::ResourceGroup
887 count: {get_param: ControllerCount}
888 removal_policies: {get_param: ControllerRemovalPolicies}
890 type: OS::TripleO::Controller
892 AdminPassword: {get_param: AdminPassword}
893 AdminToken: {get_param: AdminToken}
894 AodhPassword: {get_param: AodhPassword}
895 CeilometerBackend: {get_param: CeilometerBackend}
896 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
897 CeilometerPassword: {get_param: CeilometerPassword}
898 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
899 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
900 CinderNfsServers: {get_param: CinderNfsServers}
901 CinderPassword: {get_param: CinderPassword}
902 CinderISCSIHelper: {get_param: CinderISCSIHelper}
903 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
904 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
905 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
906 CloudDomain: {get_param: CloudDomain}
907 ControlVirtualInterface: {get_param: ControlVirtualInterface}
908 ControllerExtraConfig: {get_param: controllerExtraConfig}
909 Debug: {get_param: Debug}
910 EnableFencing: {get_param: EnableFencing}
911 ManageFirewall: {get_param: ManageFirewall}
912 PurgeFirewallRules: {get_param: PurgeFirewallRules}
913 EnableGalera: {get_param: EnableGalera}
914 EnableCephStorage: {get_param: ControllerEnableCephStorage}
915 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
916 ExtraConfig: {get_param: ExtraConfig}
917 FencingConfig: {get_param: FencingConfig}
918 Flavor: {get_param: OvercloudControlFlavor}
919 GlancePassword: {get_param: GlancePassword}
920 GlanceBackend: {get_param: GlanceBackend}
921 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
922 GlanceLogFile: {get_param: GlanceLogFile}
923 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
924 HeatPassword: {get_param: HeatPassword}
925 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
926 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
927 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
928 HorizonSecret: {get_resource: HorizonSecret}
929 Image: {get_param: controllerImage}
930 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
931 InstanceNameTemplate: {get_param: InstanceNameTemplate}
932 KeyName: {get_param: KeyName}
933 KeystoneCACertificate: {get_param: KeystoneCACertificate}
934 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
935 KeystoneSigningKey: {get_param: KeystoneSigningKey}
936 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
937 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
938 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
939 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
940 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
941 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
942 MysqlMaxConnections: {get_param: MysqlMaxConnections}
943 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
944 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
945 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
946 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
947 NeutronTenantMtu: {get_param: NeutronTenantMtu}
948 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
949 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
950 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
951 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
952 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
953 NeutronPublicInterface: {get_param: NeutronPublicInterface}
954 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
955 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
956 NeutronPassword: {get_param: NeutronPassword}
957 NeutronDnsmasqOptions:
959 template: {get_param: NeutronDnsmasqOptions}
961 '%MTU%': {get_param: NeutronTenantMtu}
962 NeutronDVR: {get_param: NeutronDVR}
963 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
964 NeutronAgentMode: {get_param: NeutronAgentMode}
965 NeutronCorePlugin: {get_param: NeutronCorePlugin}
966 NeutronServicePlugins: {get_param: NeutronServicePlugins}
967 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
968 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
969 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
970 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
971 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
972 NeutronL3HA: {get_param: NeutronL3HA}
973 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
974 NeutronNetworkType: {get_param: NeutronNetworkType}
975 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
976 NovaIPv6: {get_param: NovaIPv6}
977 NovaPassword: {get_param: NovaPassword}
978 NtpServer: {get_param: NtpServer}
979 MongoDbNoJournal: {get_param: MongoDbNoJournal}
980 MongoDbIPv6: {get_param: MongoDbIPv6}
981 PcsdPassword: {get_resource: PcsdPassword}
982 PublicVirtualInterface: {get_param: PublicVirtualInterface}
983 RabbitPassword: {get_param: RabbitPassword}
984 RabbitUserName: {get_param: RabbitUserName}
985 RabbitCookie: {get_attr: [RabbitCookie, value]}
986 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
987 RabbitClientPort: {get_param: RabbitClientPort}
988 RabbitFDLimit: {get_param: RabbitFDLimit}
989 SaharaPassword: {get_param: SaharaPassword}
990 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
991 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
992 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
993 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
994 SwiftHashSuffix: {get_param: SwiftHashSuffix}
995 SwiftMountCheck: {get_param: SwiftMountCheck}
996 SwiftMinPartHours: {get_param: SwiftMinPartHours}
997 SwiftPartPower: {get_param: SwiftPartPower}
998 SwiftPassword: {get_param: SwiftPassword}
999 SwiftReplicas: { get_param: SwiftReplicas}
1000 TimeZone: {get_param: TimeZone}
1001 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
1002 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
1003 ServiceNetMap: {get_param: ServiceNetMap}
1004 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1005 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1006 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1007 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1008 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1009 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1010 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1011 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1012 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1013 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1014 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1015 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
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 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1019 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1020 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1021 UpdateIdentifier: {get_param: UpdateIdentifier}
1024 template: {get_param: ControllerHostnameFormat}
1026 '%stackname%': {get_param: 'OS::stack_name'}
1027 NodeIndex: '%index%'
1028 ServerMetadata: {get_param: ServerMetadata}
1029 SchedulerHints: {get_param: ControllerSchedulerHints}
1032 type: OS::Heat::ResourceGroup
1033 depends_on: Networks
1035 count: {get_param: ComputeCount}
1036 removal_policies: {get_param: ComputeRemovalPolicies}
1038 type: OS::TripleO::Compute
1040 AdminPassword: {get_param: AdminPassword}
1041 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1042 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1043 CeilometerPassword: {get_param: CeilometerPassword}
1044 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1045 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1046 Debug: {get_param: Debug}
1047 ExtraConfig: {get_param: ExtraConfig}
1048 Flavor: {get_param: OvercloudComputeFlavor}
1049 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1050 Image: {get_param: NovaImage}
1051 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1052 KeyName: {get_param: KeyName}
1053 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1054 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1055 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1056 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1057 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1058 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1059 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1060 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1061 NeutronNetworkType: {get_param: NeutronNetworkType}
1062 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1063 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1064 NeutronPassword: {get_param: NeutronPassword}
1065 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1066 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1067 NeutronDVR: {get_param: NeutronDVR}
1068 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1069 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1070 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1071 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1072 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1073 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1074 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1075 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1076 # L3 HA and Failover is not relevant for Computes, should be removed
1077 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1078 NeutronL3HA: {get_param: NeutronL3HA}
1079 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1080 NovaComputeDriver: {get_param: NovaComputeDriver}
1081 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1082 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1083 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1084 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1085 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1086 NovaPassword: {get_param: NovaPassword}
1087 NovaOVSBridge: {get_param: NovaOVSBridge}
1088 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1089 NtpServer: {get_param: NtpServer}
1090 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1091 RabbitPassword: {get_param: RabbitPassword}
1092 RabbitUserName: {get_param: RabbitUserName}
1093 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1094 RabbitClientPort: {get_param: RabbitClientPort}
1095 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1096 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1097 ServiceNetMap: {get_param: ServiceNetMap}
1098 TimeZone: {get_param: TimeZone}
1099 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1100 UpdateIdentifier: {get_param: UpdateIdentifier}
1103 template: {get_param: ComputeHostnameFormat}
1105 '%stackname%': {get_param: 'OS::stack_name'}
1106 CloudDomain: {get_param: CloudDomain}
1107 ServerMetadata: {get_param: ServerMetadata}
1108 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1111 type: OS::Heat::ResourceGroup
1112 depends_on: Networks
1114 count: {get_param: BlockStorageCount}
1115 removal_policies: {get_param: BlockStorageRemovalPolicies}
1117 type: OS::TripleO::BlockStorage
1119 Debug: {get_param: Debug}
1120 Image: {get_param: BlockStorageImage}
1121 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1122 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1123 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1124 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1125 CinderPassword: {get_param: CinderPassword}
1126 KeyName: {get_param: KeyName}
1127 Flavor: {get_param: OvercloudBlockStorageFlavor}
1128 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1129 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1130 RabbitPassword: {get_param: RabbitPassword}
1131 RabbitUserName: {get_param: RabbitUserName}
1132 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1133 RabbitClientPort: {get_param: RabbitClientPort}
1134 TimeZone: {get_param: TimeZone}
1135 NtpServer: {get_param: NtpServer}
1136 UpdateIdentifier: {get_param: UpdateIdentifier}
1139 template: {get_param: BlockStorageHostnameFormat}
1141 '%stackname%': {get_param: 'OS::stack_name'}
1142 ServiceNetMap: {get_param: ServiceNetMap}
1143 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1144 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1145 ExtraConfig: {get_param: ExtraConfig}
1146 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1147 CloudDomain: {get_param: CloudDomain}
1148 ServerMetadata: {get_param: ServerMetadata}
1149 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1152 type: OS::Heat::ResourceGroup
1153 depends_on: Networks
1155 count: {get_param: ObjectStorageCount}
1156 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1158 type: OS::TripleO::ObjectStorage
1160 KeyName: {get_param: KeyName}
1161 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1162 HashSuffix: {get_param: SwiftHashSuffix}
1163 MountCheck: {get_param: SwiftMountCheck}
1164 MinPartHours: {get_param: SwiftMinPartHours}
1165 PartPower: {get_param: SwiftPartPower}
1166 Image: {get_param: SwiftStorageImage}
1167 Replicas: { get_param: SwiftReplicas}
1168 TimeZone: {get_param: TimeZone}
1169 NtpServer: {get_param: NtpServer}
1170 UpdateIdentifier: {get_param: UpdateIdentifier}
1171 ServiceNetMap: {get_param: ServiceNetMap}
1174 template: {get_param: ObjectStorageHostnameFormat}
1176 '%stackname%': {get_param: 'OS::stack_name'}
1177 ExtraConfig: {get_param: ExtraConfig}
1178 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1179 CloudDomain: {get_param: CloudDomain}
1180 ServerMetadata: {get_param: ServerMetadata}
1181 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1184 type: OS::Heat::ResourceGroup
1185 depends_on: Networks
1187 count: {get_param: CephStorageCount}
1188 removal_policies: {get_param: CephStorageRemovalPolicies}
1190 type: OS::TripleO::CephStorage
1192 Image: {get_param: CephStorageImage}
1193 KeyName: {get_param: KeyName}
1194 Flavor: {get_param: OvercloudCephStorageFlavor}
1195 NtpServer: {get_param: NtpServer}
1196 ServiceNetMap: {get_param: ServiceNetMap}
1197 TimeZone: {get_param: TimeZone}
1198 UpdateIdentifier: {get_param: UpdateIdentifier}
1201 template: {get_param: CephStorageHostnameFormat}
1203 '%stackname%': {get_param: 'OS::stack_name'}
1204 ExtraConfig: {get_param: ExtraConfig}
1205 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1206 CloudDomain: {get_param: CloudDomain}
1207 ServerMetadata: {get_param: ServerMetadata}
1208 SchedulerHints: {get_param: CephStorageSchedulerHints}
1210 ControllerIpListMap:
1211 type: OS::TripleO::Network::Ports::NetIpListMap
1213 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1214 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1215 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1216 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1217 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1218 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1219 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1222 type: OS::TripleO::AllNodes::SoftwareConfig
1224 compute_hosts: {get_attr: [Compute, hosts_entry]}
1225 controller_hosts: {get_attr: [Controller, hosts_entry]}
1226 controller_ips: {get_attr: [Controller, ip_address]}
1227 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1228 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1229 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1230 controller_names: {get_attr: [Controller, hostname]}
1231 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1232 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1233 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1234 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1235 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1236 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1237 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1238 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1239 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1240 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1241 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1242 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1243 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1244 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1245 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1246 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1247 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1248 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1249 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1250 DeployIdentifier: {get_param: DeployIdentifier}
1251 UpdateIdentifier: {get_param: UpdateIdentifier}
1254 type: OS::Heat::RandomString
1258 MysqlClusterUniquePart:
1259 type: OS::Heat::RandomString
1264 type: OS::Heat::RandomString
1267 salt: {get_param: RabbitCookieSalt}
1269 # creates the network architecture
1271 type: OS::TripleO::Network
1274 type: OS::Neutron::Port
1275 depends_on: Networks
1277 name: control_virtual_ip
1278 network: {get_param: NeutronControlPlaneID}
1279 fixed_ips: {get_param: ControlFixedIPs}
1280 replacement_policy: AUTO
1283 depends_on: Networks
1284 type: OS::TripleO::Network::Ports::RedisVipPort
1286 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1287 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1288 PortName: redis_virtual_ip
1289 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1292 # The public VIP is on the External net, falls back to ctlplane
1294 depends_on: Networks
1295 type: OS::TripleO::Network::Ports::ExternalVipPort
1297 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1298 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1299 PortName: public_virtual_ip
1300 FixedIPs: {get_param: PublicVirtualFixedIPs}
1302 InternalApiVirtualIP:
1303 depends_on: Networks
1304 type: OS::TripleO::Network::Ports::InternalApiVipPort
1306 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1307 PortName: internal_api_virtual_ip
1308 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1311 depends_on: Networks
1312 type: OS::TripleO::Network::Ports::StorageVipPort
1314 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1315 PortName: storage_virtual_ip
1316 FixedIPs: {get_param: StorageVirtualFixedIPs}
1318 StorageMgmtVirtualIP:
1319 depends_on: Networks
1320 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1322 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1323 PortName: storage_management_virtual_ip
1324 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1327 type: OS::TripleO::Network::Ports::NetVipMap
1329 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1330 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1331 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1332 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1333 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1334 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1335 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1336 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1337 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1338 # No tenant or management VIP required
1341 type: OS::TripleO::VipConfig
1344 type: OS::Heat::StructuredDeployments
1347 config: {get_resource: VipConfig}
1348 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1350 # service VIP mappings
1351 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1352 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1353 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1354 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1355 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1356 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1357 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1358 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1359 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1360 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1361 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1362 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1363 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1364 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1365 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1366 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1367 # direct configuration of Virtual IPs for each network
1368 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1369 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1370 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1371 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1372 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1373 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1375 ControllerBootstrapNodeConfig:
1376 type: OS::TripleO::BootstrapNode::SoftwareConfig
1378 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1379 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1381 ControllerBootstrapNodeDeployment:
1382 type: OS::Heat::StructuredDeployments
1384 name: ControllerBootstrapNodeDeployment
1385 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1386 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1388 ControllerSwiftDeployment:
1389 type: OS::Heat::StructuredDeployments
1391 name: ControllerSwiftDeployment
1392 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1393 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1395 ObjectStorageSwiftDeployment:
1396 type: OS::Heat::StructuredDeployments
1398 name: ObjectStorageSwiftDeployment
1399 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1400 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1402 SwiftDevicesAndProxyConfig:
1403 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1405 controller_swift_devices: {get_attr: [Controller, swift_device]}
1406 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1407 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1409 ComputeCephDeployment:
1410 type: OS::Heat::StructuredDeployments
1412 name: ComputeCephDeployment
1413 config: {get_attr: [CephClusterConfig, config_id]}
1414 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1416 ControllerCephDeployment:
1417 type: OS::Heat::StructuredDeployments
1419 name: ControllerCephDeployment
1420 config: {get_attr: [CephClusterConfig, config_id]}
1421 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1423 CephStorageCephDeployment:
1424 type: OS::Heat::StructuredDeployments
1426 name: CephStorageCephDeployment
1427 config: {get_attr: [CephClusterConfig, config_id]}
1428 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1431 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1433 ceph_storage_count: {get_param: CephStorageCount}
1434 ceph_fsid: {get_param: CephClusterFSID}
1435 ceph_mon_key: {get_param: CephMonKey}
1436 ceph_admin_key: {get_param: CephAdminKey}
1437 ceph_client_key: {get_param: CephClientKey}
1438 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1439 ceph_mon_names: {get_attr: [Controller, hostname]}
1440 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1442 ControllerClusterConfig:
1443 type: OS::Heat::StructuredConfig
1445 group: os-apply-config
1448 nodes: {get_attr: [Controller, corosync_node]}
1452 nodes: {get_attr: [Controller, hostname]}
1454 nodes: {get_attr: [Controller, corosync_node]}
1456 nodes: {get_attr: [Controller, corosync_node]}
1458 ControllerClusterDeployment:
1459 type: OS::Heat::StructuredDeployments
1461 name: ControllerClusterDeployment
1462 config: {get_resource: ControllerClusterConfig}
1463 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1465 ControllerAllNodesDeployment:
1466 type: OS::Heat::StructuredDeployments
1468 name: ControllerAllNodesDeployment
1469 config: {get_attr: [allNodesConfig, config_id]}
1470 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1472 ComputeAllNodesDeployment:
1473 type: OS::Heat::StructuredDeployments
1475 name: ComputeAllNodesDeployment
1476 config: {get_attr: [allNodesConfig, config_id]}
1477 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1479 BlockStorageAllNodesDeployment:
1480 type: OS::Heat::StructuredDeployments
1482 name: BlockStorageAllNodesDeployment
1483 config: {get_attr: [allNodesConfig, config_id]}
1484 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1486 ObjectStorageAllNodesDeployment:
1487 type: OS::Heat::StructuredDeployments
1489 name: ObjectStorageAllNodesDeployment
1490 config: {get_attr: [allNodesConfig, config_id]}
1491 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1493 CephStorageAllNodesDeployment:
1494 type: OS::Heat::StructuredDeployments
1496 name: CephStorageAllNodesDeployment
1497 config: {get_attr: [allNodesConfig, config_id]}
1498 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1500 # All Nodes Validations
1501 AllNodesValidationConfig:
1502 type: OS::TripleO::AllNodes::Validation
1507 - - {get_attr: [Controller, resource.0.external_ip_address]}
1508 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1509 - {get_attr: [Controller, resource.0.storage_ip_address]}
1510 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1511 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1513 ControllerAllNodesValidationDeployment:
1514 type: OS::Heat::StructuredDeployments
1515 depends_on: ControllerAllNodesDeployment
1517 name: ControllerAllNodesValidationDeployment
1518 config: {get_resource: AllNodesValidationConfig}
1519 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1521 ComputeAllNodesValidationDeployment:
1522 type: OS::Heat::StructuredDeployments
1523 depends_on: ComputeAllNodesDeployment
1525 name: ComputeAllNodesValidationDeployment
1526 config: {get_resource: AllNodesValidationConfig}
1527 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1529 BlockStorageAllNodesValidationDeployment:
1530 type: OS::Heat::StructuredDeployments
1531 depends_on: BlockStorageAllNodesDeployment
1533 name: BlockStorageAllNodesValidationDeployment
1534 config: {get_resource: AllNodesValidationConfig}
1535 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1537 ObjectStorageAllNodesValidationDeployment:
1538 type: OS::Heat::StructuredDeployments
1539 depends_on: ObjectStorageAllNodesDeployment
1541 name: ObjectStorageAllNodesValidationDeployment
1542 config: {get_resource: AllNodesValidationConfig}
1543 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1545 CephStorageAllNodesValidationDeployment:
1546 type: OS::Heat::StructuredDeployments
1547 depends_on: CephStorageAllNodesDeployment
1549 name: CephStorageAllNodesValidationDeployment
1550 config: {get_resource: AllNodesValidationConfig}
1551 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1554 type: OS::TripleO::Tasks::UpdateWorkflow
1556 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1557 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1558 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1559 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1560 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1562 deploy_identifier: {get_param: DeployIdentifier}
1563 update_identifier: {get_param: UpdateIdentifier}
1565 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1566 # the nested template may configure each role differently (or not at all)
1567 AllNodesExtraConfig:
1568 type: OS::TripleO::AllNodesExtraConfig
1569 depends_on: UpdateWorkflow
1571 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1572 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1573 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1574 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1575 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1577 # Nested stack deployment runs after all other controller deployments
1578 ControllerNodesPostDeployment:
1579 type: OS::TripleO::ControllerPostDeployment
1580 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1582 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1583 NodeConfigIdentifiers:
1584 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1585 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1586 deployment_identifier: {get_param: DeployIdentifier}
1588 ComputeNodesPostDeployment:
1589 type: OS::TripleO::ComputePostDeployment
1590 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1592 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1593 NodeConfigIdentifiers:
1594 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1595 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1596 deployment_identifier: {get_param: DeployIdentifier}
1598 ObjectStorageNodesPostDeployment:
1599 type: OS::TripleO::ObjectStoragePostDeployment
1600 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1602 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1603 NodeConfigIdentifiers:
1604 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1605 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1606 deployment_identifier: {get_param: DeployIdentifier}
1608 BlockStorageNodesPostDeployment:
1609 type: OS::TripleO::BlockStoragePostDeployment
1610 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1612 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1613 NodeConfigIdentifiers:
1614 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1615 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1616 deployment_identifier: {get_param: DeployIdentifier}
1618 CephStorageNodesPostDeployment:
1619 type: OS::TripleO::CephStoragePostDeployment
1620 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1622 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1623 NodeConfigIdentifiers:
1624 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1625 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1626 deployment_identifier: {get_param: DeployIdentifier}
1630 description: URL for the Overcloud Keystone service
1631 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1633 description: Keystone Admin VIP endpoint
1634 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1636 description: Controller VIP for public API endpoints
1637 value: {get_attr: [VipMap, net_ip_map, external]}
1639 description: VIP for Aodh API internal endpoint
1640 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1641 CeilometerInternalVip:
1642 description: VIP for Ceilometer API internal endpoint
1643 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1645 description: VIP for Cinder API internal endpoint
1646 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1648 description: VIP for Glance API internal endpoint
1649 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1651 description: VIP for Heat API internal endpoint
1652 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1653 KeystoneInternalVip:
1654 description: VIP for Keystone API internal endpoint
1655 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1657 description: VIP for Neutron API internal endpoint
1658 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1660 description: VIP for Nova API internal endpoint
1661 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1663 description: VIP for Sahara API internal endpoint
1664 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1666 description: VIP for Swift Proxy internal endpoint
1667 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1670 The content that should be appended to your /etc/hosts if you want to get
1671 hostname-based access to the deployed nodes (useful for testing without
1673 value: {get_attr: [allNodesConfig, hosts_entries]}