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)
17 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
22 description: The ceilometer backend type.
24 CeilometerMeteringSecret:
26 description: Secret shared by the ceilometer services.
31 description: The password for the ceilometer service account.
34 # This has to be an UUID so for now we generate it outside the template
38 description: The Ceph cluster FSID. Must be a UUID.
41 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
46 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
49 CinderEnableNfsBackend:
51 description: Whether to enable or not the NFS backend for Cinder
55 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.
61 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
62 CinderEnableIscsiBackend:
64 description: Whether to enable or not the Iscsi backend for Cinder
66 CinderEnableRbdBackend:
68 description: Whether to enable or not the Rbd backend for Cinder
72 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
76 description: Should be used for arbitrary ips.
80 description: Set to True to enable debugging on all services.
84 description: Syslog address where HAproxy will send its log
88 description: A list of IP/Hostname allowed to connect to horizon
89 type: comma_delimited_list
91 default: 'REBUILD_PRESERVE_EPHEMERAL'
92 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
96 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
99 - custom_constraint: nova.keypair
100 NeutronExternalNetworkBridge:
101 description: Name of bridge used for external network traffic.
104 NeutronBridgeMappings:
106 The OVS logical->physical bridge mappings to use. See the Neutron
107 documentation for details. Defaults to mapping br-ex - the external
108 bridge on hosts - to a physical name 'datacentre' which can be used
109 to create provider networks (and we use this for the default floating
110 network) - if changing this either use different post-install network
111 scripts or be sure to keep 'datacentre' as a mapping network name.
113 default: "datacentre:br-ex"
114 NeutronControlPlaneID:
117 description: Neutron ID or name for ctlplane network.
118 NeutronEnableIsolatedMetadata:
120 description: If True, DHCP provide metadata route to VM.
122 NeutronEnableTunnelling:
128 Enable/disable the L2 population feature in the Neutron agents.
132 default: 'datacentre'
134 If set, flat networks to configure in neutron plugins. Defaults to
135 'datacentre' to permit external network creation.
138 description: The tenant network type for Neutron, either gre or vxlan.
142 description: The password for the neutron service account, used by neutron agents.
145 NeutronPublicInterface:
147 description: What interface to bridge onto br-ex for network nodes.
149 NeutronPublicInterfaceTag:
152 VLAN tag for creating a public VLAN. The tag will be used to
153 create an access port on the exterior bridge for each control plane node,
154 and that port will be given the IP address returned by neutron from the
155 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
156 overcloud.yaml to include the deployment of VLAN ports to the control
159 NeutronComputeAgentMode:
161 description: Agent mode for the neutron-l3-agent on the compute hosts
165 description: Agent mode for the neutron-l3-agent on the controller hosts
169 description: Whether to configure Neutron Distributed Virtual Routers
171 NeutronMetadataProxySharedSecret:
173 description: Shared secret to prevent spoofing
179 The tunnel types for the Neutron tenant network. To specify multiple
180 values, use a comma separated string, like so: 'gre,vxlan'
182 NeutronTunnelIdRanges:
184 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
185 of GRE tunnel IDs that are available for tenant network allocation
186 default: ["1:1000", ]
187 type: comma_delimited_list
190 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
191 of VXLAN VNI IDs that are available for tenant network allocation
192 default: ["1:1000", ]
193 type: comma_delimited_list
197 The core plugin for Neutron. The value should be the entrypoint to be loaded
198 from neutron.core_plugins namespace.
200 NeutronServicePlugins:
203 Comma-separated list of service plugin entrypoints to be loaded from the
204 neutron.service_plugins namespace.
205 type: comma_delimited_list
207 default: "vxlan,vlan,flat,gre"
209 Comma-separated list of network type driver entrypoints to be loaded.
210 type: comma_delimited_list
211 NeutronMechanismDrivers:
212 default: 'openvswitch'
214 The mechanism drivers for the Neutron tenant network. To specify multiple
215 values, use a comma separated string, like so: 'openvswitch,l2_population'
217 NeutronAllowL3AgentFailover:
219 description: Allow automatic l3-agent failover
223 description: Whether to enable l3-agent HA
225 NeutronDhcpAgentsPerNetwork:
228 description: The number of neutron dhcp agents to schedule per network
231 description: The password for the nova service account, used by nova-api.
236 description: Comma-separated list of ntp servers
237 type: comma_delimited_list
240 description: Should MongoDb journaling be disabled
242 PublicVirtualFixedIPs:
245 Control the IP allocation for the PublicVirtualInterface port. E.g.
246 [{'ip_address':'1.2.3.4'}]
251 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
252 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
255 description: The username for RabbitMQ
259 description: The password for RabbitMQ
265 Rabbit client subscriber parameter to specify
266 an SSL connection to the RabbitMQ host.
270 description: Set rabbit subscriber port, change this if using SSL
272 # We need to set this as string because 'unlimited' is a valid setting
275 description: Configures RabbitMQ FD limit
277 SnmpdReadonlyUserName:
278 default: ro_snmp_user
279 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
281 SnmpdReadonlyUserPassword:
283 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
287 # Controller-specific params
290 description: The keystone auth secret.
293 CinderLVMLoopDeviceSize:
295 description: The size of the loopback file used by the cinder LVM driver.
297 CinderNfsMountOptions:
300 Mount options for NFS mounts used by Cinder NFS backend. Effective
301 when CinderEnableNfsBackend is true.
306 NFS servers used by Cinder NFS backend. Effective when
307 CinderEnableNfsBackend is true.
308 type: comma_delimited_list
311 description: The password for the cinder service account, used by cinder-api.
316 description: The iSCSI helper to use with cinder.
323 controllerExtraConfig:
326 Controller specific configuration to inject into the cluster. Same
327 structure as ExtraConfig.
331 default: overcloud-control
333 - custom_constraint: glance.image
334 OvercloudControlFlavor:
335 description: Flavor for control nodes to request when deploying.
338 - custom_constraint: nova.flavor
339 ControlVirtualInterface:
341 description: Interface where virtual ip will be assigned.
345 description: Whether to enable fencing in Pacemaker or not.
349 description: Whether to use Galera instead of regular MariaDB.
351 ControllerEnableCephStorage:
353 description: Whether to deploy Ceph Storage (OSD) on the Controller
355 ControllerEnableSwiftStorage:
357 description: Whether to enable Swift Storage on the Controller
362 Additional configuration to inject into the cluster. The format required
363 may be implementation specific, e.g puppet hieradata. Any role specific
364 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
369 Pacemaker fencing configuration. The JSON should have
370 the following structure:
374 "agent": "AGENT_NAME",
375 "host_mac": "HOST_MAC_ADDRESS",
376 "params": {"PARAM_NAME": "PARAM_VALUE"}
384 "agent": "fence_xvm",
385 "host_mac": "52:54:00:aa:bb:cc",
387 "multicast_address": "225.0.0.12",
388 "port": "baremetal_0",
390 "manage_key_file": true,
391 "key_file": "/etc/fence_xvm.key",
392 "key_file_password": "abcdef"
399 description: The filepath of the file to use for logging messages from Glance.
402 GlanceNotifierStrategy:
403 description: Strategy to use for Glance notification queue
408 description: The password for the glance service account, used by the glance services.
413 description: The short name of the Glance backend to use. Should be one
414 of swift, rbd or file
417 - allowed_values: ['swift', 'file', 'rbd']
420 description: The password for the Heat service account, used by the Heat services.
423 HeatStackDomainAdminPassword:
424 description: Password for heat_domain_admin user.
428 KeystoneCACertificate:
430 description: Keystone self-signed certificate authority certificate.
432 KeystoneSigningCertificate:
434 description: Keystone certificate for verifying token validity.
438 description: Keystone key for signing tokens.
441 KeystoneSSLCertificate:
443 description: Keystone certificate for verifying token validity.
445 KeystoneSSLCertificateKey:
447 description: Keystone key for signing tokens.
450 KeystoneNotificationDriver:
451 description: Comma-separated list of Oslo notification drivers used by Keystone
452 default: ['messaging']
453 type: comma_delimited_list
454 KeystoneNotificationFormat:
455 description: The Keystone notification format
459 - allowed_values: [ 'basic', 'cadf' ]
462 description: Whether to manage IPtables rules.
466 description: Whether IPtables rules should be purged before setting up the ones.
468 MysqlInnodbBufferPoolSize:
470 Specifies the size of the buffer pool in megabytes. Setting to
471 zero should be interpreted as "no value" and will defer to the
476 description: Configures MySQL max_connections config setting
479 NeutronDnsmasqOptions:
480 default: 'dhcp-option-force=26,1400'
481 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
483 NeutronPublicInterfaceDefaultRoute:
485 description: A custom default route for the NeutronPublicInterface.
487 NeutronPublicInterfaceIP:
489 description: A custom IP address to put onto the NeutronPublicInterface.
491 NeutronPublicInterfaceRawDevice:
493 description: If set, the public interface is a vlan with this device as the raw device.
495 PublicVirtualInterface:
498 Specifies the interface where the public-facing virtual ip will be assigned.
499 This should be int_public when a VLAN is being used.
503 description: A random string to be used as a salt when hashing to determine mappings in the ring.
508 description: The password for the swift service account, used by the swift proxy services.
513 description: Value of mount_check in Swift account/container/object -server.conf
518 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
521 description: Partition Power to use when building Swift rings
526 description: How many replicas to use in the swift rings.
528 # Compute-specific params
529 CeilometerComputeAgent:
530 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
534 - allowed_values: ['', Present]
538 HypervisorNeutronPhysicalBridge:
541 An OVS bridge to create on each hypervisor. This defaults to br-ex the
542 same as the control plane nodes, as we have a uniform configuration of
543 the openvswitch agent. Typically should not need to be changed.
545 HypervisorNeutronPublicInterface:
547 description: What interface to add to the HypervisorNeutronPhysicalBridge.
549 NeutronNetworkVLANRanges:
550 default: 'datacentre'
552 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
553 Neutron documentation for permitted values. Defaults to permitting any
554 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
555 type: comma_delimited_list
558 default: libvirt.LibvirtDriver
559 NovaComputeExtraConfig:
562 NovaCompute specific configuration to inject into the cluster. Same
563 structure as ExtraConfig.
565 NovaComputeLibvirtType:
568 NovaEnableRbdBackend:
570 description: Whether to enable or not the Rbd backend for Nova
574 default: overcloud-compute
576 - custom_constraint: glance.image
577 OvercloudComputeFlavor:
578 description: Use this flavor
581 - custom_constraint: nova.flavor
584 NeutronTenantNetwork: tenant
585 CeilometerApiNetwork: internal_api
586 MongoDbNetwork: internal_api
587 CinderApiNetwork: internal_api
588 CinderIscsiNetwork: storage
589 GlanceApiNetwork: storage
590 GlanceRegistryNetwork: internal_api
591 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
592 KeystonePublicApiNetwork: internal_api
593 NeutronApiNetwork: internal_api
594 HeatApiNetwork: internal_api
595 NovaApiNetwork: internal_api
596 NovaMetadataNetwork: internal_api
597 NovaVncProxyNetwork: internal_api
598 SwiftMgmtNetwork: storage_mgmt
599 SwiftProxyNetwork: storage
600 HorizonNetwork: internal_api
601 MemcachedNetwork: internal_api
602 RabbitMqNetwork: internal_api
603 RedisNetwork: internal_api
604 MysqlNetwork: internal_api
605 CephClusterNetwork: storage_mgmt
606 CephPublicNetwork: storage
607 ControllerHostnameResolveNetwork: internal_api
608 ComputeHostnameResolveNetwork: internal_api
609 BlockStorageHostnameResolveNetwork: internal_api
610 ObjectStorageHostnameResolveNetwork: internal_api
611 CephStorageHostnameResolveNetwork: storage
612 description: Mapping of service_name -> network name. Typically set
613 via parameter_defaults in the resource registry.
616 # Block storage specific parameters
621 default: overcloud-cinder-volume
623 OvercloudBlockStorageFlavor:
624 description: Flavor for block storage nodes to request when deploying.
627 - custom_constraint: nova.flavor
628 BlockStorageExtraConfig:
631 BlockStorage specific configuration to inject into the cluster. Same
632 structure as ExtraConfig.
635 # Object storage specific parameters
639 OvercloudSwiftStorageFlavor:
640 description: Flavor for Swift storage nodes to request when deploying.
643 - custom_constraint: nova.flavor
645 default: overcloud-swift-storage
647 ObjectStorageExtraConfig:
650 ObjectStorage specific configuration to inject into the cluster. Same
651 structure as ExtraConfig.
655 # Ceph storage specific parameters
660 default: overcloud-ceph-storage
662 OvercloudCephStorageFlavor:
664 description: Flavor for Ceph storage nodes to request when deploying.
667 - custom_constraint: nova.flavor
668 CephStorageExtraConfig:
671 CephStorage specific configuration to inject into the cluster. Same
672 structure as ExtraConfig.
675 # Hostname format for each role
676 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
677 # and %stackname% is replaced with OS::stack_name in the template below.
678 # If you want to use the heat generated names, pass '' (empty string).
679 ControllerHostnameFormat:
681 description: Format for Controller node hostnames
682 default: '%stackname%-controller-%index%'
683 ComputeHostnameFormat:
685 description: Format for Compute node hostnames
686 default: '%stackname%-novacompute-%index%'
687 BlockStorageHostnameFormat:
689 description: Format for BlockStorage node hostnames
690 default: '%stackname%-blockstorage-%index%'
691 ObjectStorageHostnameFormat:
693 description: Format for SwiftStorage node hostnames
694 default: '%stackname%-objectstorage-%index%'
695 CephStorageHostnameFormat:
697 description: Format for CephStorage node hostnames
698 default: '%stackname%-cephstorage-%index%'
700 # Identifiers to trigger tasks on nodes
705 Setting to a previously unused value during stack-update will trigger
706 package update on all nodes
711 Setting this to a unique value will re-run any deployment tasks which
712 perform configuration on a Heat stack-update.
714 # If you want to remove a specific node from a resource group, you can pass
715 # the node name or id as a <Group>RemovalPolicies parameter, for example:
716 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
717 ControllerRemovalPolicies:
721 List of resources to be removed from ControllerResourceGroup when
722 doing an update which requires removal of specific resources.
723 ComputeRemovalPolicies:
727 List of resources to be removed from ComputeResourceGroup when
728 doing an update which requires removal of specific resources.
729 BlockStorageRemovalPolicies:
733 List of resources to be removed from BlockStorageResourceGroup when
734 doing an update which requires removal of specific resources.
735 ObjectStorageRemovalPolicies:
739 List of resources to be removed from ObjectStorageResourceGroup when
740 doing an update which requires removal of specific resources.
741 CephStorageRemovalPolicies:
745 List of resources to be removed from CephStorageResourceGroup when
746 doing an update which requires removal of specific resources.
751 HeatAuthEncryptionKey:
752 type: OS::Heat::RandomString
755 type: OS::Heat::RandomString
760 type: OS::Heat::RandomString
765 type: OS::TripleO::EndpointMap
767 CloudName: {get_param: CloudName}
768 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
769 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
770 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
771 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
772 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
773 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
774 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
775 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
776 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
777 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
778 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
779 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
782 type: OS::Heat::ResourceGroup
785 count: {get_param: ControllerCount}
786 removal_policies: {get_param: ControllerRemovalPolicies}
788 type: OS::TripleO::Controller
790 AdminPassword: {get_param: AdminPassword}
791 AdminToken: {get_param: AdminToken}
792 CeilometerBackend: {get_param: CeilometerBackend}
793 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
794 CeilometerPassword: {get_param: CeilometerPassword}
795 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
796 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
797 CinderNfsServers: {get_param: CinderNfsServers}
798 CinderPassword: {get_param: CinderPassword}
799 CinderISCSIHelper: {get_param: CinderISCSIHelper}
800 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
801 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
802 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
803 CloudName: {get_param: CloudName}
804 ControlVirtualInterface: {get_param: ControlVirtualInterface}
805 ControllerExtraConfig: {get_param: controllerExtraConfig}
806 Debug: {get_param: Debug}
807 EnableFencing: {get_param: EnableFencing}
808 ManageFirewall: {get_param: ManageFirewall}
809 PurgeFirewallRules: {get_param: PurgeFirewallRules}
810 EnableGalera: {get_param: EnableGalera}
811 EnableCephStorage: {get_param: ControllerEnableCephStorage}
812 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
813 ExtraConfig: {get_param: ExtraConfig}
814 FencingConfig: {get_param: FencingConfig}
815 Flavor: {get_param: OvercloudControlFlavor}
816 GlancePassword: {get_param: GlancePassword}
817 GlanceBackend: {get_param: GlanceBackend}
818 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
819 GlanceLogFile: {get_param: GlanceLogFile}
820 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
821 HeatPassword: {get_param: HeatPassword}
822 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
823 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
824 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
825 HorizonSecret: {get_resource: HorizonSecret}
826 Image: {get_param: controllerImage}
827 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
828 KeyName: {get_param: KeyName}
829 KeystoneCACertificate: {get_param: KeystoneCACertificate}
830 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
831 KeystoneSigningKey: {get_param: KeystoneSigningKey}
832 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
833 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
834 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
835 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
836 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
837 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
838 MysqlMaxConnections: {get_param: MysqlMaxConnections}
839 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
840 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
841 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
842 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
843 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
844 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
845 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
846 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
847 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
848 NeutronPublicInterface: {get_param: NeutronPublicInterface}
849 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
850 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
851 NeutronPassword: {get_param: NeutronPassword}
852 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
853 NeutronDVR: {get_param: NeutronDVR}
854 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
855 NeutronAgentMode: {get_param: NeutronAgentMode}
856 NeutronCorePlugin: {get_param: NeutronCorePlugin}
857 NeutronServicePlugins: {get_param: NeutronServicePlugins}
858 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
859 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
860 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
861 NeutronL3HA: {get_param: NeutronL3HA}
862 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
863 NeutronNetworkType: {get_param: NeutronNetworkType}
864 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
865 NovaPassword: {get_param: NovaPassword}
866 NtpServer: {get_param: NtpServer}
867 MongoDbNoJournal: {get_param: MongoDbNoJournal}
868 PcsdPassword: {get_resource: PcsdPassword}
869 PublicVirtualInterface: {get_param: PublicVirtualInterface}
870 RabbitPassword: {get_param: RabbitPassword}
871 RabbitUserName: {get_param: RabbitUserName}
872 RabbitCookie: {get_attr: [RabbitCookie, value]}
873 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
874 RabbitClientPort: {get_param: RabbitClientPort}
875 RabbitFDLimit: {get_param: RabbitFDLimit}
876 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
877 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
878 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
879 SwiftHashSuffix: {get_param: SwiftHashSuffix}
880 SwiftMountCheck: {get_param: SwiftMountCheck}
881 SwiftMinPartHours: {get_param: SwiftMinPartHours}
882 SwiftPartPower: {get_param: SwiftPartPower}
883 SwiftPassword: {get_param: SwiftPassword}
884 SwiftReplicas: { get_param: SwiftReplicas}
885 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
886 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
887 ServiceNetMap: {get_param: ServiceNetMap}
888 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
889 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
890 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
891 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
892 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
893 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
894 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
895 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
896 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
897 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
898 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
899 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
900 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
901 UpdateIdentifier: {get_param: UpdateIdentifier}
904 template: {get_param: ControllerHostnameFormat}
906 '%stackname%': {get_param: 'OS::stack_name'}
910 type: OS::Heat::ResourceGroup
913 count: {get_param: ComputeCount}
914 removal_policies: {get_param: ComputeRemovalPolicies}
916 type: OS::TripleO::Compute
918 AdminPassword: {get_param: AdminPassword}
919 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
920 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
921 CeilometerPassword: {get_param: CeilometerPassword}
922 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
923 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
924 Debug: {get_param: Debug}
925 ExtraConfig: {get_param: ExtraConfig}
926 Flavor: {get_param: OvercloudComputeFlavor}
927 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
928 Image: {get_param: NovaImage}
929 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
930 KeyName: {get_param: KeyName}
931 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
932 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
933 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
934 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
935 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
936 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
937 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
938 NeutronNetworkType: {get_param: NeutronNetworkType}
939 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
940 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
941 NeutronPassword: {get_param: NeutronPassword}
942 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
943 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
944 NeutronDVR: {get_param: NeutronDVR}
945 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
946 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
947 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
948 NeutronCorePlugin: {get_param: NeutronCorePlugin}
949 NeutronServicePlugins: {get_param: NeutronServicePlugins}
950 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
951 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
952 # L3 HA and Failover is not relevant for Computes, should be removed
953 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
954 NeutronL3HA: {get_param: NeutronL3HA}
955 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
956 NovaComputeDriver: {get_param: NovaComputeDriver}
957 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
958 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
959 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
960 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
961 NovaPassword: {get_param: NovaPassword}
962 NtpServer: {get_param: NtpServer}
963 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
964 RabbitPassword: {get_param: RabbitPassword}
965 RabbitUserName: {get_param: RabbitUserName}
966 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
967 RabbitClientPort: {get_param: RabbitClientPort}
968 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
969 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
970 ServiceNetMap: {get_param: ServiceNetMap}
971 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
972 UpdateIdentifier: {get_param: UpdateIdentifier}
975 template: {get_param: ComputeHostnameFormat}
977 '%stackname%': {get_param: 'OS::stack_name'}
980 type: OS::Heat::ResourceGroup
983 count: {get_param: BlockStorageCount}
984 removal_policies: {get_param: BlockStorageRemovalPolicies}
986 type: OS::TripleO::BlockStorage
988 Debug: {get_param: Debug}
989 Image: {get_param: BlockStorageImage}
990 CinderISCSIHelper: {get_param: CinderISCSIHelper}
991 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
992 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
993 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
994 CinderPassword: {get_param: CinderPassword}
995 KeyName: {get_param: KeyName}
996 Flavor: {get_param: OvercloudBlockStorageFlavor}
997 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
998 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
999 RabbitPassword: {get_param: RabbitPassword}
1000 RabbitUserName: {get_param: RabbitUserName}
1001 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1002 RabbitClientPort: {get_param: RabbitClientPort}
1003 NtpServer: {get_param: NtpServer}
1004 UpdateIdentifier: {get_param: UpdateIdentifier}
1007 template: {get_param: BlockStorageHostnameFormat}
1009 '%stackname%': {get_param: 'OS::stack_name'}
1010 ServiceNetMap: {get_param: ServiceNetMap}
1011 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1012 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1013 ExtraConfig: {get_param: ExtraConfig}
1014 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1017 type: OS::Heat::ResourceGroup
1018 depends_on: Networks
1020 count: {get_param: ObjectStorageCount}
1021 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1023 type: OS::TripleO::ObjectStorage
1025 KeyName: {get_param: KeyName}
1026 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1027 HashSuffix: {get_param: SwiftHashSuffix}
1028 MountCheck: {get_param: SwiftMountCheck}
1029 MinPartHours: {get_param: SwiftMinPartHours}
1030 PartPower: {get_param: SwiftPartPower}
1031 Image: {get_param: SwiftStorageImage}
1032 Replicas: { get_param: SwiftReplicas}
1033 NtpServer: {get_param: NtpServer}
1034 UpdateIdentifier: {get_param: UpdateIdentifier}
1035 ServiceNetMap: {get_param: ServiceNetMap}
1038 template: {get_param: ObjectStorageHostnameFormat}
1040 '%stackname%': {get_param: 'OS::stack_name'}
1041 ExtraConfig: {get_param: ExtraConfig}
1042 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1045 type: OS::Heat::ResourceGroup
1046 depends_on: Networks
1048 count: {get_param: CephStorageCount}
1049 removal_policies: {get_param: CephStorageRemovalPolicies}
1051 type: OS::TripleO::CephStorage
1053 Image: {get_param: CephStorageImage}
1054 KeyName: {get_param: KeyName}
1055 Flavor: {get_param: OvercloudCephStorageFlavor}
1056 NtpServer: {get_param: NtpServer}
1057 ServiceNetMap: {get_param: ServiceNetMap}
1058 UpdateIdentifier: {get_param: UpdateIdentifier}
1061 template: {get_param: CephStorageHostnameFormat}
1063 '%stackname%': {get_param: 'OS::stack_name'}
1064 ExtraConfig: {get_param: ExtraConfig}
1065 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1067 ControllerIpListMap:
1068 type: OS::TripleO::Network::Ports::NetIpListMap
1070 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1071 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1072 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1073 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1074 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1075 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1078 type: OS::TripleO::AllNodes::SoftwareConfig
1080 compute_hosts: {get_attr: [Compute, hosts_entry]}
1081 controller_hosts: {get_attr: [Controller, hosts_entry]}
1082 controller_ips: {get_attr: [Controller, ip_address]}
1083 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1084 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1085 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1086 controller_names: {get_attr: [Controller, hostname]}
1087 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1088 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1089 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1090 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1091 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1092 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1093 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1094 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1095 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1096 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1097 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1098 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1099 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1100 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1101 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1102 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1103 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1106 type: OS::Heat::RandomString
1110 MysqlClusterUniquePart:
1111 type: OS::Heat::RandomString
1116 type: OS::Heat::RandomString
1119 salt: {get_param: RabbitCookieSalt}
1121 # creates the network architecture
1123 type: OS::TripleO::Network
1126 type: OS::Neutron::Port
1127 depends_on: Networks
1129 name: control_virtual_ip
1130 network: {get_param: NeutronControlPlaneID}
1131 fixed_ips: {get_param: ControlFixedIPs}
1132 replacement_policy: AUTO
1135 depends_on: Networks
1136 type: OS::TripleO::Controller::Ports::RedisVipPort
1138 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1139 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1140 PortName: redis_virtual_ip
1141 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1143 # The public VIP is on the External net, falls back to ctlplane
1145 depends_on: Networks
1146 type: OS::TripleO::Controller::Ports::ExternalPort
1148 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1149 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1150 PortName: public_virtual_ip
1151 FixedIPs: {get_param: PublicVirtualFixedIPs}
1153 InternalApiVirtualIP:
1154 depends_on: Networks
1155 type: OS::TripleO::Controller::Ports::InternalApiPort
1157 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1158 PortName: internal_api_virtual_ip
1161 depends_on: Networks
1162 type: OS::TripleO::Controller::Ports::StoragePort
1164 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1165 PortName: storage_virtual_ip
1167 StorageMgmtVirtualIP:
1168 depends_on: Networks
1169 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1171 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1172 PortName: storage_management_virtual_ip
1175 type: OS::TripleO::Network::Ports::NetVipMap
1177 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1178 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1179 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1180 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1181 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1182 # No tenant VIP required
1185 type: OS::TripleO::VipConfig
1188 type: OS::Heat::StructuredDeployments
1190 config: {get_resource: VipConfig}
1191 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1193 # service VIP mappings
1194 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1195 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1196 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1197 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1198 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1199 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1200 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1201 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1202 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1203 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1204 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1205 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1206 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1207 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1208 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1209 # direct configuration of Virtual IPs for each network
1210 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1211 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1212 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1213 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1214 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1216 ControllerBootstrapNodeConfig:
1217 type: OS::TripleO::BootstrapNode::SoftwareConfig
1219 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1220 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1222 ControllerBootstrapNodeDeployment:
1223 type: OS::Heat::StructuredDeployments
1225 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1226 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1228 ControllerSwiftDeployment:
1229 type: OS::Heat::StructuredDeployments
1231 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1232 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1234 ObjectStorageSwiftDeployment:
1235 type: OS::Heat::StructuredDeployments
1237 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1238 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1240 SwiftDevicesAndProxyConfig:
1241 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1243 controller_swift_devices: {get_attr: [Controller, swift_device]}
1244 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1245 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1247 ComputeCephDeployment:
1248 type: OS::Heat::StructuredDeployments
1250 config: {get_attr: [CephClusterConfig, config_id]}
1251 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1253 ControllerCephDeployment:
1254 type: OS::Heat::StructuredDeployments
1256 config: {get_attr: [CephClusterConfig, config_id]}
1257 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1259 CephStorageCephDeployment:
1260 type: OS::Heat::StructuredDeployments
1262 config: {get_attr: [CephClusterConfig, config_id]}
1263 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1266 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1268 ceph_storage_count: {get_param: CephStorageCount}
1269 ceph_fsid: {get_param: CephClusterFSID}
1270 ceph_mon_key: {get_param: CephMonKey}
1271 ceph_admin_key: {get_param: CephAdminKey}
1272 ceph_client_key: {get_param: CephClientKey}
1273 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1274 ceph_mon_names: {get_attr: [Controller, hostname]}
1275 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1277 ControllerClusterConfig:
1278 type: OS::Heat::StructuredConfig
1280 group: os-apply-config
1283 nodes: {get_attr: [Controller, corosync_node]}
1287 nodes: {get_attr: [Controller, hostname]}
1289 nodes: {get_attr: [Controller, corosync_node]}
1291 nodes: {get_attr: [Controller, corosync_node]}
1293 ControllerClusterDeployment:
1294 type: OS::Heat::StructuredDeployments
1296 config: {get_resource: ControllerClusterConfig}
1297 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1299 ControllerAllNodesDeployment:
1300 type: OS::Heat::StructuredDeployments
1302 config: {get_attr: [allNodesConfig, config_id]}
1303 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1305 ComputeAllNodesDeployment:
1306 type: OS::Heat::StructuredDeployments
1308 config: {get_attr: [allNodesConfig, config_id]}
1309 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1311 BlockStorageAllNodesDeployment:
1312 type: OS::Heat::StructuredDeployments
1314 config: {get_attr: [allNodesConfig, config_id]}
1315 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1317 ObjectStorageAllNodesDeployment:
1318 type: OS::Heat::StructuredDeployments
1320 config: {get_attr: [allNodesConfig, config_id]}
1321 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1323 CephStorageAllNodesDeployment:
1324 type: OS::Heat::StructuredDeployments
1326 config: {get_attr: [allNodesConfig, config_id]}
1327 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1329 # All Nodes Validations
1330 AllNodesValidationConfig:
1331 type: OS::TripleO::AllNodes::Validation
1336 - - {get_attr: [Controller, resource.0.external_ip_address]}
1337 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1338 - {get_attr: [Controller, resource.0.storage_ip_address]}
1339 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1340 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1342 ControllerAllNodesValidationDeployment:
1343 type: OS::Heat::StructuredDeployments
1344 depends_on: ControllerAllNodesDeployment
1346 config: {get_resource: AllNodesValidationConfig}
1347 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1349 ComputeAllNodesValidationDeployment:
1350 type: OS::Heat::StructuredDeployments
1351 depends_on: ComputeAllNodesDeployment
1353 config: {get_resource: AllNodesValidationConfig}
1354 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1356 BlockStorageAllNodesValidationDeployment:
1357 type: OS::Heat::StructuredDeployments
1358 depends_on: BlockStorageAllNodesDeployment
1360 config: {get_resource: AllNodesValidationConfig}
1361 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1363 ObjectStorageAllNodesValidationDeployment:
1364 type: OS::Heat::StructuredDeployments
1365 depends_on: ObjectStorageAllNodesDeployment
1367 config: {get_resource: AllNodesValidationConfig}
1368 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1370 CephStorageAllNodesValidationDeployment:
1371 type: OS::Heat::StructuredDeployments
1372 depends_on: CephStorageAllNodesDeployment
1374 config: {get_resource: AllNodesValidationConfig}
1375 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1377 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1378 # the nested template may configure each role differently (or not at all)
1379 AllNodesExtraConfig:
1380 type: OS::TripleO::AllNodesExtraConfig
1382 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1383 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1384 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1385 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1386 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1388 # Nested stack deployment runs after all other controller deployments
1389 ControllerNodesPostDeployment:
1390 type: OS::TripleO::ControllerPostDeployment
1391 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1393 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1394 NodeConfigIdentifiers:
1395 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1396 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1397 deployment_identifier: {get_param: DeployIdentifier}
1399 ComputeNodesPostDeployment:
1400 type: OS::TripleO::ComputePostDeployment
1401 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1403 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1404 NodeConfigIdentifiers:
1405 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1406 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1407 deployment_identifier: {get_param: DeployIdentifier}
1409 ObjectStorageNodesPostDeployment:
1410 type: OS::TripleO::ObjectStoragePostDeployment
1411 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1413 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1414 NodeConfigIdentifiers:
1415 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1416 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1417 deployment_identifier: {get_param: DeployIdentifier}
1419 BlockStorageNodesPostDeployment:
1420 type: OS::TripleO::BlockStoragePostDeployment
1421 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1423 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1424 NodeConfigIdentifiers:
1425 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1426 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1427 deployment_identifier: {get_param: DeployIdentifier}
1429 CephStorageNodesPostDeployment:
1430 type: OS::TripleO::CephStoragePostDeployment
1431 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1433 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1434 NodeConfigIdentifiers:
1435 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1436 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1437 deployment_identifier: {get_param: DeployIdentifier}
1441 description: URL for the Overcloud Keystone service
1442 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1444 description: Keystone Admin VIP endpoint
1445 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1447 description: Controller VIP for public API endpoints
1448 value: {get_attr: [VipMap, net_ip_map, external]}
1449 CeilometerInternalVip:
1450 description: VIP for Ceilometer API internal endpoint
1451 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1453 description: VIP for Cinder API internal endpoint
1454 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1456 description: VIP for Glance API internal endpoint
1457 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1459 description: VIP for Heat API internal endpoint
1460 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1461 KeystoneInternalVip:
1462 description: VIP for Keystone API internal endpoint
1463 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1465 description: VIP for Neutron API internal endpoint
1466 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1468 description: VIP for Nova API internal endpoint
1469 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1471 description: VIP for Swift Proxy internal endpoint
1472 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}