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
253 description: The password for the nova service account, used by nova-api.
258 description: Comma-separated list of ntp servers
259 type: comma_delimited_list
262 description: Should MongoDb journaling be disabled
264 PublicVirtualFixedIPs:
267 Control the IP allocation for the PublicVirtualInterface port. E.g.
268 [{'ip_address':'1.2.3.4'}]
273 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
274 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
277 description: The username for RabbitMQ
281 description: The password for RabbitMQ
287 Rabbit client subscriber parameter to specify
288 an SSL connection to the RabbitMQ host.
292 description: Set rabbit subscriber port, change this if using SSL
294 # We need to set this as string because 'unlimited' is a valid setting
297 description: Configures RabbitMQ FD limit
299 SnmpdReadonlyUserName:
300 default: ro_snmp_user
301 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
303 SnmpdReadonlyUserPassword:
304 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
307 StorageVirtualFixedIPs:
310 Control the IP allocation for the StorageVirtualInterface port. E.g.
311 [{'ip_address':'1.2.3.4'}]
313 StorageMgmtVirtualFixedIPs:
316 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
317 [{'ip_address':'1.2.3.4'}]
321 description: The timezone to be set on nodes.
324 default: 'localdomain'
327 The DNS domain used for the hosts. This should match the dhcp_domain
328 configured in the Undercloud neutron. Defaults to localdomain.
332 Extra properties or metadata passed to Nova for the created nodes in
333 the overcloud. It's accessible via the Nova metadata API.
336 # Controller-specific params
338 description: The keystone auth secret.
341 CinderLVMLoopDeviceSize:
343 description: The size of the loopback file used by the cinder LVM driver.
345 CinderNfsMountOptions:
348 Mount options for NFS mounts used by Cinder NFS backend. Effective
349 when CinderEnableNfsBackend is true.
354 NFS servers used by Cinder NFS backend. Effective when
355 CinderEnableNfsBackend is true.
356 type: comma_delimited_list
358 description: The password for the cinder service account, used by cinder-api.
363 description: The iSCSI helper to use with cinder.
370 controllerExtraConfig:
373 Controller specific configuration to inject into the cluster. Same
374 structure as ExtraConfig.
378 default: overcloud-full
380 - custom_constraint: glance.image
381 OvercloudControlFlavor:
382 description: Flavor for control nodes to request when deploying.
386 - custom_constraint: nova.flavor
387 ControlVirtualInterface:
389 description: Interface where virtual ip will be assigned.
393 description: Whether to enable fencing in Pacemaker or not.
397 description: Whether to use Galera instead of regular MariaDB.
399 ControllerEnableCephStorage:
401 description: Whether to deploy Ceph Storage (OSD) on the Controller
403 ControllerEnableSwiftStorage:
405 description: Whether to enable Swift Storage on the Controller
407 ControllerSchedulerHints:
409 description: Optional scheduler hints to pass to nova
414 Additional configuration to inject into the cluster. The format required
415 may be implementation specific, e.g puppet hieradata. Any role specific
416 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
421 Pacemaker fencing configuration. The JSON should have
422 the following structure:
426 "agent": "AGENT_NAME",
427 "host_mac": "HOST_MAC_ADDRESS",
428 "params": {"PARAM_NAME": "PARAM_VALUE"}
436 "agent": "fence_xvm",
437 "host_mac": "52:54:00:aa:bb:cc",
439 "multicast_address": "225.0.0.12",
440 "port": "baremetal_0",
442 "manage_key_file": true,
443 "key_file": "/etc/fence_xvm.key",
444 "key_file_password": "abcdef"
451 description: The filepath of the file to use for logging messages from Glance.
454 GlanceNotifierStrategy:
455 description: Strategy to use for Glance notification queue
459 description: The password for the glance service account, used by the glance services.
464 description: The short name of the Glance backend to use. Should be one
465 of swift, rbd or file
468 - allowed_values: ['swift', 'file', 'rbd']
470 description: The password for the Heat service account, used by the Heat services.
473 HeatStackDomainAdminPassword:
474 description: Password for heat_domain_admin user.
477 InstanceNameTemplate:
478 default: 'instance-%08x'
479 description: Template string to be used to generate instance names
481 KeystoneCACertificate:
483 description: Keystone self-signed certificate authority certificate.
485 KeystoneSigningCertificate:
487 description: Keystone certificate for verifying token validity.
491 description: Keystone key for signing tokens.
494 KeystoneSSLCertificate:
496 description: Keystone certificate for verifying token validity.
498 KeystoneSSLCertificateKey:
500 description: Keystone key for signing tokens.
503 KeystoneNotificationDriver:
504 description: Comma-separated list of Oslo notification drivers used by Keystone
505 default: ['messaging']
506 type: comma_delimited_list
507 KeystoneNotificationFormat:
508 description: The Keystone notification format
512 - allowed_values: [ 'basic', 'cadf' ]
515 description: Whether to manage IPtables rules.
519 description: Whether IPtables rules should be purged before setting up the ones.
521 MysqlInnodbBufferPoolSize:
523 Specifies the size of the buffer pool in megabytes. Setting to
524 zero should be interpreted as "no value" and will defer to the
529 description: Configures MySQL max_connections config setting
532 NeutronDnsmasqOptions:
533 default: 'dhcp-option-force=26,%MTU%'
535 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
536 to be set to the value of NeutronTenantMtu, which should be set to account
539 NeutronPublicInterfaceDefaultRoute:
541 description: A custom default route for the NeutronPublicInterface.
543 NeutronPublicInterfaceIP:
545 description: A custom IP address to put onto the NeutronPublicInterface.
547 NeutronPublicInterfaceRawDevice:
549 description: If set, the public interface is a vlan with this device as the raw device.
551 PublicVirtualInterface:
554 Specifies the interface where the public-facing virtual ip will be assigned.
555 This should be int_public when a VLAN is being used.
558 description: A random string to be used as a salt when hashing to determine mappings in the ring.
562 description: The password for the swift service account, used by the swift proxy services.
567 description: Value of mount_check in Swift account/container/object -server.conf
572 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
575 description: Partition Power to use when building Swift rings
580 description: How many replicas to use in the swift rings.
582 description: The password for the sahara service account.
586 # Compute-specific params
587 CeilometerComputeAgent:
588 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
592 - allowed_values: ['', Present]
596 HypervisorNeutronPhysicalBridge:
599 An OVS bridge to create on each hypervisor. This defaults to br-ex the
600 same as the control plane nodes, as we have a uniform configuration of
601 the openvswitch agent. Typically should not need to be changed.
603 HypervisorNeutronPublicInterface:
605 description: What interface to add to the HypervisorNeutronPhysicalBridge.
607 NeutronNetworkVLANRanges:
608 default: 'datacentre:1:1000'
610 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
611 Neutron documentation for permitted values. Defaults to permitting any
612 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
613 type: comma_delimited_list
616 default: libvirt.LibvirtDriver
617 NovaComputeExtraConfig:
620 NovaCompute specific configuration to inject into the cluster. Same
621 structure as ExtraConfig.
623 NovaComputeLibvirtType:
626 NovaComputeLibvirtVifDriver:
628 description: Libvirt VIF driver configuration for the network
630 NovaComputeSchedulerHints:
632 description: Optional scheduler hints to pass to nova
634 NovaEnableRbdBackend:
636 description: Whether to enable or not the Rbd backend for Nova
640 default: overcloud-full
642 - custom_constraint: glance.image
645 description: Name of integration bridge used by Open vSwitch
647 NovaSecurityGroupAPI:
649 description: The full class name of the security API class
651 OvercloudComputeFlavor:
652 description: Use this flavor
656 - custom_constraint: nova.flavor
659 NeutronTenantNetwork: tenant
660 CeilometerApiNetwork: internal_api
661 AodhApiNetwork: internal_api
662 MongoDbNetwork: internal_api
663 CinderApiNetwork: internal_api
664 CinderIscsiNetwork: storage
665 GlanceApiNetwork: storage
666 GlanceRegistryNetwork: internal_api
667 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
668 KeystonePublicApiNetwork: internal_api
669 NeutronApiNetwork: internal_api
670 HeatApiNetwork: internal_api
671 NovaApiNetwork: internal_api
672 NovaMetadataNetwork: internal_api
673 NovaVncProxyNetwork: internal_api
674 SwiftMgmtNetwork: storage_mgmt
675 SwiftProxyNetwork: storage
676 SaharaApiNetwork: internal_api
677 HorizonNetwork: internal_api
678 MemcachedNetwork: internal_api
679 RabbitMqNetwork: internal_api
680 RedisNetwork: internal_api
681 MysqlNetwork: internal_api
682 CephClusterNetwork: storage_mgmt
683 CephPublicNetwork: storage
684 ControllerHostnameResolveNetwork: internal_api
685 ComputeHostnameResolveNetwork: internal_api
686 BlockStorageHostnameResolveNetwork: internal_api
687 ObjectStorageHostnameResolveNetwork: internal_api
688 CephStorageHostnameResolveNetwork: storage
689 description: Mapping of service_name -> network name. Typically set
690 via parameter_defaults in the resource registry.
693 # Block storage specific parameters
698 default: overcloud-full
700 OvercloudBlockStorageFlavor:
701 description: Flavor for block storage nodes to request when deploying.
705 - custom_constraint: nova.flavor
706 BlockStorageExtraConfig:
709 BlockStorage specific configuration to inject into the cluster. Same
710 structure as ExtraConfig.
712 BlockStorageSchedulerHints:
714 description: Optional scheduler hints to pass to nova
718 # Object storage specific parameters
722 OvercloudSwiftStorageFlavor:
723 description: Flavor for Swift storage nodes to request when deploying.
727 - custom_constraint: nova.flavor
729 default: overcloud-full
731 ObjectStorageExtraConfig:
734 ObjectStorage specific configuration to inject into the cluster. Same
735 structure as ExtraConfig.
737 ObjectStorageSchedulerHints:
739 description: Optional scheduler hints to pass to nova
742 # Ceph storage specific parameters
747 default: overcloud-full
749 OvercloudCephStorageFlavor:
751 description: Flavor for Ceph storage nodes to request when deploying.
754 - custom_constraint: nova.flavor
755 CephStorageExtraConfig:
758 CephStorage specific configuration to inject into the cluster. Same
759 structure as ExtraConfig.
761 CephStorageSchedulerHints:
763 description: Optional scheduler hints to pass to nova
767 # Hostname format for each role
768 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
769 # and %stackname% is replaced with OS::stack_name in the template below.
770 # If you want to use the heat generated names, pass '' (empty string).
771 ControllerHostnameFormat:
773 description: Format for Controller node hostnames
774 default: '%stackname%-controller-%index%'
775 ComputeHostnameFormat:
777 description: Format for Compute node hostnames
778 default: '%stackname%-novacompute-%index%'
779 BlockStorageHostnameFormat:
781 description: Format for BlockStorage node hostnames
782 default: '%stackname%-blockstorage-%index%'
783 ObjectStorageHostnameFormat:
785 description: Format for SwiftStorage node hostnames
786 default: '%stackname%-objectstorage-%index%'
787 CephStorageHostnameFormat:
789 description: Format for CephStorage node hostnames
790 default: '%stackname%-cephstorage-%index%'
792 # Identifiers to trigger tasks on nodes
797 Setting to a previously unused value during stack-update will trigger
798 package update on all nodes
803 Setting this to a unique value will re-run any deployment tasks which
804 perform configuration on a Heat stack-update.
806 # If you want to remove a specific node from a resource group, you can pass
807 # the node name or id as a <Group>RemovalPolicies parameter, for example:
808 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
809 ControllerRemovalPolicies:
813 List of resources to be removed from ControllerResourceGroup when
814 doing an update which requires removal of specific resources.
815 ComputeRemovalPolicies:
819 List of resources to be removed from ComputeResourceGroup when
820 doing an update which requires removal of specific resources.
821 BlockStorageRemovalPolicies:
825 List of resources to be removed from BlockStorageResourceGroup when
826 doing an update which requires removal of specific resources.
827 ObjectStorageRemovalPolicies:
831 List of resources to be removed from ObjectStorageResourceGroup when
832 doing an update which requires removal of specific resources.
833 CephStorageRemovalPolicies:
837 List of resources to be removed from CephStorageResourceGroup when
838 doing an update which requires removal of specific resources.
843 HeatAuthEncryptionKey:
844 type: OS::Heat::RandomString
847 type: OS::Heat::RandomString
852 type: OS::Heat::RandomString
857 type: OS::TripleO::EndpointMap
859 CloudName: {get_param: CloudName}
860 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
861 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
862 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
863 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
864 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
865 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
866 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
867 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
868 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
869 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
870 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
871 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
872 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
873 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
876 type: OS::Heat::ResourceGroup
879 count: {get_param: ControllerCount}
880 removal_policies: {get_param: ControllerRemovalPolicies}
882 type: OS::TripleO::Controller
884 AdminPassword: {get_param: AdminPassword}
885 AdminToken: {get_param: AdminToken}
886 AodhPassword: {get_param: AodhPassword}
887 CeilometerBackend: {get_param: CeilometerBackend}
888 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
889 CeilometerPassword: {get_param: CeilometerPassword}
890 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
891 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
892 CinderNfsServers: {get_param: CinderNfsServers}
893 CinderPassword: {get_param: CinderPassword}
894 CinderISCSIHelper: {get_param: CinderISCSIHelper}
895 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
896 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
897 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
898 CloudDomain: {get_param: CloudDomain}
899 ControlVirtualInterface: {get_param: ControlVirtualInterface}
900 ControllerExtraConfig: {get_param: controllerExtraConfig}
901 Debug: {get_param: Debug}
902 EnableFencing: {get_param: EnableFencing}
903 ManageFirewall: {get_param: ManageFirewall}
904 PurgeFirewallRules: {get_param: PurgeFirewallRules}
905 EnableGalera: {get_param: EnableGalera}
906 EnableCephStorage: {get_param: ControllerEnableCephStorage}
907 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
908 ExtraConfig: {get_param: ExtraConfig}
909 FencingConfig: {get_param: FencingConfig}
910 Flavor: {get_param: OvercloudControlFlavor}
911 GlancePassword: {get_param: GlancePassword}
912 GlanceBackend: {get_param: GlanceBackend}
913 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
914 GlanceLogFile: {get_param: GlanceLogFile}
915 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
916 HeatPassword: {get_param: HeatPassword}
917 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
918 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
919 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
920 HorizonSecret: {get_resource: HorizonSecret}
921 Image: {get_param: controllerImage}
922 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
923 InstanceNameTemplate: {get_param: InstanceNameTemplate}
924 KeyName: {get_param: KeyName}
925 KeystoneCACertificate: {get_param: KeystoneCACertificate}
926 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
927 KeystoneSigningKey: {get_param: KeystoneSigningKey}
928 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
929 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
930 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
931 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
932 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
933 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
934 MysqlMaxConnections: {get_param: MysqlMaxConnections}
935 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
936 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
937 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
938 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
939 NeutronTenantMtu: {get_param: NeutronTenantMtu}
940 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
941 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
942 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
943 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
944 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
945 NeutronPublicInterface: {get_param: NeutronPublicInterface}
946 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
947 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
948 NeutronPassword: {get_param: NeutronPassword}
949 NeutronDnsmasqOptions:
951 template: {get_param: NeutronDnsmasqOptions}
953 '%MTU%': {get_param: NeutronTenantMtu}
954 NeutronDVR: {get_param: NeutronDVR}
955 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
956 NeutronAgentMode: {get_param: NeutronAgentMode}
957 NeutronCorePlugin: {get_param: NeutronCorePlugin}
958 NeutronServicePlugins: {get_param: NeutronServicePlugins}
959 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
960 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
961 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
962 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
963 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
964 NeutronL3HA: {get_param: NeutronL3HA}
965 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
966 NeutronNetworkType: {get_param: NeutronNetworkType}
967 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
968 NovaPassword: {get_param: NovaPassword}
969 NtpServer: {get_param: NtpServer}
970 MongoDbNoJournal: {get_param: MongoDbNoJournal}
971 PcsdPassword: {get_resource: PcsdPassword}
972 PublicVirtualInterface: {get_param: PublicVirtualInterface}
973 RabbitPassword: {get_param: RabbitPassword}
974 RabbitUserName: {get_param: RabbitUserName}
975 RabbitCookie: {get_attr: [RabbitCookie, value]}
976 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
977 RabbitClientPort: {get_param: RabbitClientPort}
978 RabbitFDLimit: {get_param: RabbitFDLimit}
979 SaharaPassword: {get_param: SaharaPassword}
980 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
981 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
982 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
983 SwiftHashSuffix: {get_param: SwiftHashSuffix}
984 SwiftMountCheck: {get_param: SwiftMountCheck}
985 SwiftMinPartHours: {get_param: SwiftMinPartHours}
986 SwiftPartPower: {get_param: SwiftPartPower}
987 SwiftPassword: {get_param: SwiftPassword}
988 SwiftReplicas: { get_param: SwiftReplicas}
989 TimeZone: {get_param: TimeZone}
990 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
991 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
992 ServiceNetMap: {get_param: ServiceNetMap}
993 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
994 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
995 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
996 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
997 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
998 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
999 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1000 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1001 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1002 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1003 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1004 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1005 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1006 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1007 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1008 UpdateIdentifier: {get_param: UpdateIdentifier}
1011 template: {get_param: ControllerHostnameFormat}
1013 '%stackname%': {get_param: 'OS::stack_name'}
1014 NodeIndex: '%index%'
1015 ServerMetadata: {get_param: ServerMetadata}
1016 SchedulerHints: {get_param: ControllerSchedulerHints}
1019 type: OS::Heat::ResourceGroup
1020 depends_on: Networks
1022 count: {get_param: ComputeCount}
1023 removal_policies: {get_param: ComputeRemovalPolicies}
1025 type: OS::TripleO::Compute
1027 AdminPassword: {get_param: AdminPassword}
1028 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1029 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1030 CeilometerPassword: {get_param: CeilometerPassword}
1031 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1032 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1033 Debug: {get_param: Debug}
1034 ExtraConfig: {get_param: ExtraConfig}
1035 Flavor: {get_param: OvercloudComputeFlavor}
1036 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1037 Image: {get_param: NovaImage}
1038 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1039 KeyName: {get_param: KeyName}
1040 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1041 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1042 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1043 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1044 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1045 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1046 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1047 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1048 NeutronNetworkType: {get_param: NeutronNetworkType}
1049 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1050 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1051 NeutronPassword: {get_param: NeutronPassword}
1052 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1053 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1054 NeutronDVR: {get_param: NeutronDVR}
1055 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1056 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1057 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1058 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1059 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1060 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1061 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1062 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1063 # L3 HA and Failover is not relevant for Computes, should be removed
1064 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1065 NeutronL3HA: {get_param: NeutronL3HA}
1066 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1067 NovaComputeDriver: {get_param: NovaComputeDriver}
1068 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1069 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1070 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1071 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1072 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1073 NovaPassword: {get_param: NovaPassword}
1074 NovaOVSBridge: {get_param: NovaOVSBridge}
1075 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1076 NtpServer: {get_param: NtpServer}
1077 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1078 RabbitPassword: {get_param: RabbitPassword}
1079 RabbitUserName: {get_param: RabbitUserName}
1080 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1081 RabbitClientPort: {get_param: RabbitClientPort}
1082 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1083 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1084 ServiceNetMap: {get_param: ServiceNetMap}
1085 TimeZone: {get_param: TimeZone}
1086 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1087 UpdateIdentifier: {get_param: UpdateIdentifier}
1090 template: {get_param: ComputeHostnameFormat}
1092 '%stackname%': {get_param: 'OS::stack_name'}
1093 CloudDomain: {get_param: CloudDomain}
1094 ServerMetadata: {get_param: ServerMetadata}
1095 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1098 type: OS::Heat::ResourceGroup
1099 depends_on: Networks
1101 count: {get_param: BlockStorageCount}
1102 removal_policies: {get_param: BlockStorageRemovalPolicies}
1104 type: OS::TripleO::BlockStorage
1106 Debug: {get_param: Debug}
1107 Image: {get_param: BlockStorageImage}
1108 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1109 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1110 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1111 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1112 CinderPassword: {get_param: CinderPassword}
1113 KeyName: {get_param: KeyName}
1114 Flavor: {get_param: OvercloudBlockStorageFlavor}
1115 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1116 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1117 RabbitPassword: {get_param: RabbitPassword}
1118 RabbitUserName: {get_param: RabbitUserName}
1119 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1120 RabbitClientPort: {get_param: RabbitClientPort}
1121 TimeZone: {get_param: TimeZone}
1122 NtpServer: {get_param: NtpServer}
1123 UpdateIdentifier: {get_param: UpdateIdentifier}
1126 template: {get_param: BlockStorageHostnameFormat}
1128 '%stackname%': {get_param: 'OS::stack_name'}
1129 ServiceNetMap: {get_param: ServiceNetMap}
1130 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1131 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1132 ExtraConfig: {get_param: ExtraConfig}
1133 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1134 CloudDomain: {get_param: CloudDomain}
1135 ServerMetadata: {get_param: ServerMetadata}
1136 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1139 type: OS::Heat::ResourceGroup
1140 depends_on: Networks
1142 count: {get_param: ObjectStorageCount}
1143 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1145 type: OS::TripleO::ObjectStorage
1147 KeyName: {get_param: KeyName}
1148 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1149 HashSuffix: {get_param: SwiftHashSuffix}
1150 MountCheck: {get_param: SwiftMountCheck}
1151 MinPartHours: {get_param: SwiftMinPartHours}
1152 PartPower: {get_param: SwiftPartPower}
1153 Image: {get_param: SwiftStorageImage}
1154 Replicas: { get_param: SwiftReplicas}
1155 TimeZone: {get_param: TimeZone}
1156 NtpServer: {get_param: NtpServer}
1157 UpdateIdentifier: {get_param: UpdateIdentifier}
1158 ServiceNetMap: {get_param: ServiceNetMap}
1161 template: {get_param: ObjectStorageHostnameFormat}
1163 '%stackname%': {get_param: 'OS::stack_name'}
1164 ExtraConfig: {get_param: ExtraConfig}
1165 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1166 CloudDomain: {get_param: CloudDomain}
1167 ServerMetadata: {get_param: ServerMetadata}
1168 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1171 type: OS::Heat::ResourceGroup
1172 depends_on: Networks
1174 count: {get_param: CephStorageCount}
1175 removal_policies: {get_param: CephStorageRemovalPolicies}
1177 type: OS::TripleO::CephStorage
1179 Image: {get_param: CephStorageImage}
1180 KeyName: {get_param: KeyName}
1181 Flavor: {get_param: OvercloudCephStorageFlavor}
1182 NtpServer: {get_param: NtpServer}
1183 ServiceNetMap: {get_param: ServiceNetMap}
1184 TimeZone: {get_param: TimeZone}
1185 UpdateIdentifier: {get_param: UpdateIdentifier}
1188 template: {get_param: CephStorageHostnameFormat}
1190 '%stackname%': {get_param: 'OS::stack_name'}
1191 ExtraConfig: {get_param: ExtraConfig}
1192 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1193 CloudDomain: {get_param: CloudDomain}
1194 ServerMetadata: {get_param: ServerMetadata}
1195 SchedulerHints: {get_param: CephStorageSchedulerHints}
1197 ControllerIpListMap:
1198 type: OS::TripleO::Network::Ports::NetIpListMap
1200 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1201 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1202 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1203 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1204 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1205 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1206 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1209 type: OS::TripleO::AllNodes::SoftwareConfig
1211 compute_hosts: {get_attr: [Compute, hosts_entry]}
1212 controller_hosts: {get_attr: [Controller, hosts_entry]}
1213 controller_ips: {get_attr: [Controller, ip_address]}
1214 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1215 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1216 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1217 controller_names: {get_attr: [Controller, hostname]}
1218 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1219 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1220 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1221 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1222 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1223 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1224 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1225 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1226 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1227 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1228 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1229 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1230 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1231 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1232 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1233 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1234 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1235 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1236 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1237 DeployIdentifier: {get_param: DeployIdentifier}
1238 UpdateIdentifier: {get_param: UpdateIdentifier}
1241 type: OS::Heat::RandomString
1245 MysqlClusterUniquePart:
1246 type: OS::Heat::RandomString
1251 type: OS::Heat::RandomString
1254 salt: {get_param: RabbitCookieSalt}
1256 # creates the network architecture
1258 type: OS::TripleO::Network
1261 type: OS::Neutron::Port
1262 depends_on: Networks
1264 name: control_virtual_ip
1265 network: {get_param: NeutronControlPlaneID}
1266 fixed_ips: {get_param: ControlFixedIPs}
1267 replacement_policy: AUTO
1270 depends_on: Networks
1271 type: OS::TripleO::Network::Ports::RedisVipPort
1273 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1274 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1275 PortName: redis_virtual_ip
1276 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1279 # The public VIP is on the External net, falls back to ctlplane
1281 depends_on: Networks
1282 type: OS::TripleO::Network::Ports::ExternalVipPort
1284 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1285 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1286 PortName: public_virtual_ip
1287 FixedIPs: {get_param: PublicVirtualFixedIPs}
1289 InternalApiVirtualIP:
1290 depends_on: Networks
1291 type: OS::TripleO::Network::Ports::InternalApiVipPort
1293 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1294 PortName: internal_api_virtual_ip
1295 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1298 depends_on: Networks
1299 type: OS::TripleO::Network::Ports::StorageVipPort
1301 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1302 PortName: storage_virtual_ip
1303 FixedIPs: {get_param: StorageVirtualFixedIPs}
1305 StorageMgmtVirtualIP:
1306 depends_on: Networks
1307 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1309 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1310 PortName: storage_management_virtual_ip
1311 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1314 type: OS::TripleO::Network::Ports::NetVipMap
1316 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1317 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1318 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1319 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1320 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1321 # No tenant or management VIP required
1324 type: OS::TripleO::VipConfig
1327 type: OS::Heat::StructuredDeployments
1330 config: {get_resource: VipConfig}
1331 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1333 # service VIP mappings
1334 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1335 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1336 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1337 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1338 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1339 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1340 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1341 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1342 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1343 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1344 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1345 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1346 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1347 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1348 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1349 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1350 # direct configuration of Virtual IPs for each network
1351 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1352 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1353 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1354 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1355 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1356 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1358 ControllerBootstrapNodeConfig:
1359 type: OS::TripleO::BootstrapNode::SoftwareConfig
1361 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1362 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1364 ControllerBootstrapNodeDeployment:
1365 type: OS::Heat::StructuredDeployments
1367 name: ControllerBootstrapNodeDeployment
1368 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1369 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1371 ControllerSwiftDeployment:
1372 type: OS::Heat::StructuredDeployments
1374 name: ControllerSwiftDeployment
1375 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1376 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1378 ObjectStorageSwiftDeployment:
1379 type: OS::Heat::StructuredDeployments
1381 name: ObjectStorageSwiftDeployment
1382 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1383 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1385 SwiftDevicesAndProxyConfig:
1386 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1388 controller_swift_devices: {get_attr: [Controller, swift_device]}
1389 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1390 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1392 ComputeCephDeployment:
1393 type: OS::Heat::StructuredDeployments
1395 name: ComputeCephDeployment
1396 config: {get_attr: [CephClusterConfig, config_id]}
1397 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1399 ControllerCephDeployment:
1400 type: OS::Heat::StructuredDeployments
1402 name: ControllerCephDeployment
1403 config: {get_attr: [CephClusterConfig, config_id]}
1404 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1406 CephStorageCephDeployment:
1407 type: OS::Heat::StructuredDeployments
1409 name: CephStorageCephDeployment
1410 config: {get_attr: [CephClusterConfig, config_id]}
1411 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1414 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1416 ceph_storage_count: {get_param: CephStorageCount}
1417 ceph_fsid: {get_param: CephClusterFSID}
1418 ceph_mon_key: {get_param: CephMonKey}
1419 ceph_admin_key: {get_param: CephAdminKey}
1420 ceph_client_key: {get_param: CephClientKey}
1421 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1422 ceph_mon_names: {get_attr: [Controller, hostname]}
1423 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1425 ControllerClusterConfig:
1426 type: OS::Heat::StructuredConfig
1428 group: os-apply-config
1431 nodes: {get_attr: [Controller, corosync_node]}
1435 nodes: {get_attr: [Controller, hostname]}
1437 nodes: {get_attr: [Controller, corosync_node]}
1439 nodes: {get_attr: [Controller, corosync_node]}
1441 ControllerClusterDeployment:
1442 type: OS::Heat::StructuredDeployments
1444 name: ControllerClusterDeployment
1445 config: {get_resource: ControllerClusterConfig}
1446 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1448 ControllerAllNodesDeployment:
1449 type: OS::Heat::StructuredDeployments
1451 name: ControllerAllNodesDeployment
1452 config: {get_attr: [allNodesConfig, config_id]}
1453 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1455 ComputeAllNodesDeployment:
1456 type: OS::Heat::StructuredDeployments
1458 name: ComputeAllNodesDeployment
1459 config: {get_attr: [allNodesConfig, config_id]}
1460 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1462 BlockStorageAllNodesDeployment:
1463 type: OS::Heat::StructuredDeployments
1465 name: BlockStorageAllNodesDeployment
1466 config: {get_attr: [allNodesConfig, config_id]}
1467 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1469 ObjectStorageAllNodesDeployment:
1470 type: OS::Heat::StructuredDeployments
1472 name: ObjectStorageAllNodesDeployment
1473 config: {get_attr: [allNodesConfig, config_id]}
1474 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1476 CephStorageAllNodesDeployment:
1477 type: OS::Heat::StructuredDeployments
1479 name: CephStorageAllNodesDeployment
1480 config: {get_attr: [allNodesConfig, config_id]}
1481 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1483 # All Nodes Validations
1484 AllNodesValidationConfig:
1485 type: OS::TripleO::AllNodes::Validation
1490 - - {get_attr: [Controller, resource.0.external_ip_address]}
1491 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1492 - {get_attr: [Controller, resource.0.storage_ip_address]}
1493 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1494 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1496 ControllerAllNodesValidationDeployment:
1497 type: OS::Heat::StructuredDeployments
1498 depends_on: ControllerAllNodesDeployment
1500 name: ControllerAllNodesValidationDeployment
1501 config: {get_resource: AllNodesValidationConfig}
1502 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1504 ComputeAllNodesValidationDeployment:
1505 type: OS::Heat::StructuredDeployments
1506 depends_on: ComputeAllNodesDeployment
1508 name: ComputeAllNodesValidationDeployment
1509 config: {get_resource: AllNodesValidationConfig}
1510 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1512 BlockStorageAllNodesValidationDeployment:
1513 type: OS::Heat::StructuredDeployments
1514 depends_on: BlockStorageAllNodesDeployment
1516 name: BlockStorageAllNodesValidationDeployment
1517 config: {get_resource: AllNodesValidationConfig}
1518 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1520 ObjectStorageAllNodesValidationDeployment:
1521 type: OS::Heat::StructuredDeployments
1522 depends_on: ObjectStorageAllNodesDeployment
1524 name: ObjectStorageAllNodesValidationDeployment
1525 config: {get_resource: AllNodesValidationConfig}
1526 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1528 CephStorageAllNodesValidationDeployment:
1529 type: OS::Heat::StructuredDeployments
1530 depends_on: CephStorageAllNodesDeployment
1532 name: CephStorageAllNodesValidationDeployment
1533 config: {get_resource: AllNodesValidationConfig}
1534 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1537 type: OS::TripleO::Tasks::UpdateWorkflow
1539 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1540 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1541 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1542 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1543 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1545 deploy_identifier: {get_param: DeployIdentifier}
1546 update_identifier: {get_param: UpdateIdentifier}
1548 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1549 # the nested template may configure each role differently (or not at all)
1550 AllNodesExtraConfig:
1551 type: OS::TripleO::AllNodesExtraConfig
1552 depends_on: UpdateWorkflow
1554 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1555 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1556 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1557 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1558 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1560 # Nested stack deployment runs after all other controller deployments
1561 ControllerNodesPostDeployment:
1562 type: OS::TripleO::ControllerPostDeployment
1563 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1565 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1566 NodeConfigIdentifiers:
1567 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1568 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1569 deployment_identifier: {get_param: DeployIdentifier}
1571 ComputeNodesPostDeployment:
1572 type: OS::TripleO::ComputePostDeployment
1573 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1575 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1576 NodeConfigIdentifiers:
1577 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1578 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1579 deployment_identifier: {get_param: DeployIdentifier}
1581 ObjectStorageNodesPostDeployment:
1582 type: OS::TripleO::ObjectStoragePostDeployment
1583 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1585 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1586 NodeConfigIdentifiers:
1587 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1588 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1589 deployment_identifier: {get_param: DeployIdentifier}
1591 BlockStorageNodesPostDeployment:
1592 type: OS::TripleO::BlockStoragePostDeployment
1593 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1595 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1596 NodeConfigIdentifiers:
1597 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1598 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1599 deployment_identifier: {get_param: DeployIdentifier}
1601 CephStorageNodesPostDeployment:
1602 type: OS::TripleO::CephStoragePostDeployment
1603 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1605 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1606 NodeConfigIdentifiers:
1607 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1608 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1609 deployment_identifier: {get_param: DeployIdentifier}
1613 description: URL for the Overcloud Keystone service
1614 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1616 description: Keystone Admin VIP endpoint
1617 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1619 description: Controller VIP for public API endpoints
1620 value: {get_attr: [VipMap, net_ip_map, external]}
1622 description: VIP for Aodh API internal endpoint
1623 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1624 CeilometerInternalVip:
1625 description: VIP for Ceilometer API internal endpoint
1626 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1628 description: VIP for Cinder API internal endpoint
1629 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1631 description: VIP for Glance API internal endpoint
1632 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1634 description: VIP for Heat API internal endpoint
1635 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1636 KeystoneInternalVip:
1637 description: VIP for Keystone API internal endpoint
1638 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1640 description: VIP for Neutron API internal endpoint
1641 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1643 description: VIP for Nova API internal endpoint
1644 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1646 description: VIP for Sahara API internal endpoint
1647 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1649 description: VIP for Swift Proxy internal endpoint
1650 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1653 The content that should be appended to your /etc/hosts if you want to get
1654 hostname-based access to the deployed nodes (useful for testing without
1656 value: {get_attr: [allNodesConfig, hosts_entries]}