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 Nova key pair 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.
112 type: comma_delimited_list
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.
131 type: comma_delimited_list
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.
139 type: comma_delimited_list
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.
180 type: comma_delimited_list
181 NeutronTunnelIdRanges:
183 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
184 of GRE tunnel IDs that are available for tenant network allocation
185 default: ["1:1000", ]
186 type: comma_delimited_list
189 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
190 of VXLAN VNI IDs that are available for tenant network allocation
191 default: ["1:1000", ]
192 type: comma_delimited_list
196 The core plugin for Neutron. The value should be the entrypoint to be loaded
197 from neutron.core_plugins namespace.
199 NeutronServicePlugins:
202 Comma-separated list of service plugin entrypoints to be loaded from the
203 neutron.service_plugins namespace.
204 type: comma_delimited_list
206 default: "vxlan,vlan,flat,gre"
208 Comma-separated list of network type driver entrypoints to be loaded.
209 type: comma_delimited_list
210 NeutronMechanismDrivers:
211 default: 'openvswitch'
213 The mechanism drivers for the Neutron tenant network.
214 type: comma_delimited_list
215 NeutronAllowL3AgentFailover:
217 description: Allow automatic l3-agent failover
221 description: Whether to enable l3-agent HA
223 NeutronDhcpAgentsPerNetwork:
226 description: The number of neutron dhcp agents to schedule per network
229 description: The password for the nova service account, used by nova-api.
234 description: Comma-separated list of ntp servers
235 type: comma_delimited_list
238 description: Should MongoDb journaling be disabled
240 PublicVirtualFixedIPs:
243 Control the IP allocation for the PublicVirtualInterface port. E.g.
244 [{'ip_address':'1.2.3.4'}]
249 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
250 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
253 description: The username for RabbitMQ
257 description: The password for RabbitMQ
263 Rabbit client subscriber parameter to specify
264 an SSL connection to the RabbitMQ host.
268 description: Set rabbit subscriber port, change this if using SSL
270 # We need to set this as string because 'unlimited' is a valid setting
273 description: Configures RabbitMQ FD limit
275 SnmpdReadonlyUserName:
276 default: ro_snmp_user
277 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
279 SnmpdReadonlyUserPassword:
281 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
285 default: 'localdomain'
288 The DNS domain used for the hosts. This should match the dhcp_domain
289 configured in the Undercloud neutron. Defaults to localdomain.
293 Extra properties or metadata passed to Nova for the created nodes in
294 the overcloud. It's accessible via the Nova metadata API.
297 # Controller-specific params
300 description: The keystone auth secret.
303 CinderLVMLoopDeviceSize:
305 description: The size of the loopback file used by the cinder LVM driver.
307 CinderNfsMountOptions:
310 Mount options for NFS mounts used by Cinder NFS backend. Effective
311 when CinderEnableNfsBackend is true.
316 NFS servers used by Cinder NFS backend. Effective when
317 CinderEnableNfsBackend is true.
318 type: comma_delimited_list
321 description: The password for the cinder service account, used by cinder-api.
326 description: The iSCSI helper to use with cinder.
333 controllerExtraConfig:
336 Controller specific configuration to inject into the cluster. Same
337 structure as ExtraConfig.
341 default: overcloud-control
343 - custom_constraint: glance.image
344 OvercloudControlFlavor:
345 description: Flavor for control nodes to request when deploying.
348 - custom_constraint: nova.flavor
349 ControlVirtualInterface:
351 description: Interface where virtual ip will be assigned.
355 description: Whether to enable fencing in Pacemaker or not.
359 description: Whether to use Galera instead of regular MariaDB.
361 ControllerEnableCephStorage:
363 description: Whether to deploy Ceph Storage (OSD) on the Controller
365 ControllerEnableSwiftStorage:
367 description: Whether to enable Swift Storage on the Controller
369 ControllerSchedulerHints:
371 description: Optional scheduler hints to pass to nova
376 Additional configuration to inject into the cluster. The format required
377 may be implementation specific, e.g puppet hieradata. Any role specific
378 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
383 Pacemaker fencing configuration. The JSON should have
384 the following structure:
388 "agent": "AGENT_NAME",
389 "host_mac": "HOST_MAC_ADDRESS",
390 "params": {"PARAM_NAME": "PARAM_VALUE"}
398 "agent": "fence_xvm",
399 "host_mac": "52:54:00:aa:bb:cc",
401 "multicast_address": "225.0.0.12",
402 "port": "baremetal_0",
404 "manage_key_file": true,
405 "key_file": "/etc/fence_xvm.key",
406 "key_file_password": "abcdef"
413 description: The filepath of the file to use for logging messages from Glance.
416 GlanceNotifierStrategy:
417 description: Strategy to use for Glance notification queue
422 description: The password for the glance service account, used by the glance services.
427 description: The short name of the Glance backend to use. Should be one
428 of swift, rbd or file
431 - allowed_values: ['swift', 'file', 'rbd']
434 description: The password for the Heat service account, used by the Heat services.
437 HeatStackDomainAdminPassword:
438 description: Password for heat_domain_admin user.
442 InstanceNameTemplate:
443 default: 'instance-%08x'
444 description: Template string to be used to generate instance names
446 KeystoneCACertificate:
448 description: Keystone self-signed certificate authority certificate.
450 KeystoneSigningCertificate:
452 description: Keystone certificate for verifying token validity.
456 description: Keystone key for signing tokens.
459 KeystoneSSLCertificate:
461 description: Keystone certificate for verifying token validity.
463 KeystoneSSLCertificateKey:
465 description: Keystone key for signing tokens.
468 KeystoneNotificationDriver:
469 description: Comma-separated list of Oslo notification drivers used by Keystone
470 default: ['messaging']
471 type: comma_delimited_list
472 KeystoneNotificationFormat:
473 description: The Keystone notification format
477 - allowed_values: [ 'basic', 'cadf' ]
480 description: Whether to manage IPtables rules.
484 description: Whether IPtables rules should be purged before setting up the ones.
486 MysqlInnodbBufferPoolSize:
488 Specifies the size of the buffer pool in megabytes. Setting to
489 zero should be interpreted as "no value" and will defer to the
494 description: Configures MySQL max_connections config setting
497 NeutronDnsmasqOptions:
498 default: 'dhcp-option-force=26,1400'
499 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
501 NeutronPublicInterfaceDefaultRoute:
503 description: A custom default route for the NeutronPublicInterface.
505 NeutronPublicInterfaceIP:
507 description: A custom IP address to put onto the NeutronPublicInterface.
509 NeutronPublicInterfaceRawDevice:
511 description: If set, the public interface is a vlan with this device as the raw device.
513 PublicVirtualInterface:
516 Specifies the interface where the public-facing virtual ip will be assigned.
517 This should be int_public when a VLAN is being used.
521 description: A random string to be used as a salt when hashing to determine mappings in the ring.
526 description: The password for the swift service account, used by the swift proxy services.
531 description: Value of mount_check in Swift account/container/object -server.conf
536 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
539 description: Partition Power to use when building Swift rings
544 description: How many replicas to use in the swift rings.
546 # Compute-specific params
547 CeilometerComputeAgent:
548 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
552 - allowed_values: ['', Present]
556 HypervisorNeutronPhysicalBridge:
559 An OVS bridge to create on each hypervisor. This defaults to br-ex the
560 same as the control plane nodes, as we have a uniform configuration of
561 the openvswitch agent. Typically should not need to be changed.
563 HypervisorNeutronPublicInterface:
565 description: What interface to add to the HypervisorNeutronPhysicalBridge.
567 NeutronNetworkVLANRanges:
568 default: 'datacentre'
570 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
571 Neutron documentation for permitted values. Defaults to permitting any
572 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
573 type: comma_delimited_list
576 default: libvirt.LibvirtDriver
577 NovaComputeExtraConfig:
580 NovaCompute specific configuration to inject into the cluster. Same
581 structure as ExtraConfig.
583 NovaComputeLibvirtType:
586 NovaComputeLibvirtVifDriver:
588 description: Libvirt VIF driver configuration for the network
590 NovaComputeSchedulerHints:
592 description: Optional scheduler hints to pass to nova
594 NovaEnableRbdBackend:
596 description: Whether to enable or not the Rbd backend for Nova
600 default: overcloud-compute
602 - custom_constraint: glance.image
605 description: Name of integration bridge used by Open vSwitch
607 NovaSecurityGroupAPI:
609 description: The full class name of the security API class
611 OvercloudComputeFlavor:
612 description: Use this flavor
615 - custom_constraint: nova.flavor
618 NeutronTenantNetwork: tenant
619 CeilometerApiNetwork: internal_api
620 MongoDbNetwork: internal_api
621 CinderApiNetwork: internal_api
622 CinderIscsiNetwork: storage
623 GlanceApiNetwork: storage
624 GlanceRegistryNetwork: internal_api
625 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
626 KeystonePublicApiNetwork: internal_api
627 NeutronApiNetwork: internal_api
628 HeatApiNetwork: internal_api
629 NovaApiNetwork: internal_api
630 NovaMetadataNetwork: internal_api
631 NovaVncProxyNetwork: internal_api
632 SwiftMgmtNetwork: storage_mgmt
633 SwiftProxyNetwork: storage
634 HorizonNetwork: internal_api
635 MemcachedNetwork: internal_api
636 RabbitMqNetwork: internal_api
637 RedisNetwork: internal_api
638 MysqlNetwork: internal_api
639 CephClusterNetwork: storage_mgmt
640 CephPublicNetwork: storage
641 ControllerHostnameResolveNetwork: internal_api
642 ComputeHostnameResolveNetwork: internal_api
643 BlockStorageHostnameResolveNetwork: internal_api
644 ObjectStorageHostnameResolveNetwork: internal_api
645 CephStorageHostnameResolveNetwork: storage
646 description: Mapping of service_name -> network name. Typically set
647 via parameter_defaults in the resource registry.
650 # Block storage specific parameters
655 default: overcloud-cinder-volume
657 OvercloudBlockStorageFlavor:
658 description: Flavor for block storage nodes to request when deploying.
661 - custom_constraint: nova.flavor
662 BlockStorageExtraConfig:
665 BlockStorage specific configuration to inject into the cluster. Same
666 structure as ExtraConfig.
668 BlockStorageSchedulerHints:
670 description: Optional scheduler hints to pass to nova
674 # Object storage specific parameters
678 OvercloudSwiftStorageFlavor:
679 description: Flavor for Swift storage nodes to request when deploying.
682 - custom_constraint: nova.flavor
684 default: overcloud-swift-storage
686 ObjectStorageExtraConfig:
689 ObjectStorage specific configuration to inject into the cluster. Same
690 structure as ExtraConfig.
692 ObjectStorageSchedulerHints:
694 description: Optional scheduler hints to pass to nova
697 # Ceph storage specific parameters
702 default: overcloud-ceph-storage
704 OvercloudCephStorageFlavor:
706 description: Flavor for Ceph storage nodes to request when deploying.
709 - custom_constraint: nova.flavor
710 CephStorageExtraConfig:
713 CephStorage specific configuration to inject into the cluster. Same
714 structure as ExtraConfig.
716 CephStorageSchedulerHints:
718 description: Optional scheduler hints to pass to nova
722 # Hostname format for each role
723 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
724 # and %stackname% is replaced with OS::stack_name in the template below.
725 # If you want to use the heat generated names, pass '' (empty string).
726 ControllerHostnameFormat:
728 description: Format for Controller node hostnames
729 default: '%stackname%-controller-%index%'
730 ComputeHostnameFormat:
732 description: Format for Compute node hostnames
733 default: '%stackname%-novacompute-%index%'
734 BlockStorageHostnameFormat:
736 description: Format for BlockStorage node hostnames
737 default: '%stackname%-blockstorage-%index%'
738 ObjectStorageHostnameFormat:
740 description: Format for SwiftStorage node hostnames
741 default: '%stackname%-objectstorage-%index%'
742 CephStorageHostnameFormat:
744 description: Format for CephStorage node hostnames
745 default: '%stackname%-cephstorage-%index%'
747 # Identifiers to trigger tasks on nodes
752 Setting to a previously unused value during stack-update will trigger
753 package update on all nodes
758 Setting this to a unique value will re-run any deployment tasks which
759 perform configuration on a Heat stack-update.
761 # If you want to remove a specific node from a resource group, you can pass
762 # the node name or id as a <Group>RemovalPolicies parameter, for example:
763 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
764 ControllerRemovalPolicies:
768 List of resources to be removed from ControllerResourceGroup when
769 doing an update which requires removal of specific resources.
770 ComputeRemovalPolicies:
774 List of resources to be removed from ComputeResourceGroup when
775 doing an update which requires removal of specific resources.
776 BlockStorageRemovalPolicies:
780 List of resources to be removed from BlockStorageResourceGroup when
781 doing an update which requires removal of specific resources.
782 ObjectStorageRemovalPolicies:
786 List of resources to be removed from ObjectStorageResourceGroup when
787 doing an update which requires removal of specific resources.
788 CephStorageRemovalPolicies:
792 List of resources to be removed from CephStorageResourceGroup when
793 doing an update which requires removal of specific resources.
798 HeatAuthEncryptionKey:
799 type: OS::Heat::RandomString
802 type: OS::Heat::RandomString
807 type: OS::Heat::RandomString
812 type: OS::TripleO::EndpointMap
814 CloudName: {get_param: CloudName}
815 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
816 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
817 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
818 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
819 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
820 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
821 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
822 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
823 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
824 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
825 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
826 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
829 type: OS::Heat::ResourceGroup
832 count: {get_param: ControllerCount}
833 removal_policies: {get_param: ControllerRemovalPolicies}
835 type: OS::TripleO::Controller
837 AdminPassword: {get_param: AdminPassword}
838 AdminToken: {get_param: AdminToken}
839 CeilometerBackend: {get_param: CeilometerBackend}
840 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
841 CeilometerPassword: {get_param: CeilometerPassword}
842 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
843 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
844 CinderNfsServers: {get_param: CinderNfsServers}
845 CinderPassword: {get_param: CinderPassword}
846 CinderISCSIHelper: {get_param: CinderISCSIHelper}
847 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
848 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
849 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
850 CloudName: {get_param: CloudName}
851 CloudDomain: {get_param: CloudDomain}
852 ControlVirtualInterface: {get_param: ControlVirtualInterface}
853 ControllerExtraConfig: {get_param: controllerExtraConfig}
854 Debug: {get_param: Debug}
855 EnableFencing: {get_param: EnableFencing}
856 ManageFirewall: {get_param: ManageFirewall}
857 PurgeFirewallRules: {get_param: PurgeFirewallRules}
858 EnableGalera: {get_param: EnableGalera}
859 EnableCephStorage: {get_param: ControllerEnableCephStorage}
860 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
861 ExtraConfig: {get_param: ExtraConfig}
862 FencingConfig: {get_param: FencingConfig}
863 Flavor: {get_param: OvercloudControlFlavor}
864 GlancePassword: {get_param: GlancePassword}
865 GlanceBackend: {get_param: GlanceBackend}
866 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
867 GlanceLogFile: {get_param: GlanceLogFile}
868 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
869 HeatPassword: {get_param: HeatPassword}
870 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
871 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
872 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
873 HorizonSecret: {get_resource: HorizonSecret}
874 Image: {get_param: controllerImage}
875 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
876 InstanceNameTemplate: {get_param: InstanceNameTemplate}
877 KeyName: {get_param: KeyName}
878 KeystoneCACertificate: {get_param: KeystoneCACertificate}
879 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
880 KeystoneSigningKey: {get_param: KeystoneSigningKey}
881 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
882 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
883 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
884 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
885 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
886 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
887 MysqlMaxConnections: {get_param: MysqlMaxConnections}
888 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
889 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
890 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
891 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
892 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
893 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
894 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
895 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
896 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
897 NeutronPublicInterface: {get_param: NeutronPublicInterface}
898 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
899 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
900 NeutronPassword: {get_param: NeutronPassword}
901 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
902 NeutronDVR: {get_param: NeutronDVR}
903 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
904 NeutronAgentMode: {get_param: NeutronAgentMode}
905 NeutronCorePlugin: {get_param: NeutronCorePlugin}
906 NeutronServicePlugins: {get_param: NeutronServicePlugins}
907 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
908 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
909 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
910 NeutronL3HA: {get_param: NeutronL3HA}
911 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
912 NeutronNetworkType: {get_param: NeutronNetworkType}
913 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
914 NovaPassword: {get_param: NovaPassword}
915 NtpServer: {get_param: NtpServer}
916 MongoDbNoJournal: {get_param: MongoDbNoJournal}
917 PcsdPassword: {get_resource: PcsdPassword}
918 PublicVirtualInterface: {get_param: PublicVirtualInterface}
919 RabbitPassword: {get_param: RabbitPassword}
920 RabbitUserName: {get_param: RabbitUserName}
921 RabbitCookie: {get_attr: [RabbitCookie, value]}
922 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
923 RabbitClientPort: {get_param: RabbitClientPort}
924 RabbitFDLimit: {get_param: RabbitFDLimit}
925 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
926 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
927 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
928 SwiftHashSuffix: {get_param: SwiftHashSuffix}
929 SwiftMountCheck: {get_param: SwiftMountCheck}
930 SwiftMinPartHours: {get_param: SwiftMinPartHours}
931 SwiftPartPower: {get_param: SwiftPartPower}
932 SwiftPassword: {get_param: SwiftPassword}
933 SwiftReplicas: { get_param: SwiftReplicas}
934 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
935 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
936 ServiceNetMap: {get_param: ServiceNetMap}
937 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
938 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
939 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
940 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
941 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
942 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
943 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
944 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
945 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
946 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
947 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
948 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
949 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
950 UpdateIdentifier: {get_param: UpdateIdentifier}
953 template: {get_param: ControllerHostnameFormat}
955 '%stackname%': {get_param: 'OS::stack_name'}
957 ServerMetadata: {get_param: ServerMetadata}
958 SchedulerHints: {get_param: ControllerSchedulerHints}
961 type: OS::Heat::ResourceGroup
964 count: {get_param: ComputeCount}
965 removal_policies: {get_param: ComputeRemovalPolicies}
967 type: OS::TripleO::Compute
969 AdminPassword: {get_param: AdminPassword}
970 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
971 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
972 CeilometerPassword: {get_param: CeilometerPassword}
973 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
974 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
975 Debug: {get_param: Debug}
976 ExtraConfig: {get_param: ExtraConfig}
977 Flavor: {get_param: OvercloudComputeFlavor}
978 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
979 Image: {get_param: NovaImage}
980 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
981 KeyName: {get_param: KeyName}
982 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
983 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
984 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
985 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
986 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
987 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
988 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
989 NeutronNetworkType: {get_param: NeutronNetworkType}
990 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
991 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
992 NeutronPassword: {get_param: NeutronPassword}
993 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
994 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
995 NeutronDVR: {get_param: NeutronDVR}
996 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
997 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
998 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
999 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1000 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1001 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1002 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1003 # L3 HA and Failover is not relevant for Computes, should be removed
1004 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1005 NeutronL3HA: {get_param: NeutronL3HA}
1006 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1007 NovaComputeDriver: {get_param: NovaComputeDriver}
1008 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1009 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1010 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1011 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1012 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1013 NovaPassword: {get_param: NovaPassword}
1014 NovaOVSBridge: {get_param: NovaOVSBridge}
1015 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1016 NtpServer: {get_param: NtpServer}
1017 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1018 RabbitPassword: {get_param: RabbitPassword}
1019 RabbitUserName: {get_param: RabbitUserName}
1020 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1021 RabbitClientPort: {get_param: RabbitClientPort}
1022 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1023 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1024 ServiceNetMap: {get_param: ServiceNetMap}
1025 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1026 UpdateIdentifier: {get_param: UpdateIdentifier}
1029 template: {get_param: ComputeHostnameFormat}
1031 '%stackname%': {get_param: 'OS::stack_name'}
1032 CloudDomain: {get_param: CloudDomain}
1033 ServerMetadata: {get_param: ServerMetadata}
1034 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1037 type: OS::Heat::ResourceGroup
1038 depends_on: Networks
1040 count: {get_param: BlockStorageCount}
1041 removal_policies: {get_param: BlockStorageRemovalPolicies}
1043 type: OS::TripleO::BlockStorage
1045 Debug: {get_param: Debug}
1046 Image: {get_param: BlockStorageImage}
1047 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1048 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1049 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1050 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1051 CinderPassword: {get_param: CinderPassword}
1052 KeyName: {get_param: KeyName}
1053 Flavor: {get_param: OvercloudBlockStorageFlavor}
1054 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1055 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1056 RabbitPassword: {get_param: RabbitPassword}
1057 RabbitUserName: {get_param: RabbitUserName}
1058 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1059 RabbitClientPort: {get_param: RabbitClientPort}
1060 NtpServer: {get_param: NtpServer}
1061 UpdateIdentifier: {get_param: UpdateIdentifier}
1064 template: {get_param: BlockStorageHostnameFormat}
1066 '%stackname%': {get_param: 'OS::stack_name'}
1067 ServiceNetMap: {get_param: ServiceNetMap}
1068 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1069 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1070 ExtraConfig: {get_param: ExtraConfig}
1071 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1072 CloudDomain: {get_param: CloudDomain}
1073 ServerMetadata: {get_param: ServerMetadata}
1074 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1077 type: OS::Heat::ResourceGroup
1078 depends_on: Networks
1080 count: {get_param: ObjectStorageCount}
1081 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1083 type: OS::TripleO::ObjectStorage
1085 KeyName: {get_param: KeyName}
1086 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1087 HashSuffix: {get_param: SwiftHashSuffix}
1088 MountCheck: {get_param: SwiftMountCheck}
1089 MinPartHours: {get_param: SwiftMinPartHours}
1090 PartPower: {get_param: SwiftPartPower}
1091 Image: {get_param: SwiftStorageImage}
1092 Replicas: { get_param: SwiftReplicas}
1093 NtpServer: {get_param: NtpServer}
1094 UpdateIdentifier: {get_param: UpdateIdentifier}
1095 ServiceNetMap: {get_param: ServiceNetMap}
1098 template: {get_param: ObjectStorageHostnameFormat}
1100 '%stackname%': {get_param: 'OS::stack_name'}
1101 ExtraConfig: {get_param: ExtraConfig}
1102 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1103 CloudDomain: {get_param: CloudDomain}
1104 ServerMetadata: {get_param: ServerMetadata}
1105 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1108 type: OS::Heat::ResourceGroup
1109 depends_on: Networks
1111 count: {get_param: CephStorageCount}
1112 removal_policies: {get_param: CephStorageRemovalPolicies}
1114 type: OS::TripleO::CephStorage
1116 Image: {get_param: CephStorageImage}
1117 KeyName: {get_param: KeyName}
1118 Flavor: {get_param: OvercloudCephStorageFlavor}
1119 NtpServer: {get_param: NtpServer}
1120 ServiceNetMap: {get_param: ServiceNetMap}
1121 UpdateIdentifier: {get_param: UpdateIdentifier}
1124 template: {get_param: CephStorageHostnameFormat}
1126 '%stackname%': {get_param: 'OS::stack_name'}
1127 ExtraConfig: {get_param: ExtraConfig}
1128 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1129 CloudDomain: {get_param: CloudDomain}
1130 ServerMetadata: {get_param: ServerMetadata}
1131 SchedulerHints: {get_param: CephStorageSchedulerHints}
1133 ControllerIpListMap:
1134 type: OS::TripleO::Network::Ports::NetIpListMap
1136 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1137 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1138 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1139 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1140 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1141 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1142 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1145 type: OS::TripleO::AllNodes::SoftwareConfig
1147 compute_hosts: {get_attr: [Compute, hosts_entry]}
1148 controller_hosts: {get_attr: [Controller, hosts_entry]}
1149 controller_ips: {get_attr: [Controller, ip_address]}
1150 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1151 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1152 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1153 controller_names: {get_attr: [Controller, hostname]}
1154 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1155 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1156 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1157 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1158 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1159 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1160 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1161 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1162 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1163 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1164 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1165 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1166 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1167 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1168 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1169 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1170 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1171 DeployIdentifier: {get_param: DeployIdentifier}
1172 UpdateIdentifier: {get_param: UpdateIdentifier}
1175 type: OS::Heat::RandomString
1179 MysqlClusterUniquePart:
1180 type: OS::Heat::RandomString
1185 type: OS::Heat::RandomString
1188 salt: {get_param: RabbitCookieSalt}
1190 # creates the network architecture
1192 type: OS::TripleO::Network
1195 type: OS::Neutron::Port
1196 depends_on: Networks
1198 name: control_virtual_ip
1199 network: {get_param: NeutronControlPlaneID}
1200 fixed_ips: {get_param: ControlFixedIPs}
1201 replacement_policy: AUTO
1204 depends_on: Networks
1205 type: OS::TripleO::Network::Ports::RedisVipPort
1207 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1208 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1209 PortName: redis_virtual_ip
1210 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1213 # The public VIP is on the External net, falls back to ctlplane
1215 depends_on: Networks
1216 type: OS::TripleO::Network::Ports::ExternalVipPort
1218 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1219 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1220 PortName: public_virtual_ip
1221 FixedIPs: {get_param: PublicVirtualFixedIPs}
1223 InternalApiVirtualIP:
1224 depends_on: Networks
1225 type: OS::TripleO::Network::Ports::InternalApiVipPort
1227 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1228 PortName: internal_api_virtual_ip
1231 depends_on: Networks
1232 type: OS::TripleO::Network::Ports::StorageVipPort
1234 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1235 PortName: storage_virtual_ip
1237 StorageMgmtVirtualIP:
1238 depends_on: Networks
1239 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1241 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1242 PortName: storage_management_virtual_ip
1245 type: OS::TripleO::Network::Ports::NetVipMap
1247 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1248 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1249 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1250 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1251 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1252 # No tenant or management VIP required
1255 type: OS::TripleO::VipConfig
1258 type: OS::Heat::StructuredDeployments
1260 config: {get_resource: VipConfig}
1261 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1263 # service VIP mappings
1264 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1265 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1266 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1267 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1268 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1269 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1270 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1271 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1272 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1273 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1274 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1275 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1276 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1277 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1278 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1279 # direct configuration of Virtual IPs for each network
1280 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1281 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1282 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1283 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1284 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1286 ControllerBootstrapNodeConfig:
1287 type: OS::TripleO::BootstrapNode::SoftwareConfig
1289 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1290 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1292 ControllerBootstrapNodeDeployment:
1293 type: OS::Heat::StructuredDeployments
1295 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1296 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1298 ControllerSwiftDeployment:
1299 type: OS::Heat::StructuredDeployments
1301 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1302 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1304 ObjectStorageSwiftDeployment:
1305 type: OS::Heat::StructuredDeployments
1307 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1308 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1310 SwiftDevicesAndProxyConfig:
1311 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1313 controller_swift_devices: {get_attr: [Controller, swift_device]}
1314 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1315 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1317 ComputeCephDeployment:
1318 type: OS::Heat::StructuredDeployments
1320 config: {get_attr: [CephClusterConfig, config_id]}
1321 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1323 ControllerCephDeployment:
1324 type: OS::Heat::StructuredDeployments
1326 config: {get_attr: [CephClusterConfig, config_id]}
1327 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1329 CephStorageCephDeployment:
1330 type: OS::Heat::StructuredDeployments
1332 config: {get_attr: [CephClusterConfig, config_id]}
1333 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1336 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1338 ceph_storage_count: {get_param: CephStorageCount}
1339 ceph_fsid: {get_param: CephClusterFSID}
1340 ceph_mon_key: {get_param: CephMonKey}
1341 ceph_admin_key: {get_param: CephAdminKey}
1342 ceph_client_key: {get_param: CephClientKey}
1343 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1344 ceph_mon_names: {get_attr: [Controller, hostname]}
1345 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1347 ControllerClusterConfig:
1348 type: OS::Heat::StructuredConfig
1350 group: os-apply-config
1353 nodes: {get_attr: [Controller, corosync_node]}
1357 nodes: {get_attr: [Controller, hostname]}
1359 nodes: {get_attr: [Controller, corosync_node]}
1361 nodes: {get_attr: [Controller, corosync_node]}
1363 ControllerClusterDeployment:
1364 type: OS::Heat::StructuredDeployments
1366 config: {get_resource: ControllerClusterConfig}
1367 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1369 ControllerAllNodesDeployment:
1370 type: OS::Heat::StructuredDeployments
1372 config: {get_attr: [allNodesConfig, config_id]}
1373 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1375 ComputeAllNodesDeployment:
1376 type: OS::Heat::StructuredDeployments
1378 config: {get_attr: [allNodesConfig, config_id]}
1379 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1381 BlockStorageAllNodesDeployment:
1382 type: OS::Heat::StructuredDeployments
1384 config: {get_attr: [allNodesConfig, config_id]}
1385 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1387 ObjectStorageAllNodesDeployment:
1388 type: OS::Heat::StructuredDeployments
1390 config: {get_attr: [allNodesConfig, config_id]}
1391 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1393 CephStorageAllNodesDeployment:
1394 type: OS::Heat::StructuredDeployments
1396 config: {get_attr: [allNodesConfig, config_id]}
1397 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1399 # All Nodes Validations
1400 AllNodesValidationConfig:
1401 type: OS::TripleO::AllNodes::Validation
1406 - - {get_attr: [Controller, resource.0.external_ip_address]}
1407 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1408 - {get_attr: [Controller, resource.0.storage_ip_address]}
1409 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1410 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1412 ControllerAllNodesValidationDeployment:
1413 type: OS::Heat::StructuredDeployments
1414 depends_on: ControllerAllNodesDeployment
1416 config: {get_resource: AllNodesValidationConfig}
1417 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1419 ComputeAllNodesValidationDeployment:
1420 type: OS::Heat::StructuredDeployments
1421 depends_on: ComputeAllNodesDeployment
1423 config: {get_resource: AllNodesValidationConfig}
1424 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1426 BlockStorageAllNodesValidationDeployment:
1427 type: OS::Heat::StructuredDeployments
1428 depends_on: BlockStorageAllNodesDeployment
1430 config: {get_resource: AllNodesValidationConfig}
1431 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1433 ObjectStorageAllNodesValidationDeployment:
1434 type: OS::Heat::StructuredDeployments
1435 depends_on: ObjectStorageAllNodesDeployment
1437 config: {get_resource: AllNodesValidationConfig}
1438 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1440 CephStorageAllNodesValidationDeployment:
1441 type: OS::Heat::StructuredDeployments
1442 depends_on: CephStorageAllNodesDeployment
1444 config: {get_resource: AllNodesValidationConfig}
1445 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1447 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1448 # the nested template may configure each role differently (or not at all)
1449 AllNodesExtraConfig:
1450 type: OS::TripleO::AllNodesExtraConfig
1452 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1453 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1454 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1455 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1456 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1458 # Nested stack deployment runs after all other controller deployments
1459 ControllerNodesPostDeployment:
1460 type: OS::TripleO::ControllerPostDeployment
1461 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1463 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1464 NodeConfigIdentifiers:
1465 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1466 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1467 deployment_identifier: {get_param: DeployIdentifier}
1469 ComputeNodesPostDeployment:
1470 type: OS::TripleO::ComputePostDeployment
1471 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1473 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1474 NodeConfigIdentifiers:
1475 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1476 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1477 deployment_identifier: {get_param: DeployIdentifier}
1479 ObjectStorageNodesPostDeployment:
1480 type: OS::TripleO::ObjectStoragePostDeployment
1481 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1483 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1484 NodeConfigIdentifiers:
1485 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1486 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1487 deployment_identifier: {get_param: DeployIdentifier}
1489 BlockStorageNodesPostDeployment:
1490 type: OS::TripleO::BlockStoragePostDeployment
1491 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1493 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1494 NodeConfigIdentifiers:
1495 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1496 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1497 deployment_identifier: {get_param: DeployIdentifier}
1499 CephStorageNodesPostDeployment:
1500 type: OS::TripleO::CephStoragePostDeployment
1501 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1503 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1504 NodeConfigIdentifiers:
1505 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1506 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1507 deployment_identifier: {get_param: DeployIdentifier}
1511 description: URL for the Overcloud Keystone service
1512 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1514 description: Keystone Admin VIP endpoint
1515 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1517 description: Controller VIP for public API endpoints
1518 value: {get_attr: [VipMap, net_ip_map, external]}
1519 CeilometerInternalVip:
1520 description: VIP for Ceilometer API internal endpoint
1521 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1523 description: VIP for Cinder API internal endpoint
1524 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1526 description: VIP for Glance API internal endpoint
1527 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1529 description: VIP for Heat API internal endpoint
1530 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1531 KeystoneInternalVip:
1532 description: VIP for Keystone API internal endpoint
1533 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1535 description: VIP for Neutron API internal endpoint
1536 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1538 description: VIP for Nova API internal endpoint
1539 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1541 description: VIP for Swift Proxy internal endpoint
1542 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1545 The content that should be appended to your /etc/hosts if you want to get
1546 hostname-based access to the deployed nodes (useful for testing without
1548 value: {get_attr: [allNodesConfig, hosts_entries]}