1 heat_template_version: 2015-04-30
4 Deploy an OpenStack environment, consisting of several node types (roles),
5 Controller, Compute, BlockStorage, SwiftStorage and CephStorage. The Storage
6 roles enable independent scaling of the storage components, but the minimal
7 deployment is one Controller and one Compute node.
10 # TODO(shadower): we should probably use the parameter groups to put
14 # Common parameters (not specific to a role)
16 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
21 description: The ceilometer backend type.
23 CeilometerMeteringSecret:
24 description: Secret shared by the ceilometer services.
28 description: The password for the ceilometer service account.
31 # This has to be an UUID so for now we generate it outside the template
35 description: The Ceph cluster FSID. Must be a UUID.
38 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
43 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
46 CinderEnableNfsBackend:
48 description: Whether to enable or not the NFS backend for Cinder
52 description: The Ceph client key. Can be created with ceph-authtool --gen-print-key. Currently only used for external Ceph deployments to create the openstack user keyring.
58 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
59 CinderEnableIscsiBackend:
61 description: Whether to enable or not the Iscsi backend for Cinder
63 CinderEnableRbdBackend:
65 description: Whether to enable or not the Rbd backend for Cinder
69 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
73 description: Should be used for arbitrary ips.
77 description: Set to True to enable debugging on all services.
81 description: Syslog address where HAproxy will send its log
85 description: A list of IP/Hostname allowed to connect to horizon
86 type: comma_delimited_list
88 default: 'REBUILD_PRESERVE_EPHEMERAL'
89 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
93 description: Name of an existing Nova key pair to enable SSH access to the instances
96 - custom_constraint: nova.keypair
97 NeutronExternalNetworkBridge:
98 description: Name of bridge used for external network traffic.
101 NeutronBridgeMappings:
103 The OVS logical->physical bridge mappings to use. See the Neutron
104 documentation for details. Defaults to mapping br-ex - the external
105 bridge on hosts - to a physical name 'datacentre' which can be used
106 to create provider networks (and we use this for the default floating
107 network) - if changing this either use different post-install network
108 scripts or be sure to keep 'datacentre' as a mapping network name.
109 type: comma_delimited_list
110 default: "datacentre:br-ex"
111 NeutronControlPlaneID:
114 description: Neutron ID or name for ctlplane network.
115 NeutronEnableIsolatedMetadata:
117 description: If True, DHCP provide metadata route to VM.
119 NeutronEnableTunnelling:
125 Enable/disable the L2 population feature in the Neutron agents.
128 type: comma_delimited_list
129 default: 'datacentre'
131 If set, flat networks to configure in neutron plugins. Defaults to
132 'datacentre' to permit external network creation.
135 description: The tenant network type for Neutron.
136 type: comma_delimited_list
138 description: The password for the neutron service account, used by neutron agents.
141 NeutronPublicInterface:
143 description: What interface to bridge onto br-ex for network nodes.
145 NeutronPublicInterfaceTag:
148 VLAN tag for creating a public VLAN. The tag will be used to
149 create an access port on the exterior bridge for each control plane node,
150 and that port will be given the IP address returned by neutron from the
151 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
152 overcloud.yaml to include the deployment of VLAN ports to the control
155 NeutronComputeAgentMode:
157 description: Agent mode for the neutron-l3-agent on the compute hosts
161 description: Agent mode for the neutron-l3-agent on the controller hosts
165 description: Whether to configure Neutron Distributed Virtual Routers
167 NeutronMetadataProxySharedSecret:
168 description: Shared secret to prevent spoofing
174 The tunnel types for the Neutron tenant network.
175 type: comma_delimited_list
176 NeutronTunnelIdRanges:
178 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
179 of GRE tunnel IDs that are available for tenant network allocation
180 default: ["1:1000", ]
181 type: comma_delimited_list
184 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
185 of VXLAN VNI IDs that are available for tenant network allocation
186 default: ["1:1000", ]
187 type: comma_delimited_list
191 The core plugin for Neutron. The value should be the entrypoint to be loaded
192 from neutron.core_plugins namespace.
194 NeutronServicePlugins:
197 Comma-separated list of service plugin entrypoints to be loaded from the
198 neutron.service_plugins namespace.
199 type: comma_delimited_list
201 default: "vxlan,vlan,flat,gre"
203 Comma-separated list of network type driver entrypoints to be loaded.
204 type: comma_delimited_list
205 NeutronMechanismDrivers:
206 default: 'openvswitch'
208 The mechanism drivers for the Neutron tenant network.
209 type: comma_delimited_list
210 NeutronAllowL3AgentFailover:
212 description: Allow automatic l3-agent failover
216 description: Whether to enable l3-agent HA
218 NeutronDhcpAgentsPerNetwork:
221 description: The number of neutron dhcp agents to schedule per network
223 description: The password for the nova service account, used by nova-api.
228 description: Comma-separated list of ntp servers
229 type: comma_delimited_list
232 description: Should MongoDb journaling be disabled
234 PublicVirtualFixedIPs:
237 Control the IP allocation for the PublicVirtualInterface port. E.g.
238 [{'ip_address':'1.2.3.4'}]
243 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
244 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
247 description: The username for RabbitMQ
251 description: The password for RabbitMQ
257 Rabbit client subscriber parameter to specify
258 an SSL connection to the RabbitMQ host.
262 description: Set rabbit subscriber port, change this if using SSL
264 # We need to set this as string because 'unlimited' is a valid setting
267 description: Configures RabbitMQ FD limit
269 SnmpdReadonlyUserName:
270 default: ro_snmp_user
271 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
273 SnmpdReadonlyUserPassword:
274 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
278 default: 'localdomain'
281 The DNS domain used for the hosts. This should match the dhcp_domain
282 configured in the Undercloud neutron. Defaults to localdomain.
286 Extra properties or metadata passed to Nova for the created nodes in
287 the overcloud. It's accessible via the Nova metadata API.
290 # Controller-specific params
292 description: The keystone auth secret.
295 CinderLVMLoopDeviceSize:
297 description: The size of the loopback file used by the cinder LVM driver.
299 CinderNfsMountOptions:
302 Mount options for NFS mounts used by Cinder NFS backend. Effective
303 when CinderEnableNfsBackend is true.
308 NFS servers used by Cinder NFS backend. Effective when
309 CinderEnableNfsBackend is true.
310 type: comma_delimited_list
312 description: The password for the cinder service account, used by cinder-api.
317 description: The iSCSI helper to use with cinder.
324 controllerExtraConfig:
327 Controller specific configuration to inject into the cluster. Same
328 structure as ExtraConfig.
332 default: overcloud-control
334 - custom_constraint: glance.image
335 OvercloudControlFlavor:
336 description: Flavor for control nodes to request when deploying.
339 - custom_constraint: nova.flavor
340 ControlVirtualInterface:
342 description: Interface where virtual ip will be assigned.
346 description: Whether to enable fencing in Pacemaker or not.
350 description: Whether to use Galera instead of regular MariaDB.
352 ControllerEnableCephStorage:
354 description: Whether to deploy Ceph Storage (OSD) on the Controller
356 ControllerEnableSwiftStorage:
358 description: Whether to enable Swift Storage on the Controller
360 ControllerSchedulerHints:
362 description: Optional scheduler hints to pass to nova
367 Additional configuration to inject into the cluster. The format required
368 may be implementation specific, e.g puppet hieradata. Any role specific
369 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
374 Pacemaker fencing configuration. The JSON should have
375 the following structure:
379 "agent": "AGENT_NAME",
380 "host_mac": "HOST_MAC_ADDRESS",
381 "params": {"PARAM_NAME": "PARAM_VALUE"}
389 "agent": "fence_xvm",
390 "host_mac": "52:54:00:aa:bb:cc",
392 "multicast_address": "225.0.0.12",
393 "port": "baremetal_0",
395 "manage_key_file": true,
396 "key_file": "/etc/fence_xvm.key",
397 "key_file_password": "abcdef"
404 description: The filepath of the file to use for logging messages from Glance.
407 GlanceNotifierStrategy:
408 description: Strategy to use for Glance notification queue
412 description: The password for the glance service account, used by the glance services.
417 description: The short name of the Glance backend to use. Should be one
418 of swift, rbd or file
421 - allowed_values: ['swift', 'file', 'rbd']
423 description: The password for the Heat service account, used by the Heat services.
426 HeatStackDomainAdminPassword:
427 description: Password for heat_domain_admin user.
430 InstanceNameTemplate:
431 default: 'instance-%08x'
432 description: Template string to be used to generate instance names
434 KeystoneCACertificate:
436 description: Keystone self-signed certificate authority certificate.
438 KeystoneSigningCertificate:
440 description: Keystone certificate for verifying token validity.
444 description: Keystone key for signing tokens.
447 KeystoneSSLCertificate:
449 description: Keystone certificate for verifying token validity.
451 KeystoneSSLCertificateKey:
453 description: Keystone key for signing tokens.
456 KeystoneNotificationDriver:
457 description: Comma-separated list of Oslo notification drivers used by Keystone
458 default: ['messaging']
459 type: comma_delimited_list
460 KeystoneNotificationFormat:
461 description: The Keystone notification format
465 - allowed_values: [ 'basic', 'cadf' ]
468 description: Whether to manage IPtables rules.
472 description: Whether IPtables rules should be purged before setting up the ones.
474 MysqlInnodbBufferPoolSize:
476 Specifies the size of the buffer pool in megabytes. Setting to
477 zero should be interpreted as "no value" and will defer to the
482 description: Configures MySQL max_connections config setting
485 NeutronDnsmasqOptions:
486 default: 'dhcp-option-force=26,1400'
487 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
489 NeutronPublicInterfaceDefaultRoute:
491 description: A custom default route for the NeutronPublicInterface.
493 NeutronPublicInterfaceIP:
495 description: A custom IP address to put onto the NeutronPublicInterface.
497 NeutronPublicInterfaceRawDevice:
499 description: If set, the public interface is a vlan with this device as the raw device.
501 PublicVirtualInterface:
504 Specifies the interface where the public-facing virtual ip will be assigned.
505 This should be int_public when a VLAN is being used.
508 description: A random string to be used as a salt when hashing to determine mappings in the ring.
512 description: The password for the swift service account, used by the swift proxy services.
517 description: Value of mount_check in Swift account/container/object -server.conf
522 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
525 description: Partition Power to use when building Swift rings
530 description: How many replicas to use in the swift rings.
532 # Compute-specific params
533 CeilometerComputeAgent:
534 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
538 - allowed_values: ['', Present]
542 HypervisorNeutronPhysicalBridge:
545 An OVS bridge to create on each hypervisor. This defaults to br-ex the
546 same as the control plane nodes, as we have a uniform configuration of
547 the openvswitch agent. Typically should not need to be changed.
549 HypervisorNeutronPublicInterface:
551 description: What interface to add to the HypervisorNeutronPhysicalBridge.
553 NeutronNetworkVLANRanges:
554 default: 'datacentre'
556 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
557 Neutron documentation for permitted values. Defaults to permitting any
558 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
559 type: comma_delimited_list
562 default: libvirt.LibvirtDriver
563 NovaComputeExtraConfig:
566 NovaCompute specific configuration to inject into the cluster. Same
567 structure as ExtraConfig.
569 NovaComputeLibvirtType:
572 NovaComputeLibvirtVifDriver:
574 description: Libvirt VIF driver configuration for the network
576 NovaComputeSchedulerHints:
578 description: Optional scheduler hints to pass to nova
580 NovaEnableRbdBackend:
582 description: Whether to enable or not the Rbd backend for Nova
586 default: overcloud-compute
588 - custom_constraint: glance.image
591 description: Name of integration bridge used by Open vSwitch
593 NovaSecurityGroupAPI:
595 description: The full class name of the security API class
597 OvercloudComputeFlavor:
598 description: Use this flavor
601 - custom_constraint: nova.flavor
604 NeutronTenantNetwork: tenant
605 CeilometerApiNetwork: internal_api
606 MongoDbNetwork: internal_api
607 CinderApiNetwork: internal_api
608 CinderIscsiNetwork: storage
609 GlanceApiNetwork: storage
610 GlanceRegistryNetwork: internal_api
611 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
612 KeystonePublicApiNetwork: internal_api
613 NeutronApiNetwork: internal_api
614 HeatApiNetwork: internal_api
615 NovaApiNetwork: internal_api
616 NovaMetadataNetwork: internal_api
617 NovaVncProxyNetwork: internal_api
618 SwiftMgmtNetwork: storage_mgmt
619 SwiftProxyNetwork: storage
620 HorizonNetwork: internal_api
621 MemcachedNetwork: internal_api
622 RabbitMqNetwork: internal_api
623 RedisNetwork: internal_api
624 MysqlNetwork: internal_api
625 CephClusterNetwork: storage_mgmt
626 CephPublicNetwork: storage
627 ControllerHostnameResolveNetwork: internal_api
628 ComputeHostnameResolveNetwork: internal_api
629 BlockStorageHostnameResolveNetwork: internal_api
630 ObjectStorageHostnameResolveNetwork: internal_api
631 CephStorageHostnameResolveNetwork: storage
632 description: Mapping of service_name -> network name. Typically set
633 via parameter_defaults in the resource registry.
636 # Block storage specific parameters
641 default: overcloud-cinder-volume
643 OvercloudBlockStorageFlavor:
644 description: Flavor for block storage nodes to request when deploying.
647 - custom_constraint: nova.flavor
648 BlockStorageExtraConfig:
651 BlockStorage specific configuration to inject into the cluster. Same
652 structure as ExtraConfig.
654 BlockStorageSchedulerHints:
656 description: Optional scheduler hints to pass to nova
660 # Object storage specific parameters
664 OvercloudSwiftStorageFlavor:
665 description: Flavor for Swift storage nodes to request when deploying.
668 - custom_constraint: nova.flavor
670 default: overcloud-swift-storage
672 ObjectStorageExtraConfig:
675 ObjectStorage specific configuration to inject into the cluster. Same
676 structure as ExtraConfig.
678 ObjectStorageSchedulerHints:
680 description: Optional scheduler hints to pass to nova
683 # Ceph storage specific parameters
688 default: overcloud-ceph-storage
690 OvercloudCephStorageFlavor:
692 description: Flavor for Ceph storage nodes to request when deploying.
695 - custom_constraint: nova.flavor
696 CephStorageExtraConfig:
699 CephStorage specific configuration to inject into the cluster. Same
700 structure as ExtraConfig.
702 CephStorageSchedulerHints:
704 description: Optional scheduler hints to pass to nova
708 # Hostname format for each role
709 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
710 # and %stackname% is replaced with OS::stack_name in the template below.
711 # If you want to use the heat generated names, pass '' (empty string).
712 ControllerHostnameFormat:
714 description: Format for Controller node hostnames
715 default: '%stackname%-controller-%index%'
716 ComputeHostnameFormat:
718 description: Format for Compute node hostnames
719 default: '%stackname%-novacompute-%index%'
720 BlockStorageHostnameFormat:
722 description: Format for BlockStorage node hostnames
723 default: '%stackname%-blockstorage-%index%'
724 ObjectStorageHostnameFormat:
726 description: Format for SwiftStorage node hostnames
727 default: '%stackname%-objectstorage-%index%'
728 CephStorageHostnameFormat:
730 description: Format for CephStorage node hostnames
731 default: '%stackname%-cephstorage-%index%'
733 # Identifiers to trigger tasks on nodes
738 Setting to a previously unused value during stack-update will trigger
739 package update on all nodes
744 Setting this to a unique value will re-run any deployment tasks which
745 perform configuration on a Heat stack-update.
747 # If you want to remove a specific node from a resource group, you can pass
748 # the node name or id as a <Group>RemovalPolicies parameter, for example:
749 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
750 ControllerRemovalPolicies:
754 List of resources to be removed from ControllerResourceGroup when
755 doing an update which requires removal of specific resources.
756 ComputeRemovalPolicies:
760 List of resources to be removed from ComputeResourceGroup when
761 doing an update which requires removal of specific resources.
762 BlockStorageRemovalPolicies:
766 List of resources to be removed from BlockStorageResourceGroup when
767 doing an update which requires removal of specific resources.
768 ObjectStorageRemovalPolicies:
772 List of resources to be removed from ObjectStorageResourceGroup when
773 doing an update which requires removal of specific resources.
774 CephStorageRemovalPolicies:
778 List of resources to be removed from CephStorageResourceGroup when
779 doing an update which requires removal of specific resources.
784 HeatAuthEncryptionKey:
785 type: OS::Heat::RandomString
788 type: OS::Heat::RandomString
793 type: OS::Heat::RandomString
798 type: OS::TripleO::EndpointMap
800 CloudName: {get_param: CloudName}
801 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
802 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
803 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
804 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
805 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
806 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
807 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
808 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
809 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
810 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
811 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
812 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
815 type: OS::Heat::ResourceGroup
818 count: {get_param: ControllerCount}
819 removal_policies: {get_param: ControllerRemovalPolicies}
821 type: OS::TripleO::Controller
823 AdminPassword: {get_param: AdminPassword}
824 AdminToken: {get_param: AdminToken}
825 CeilometerBackend: {get_param: CeilometerBackend}
826 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
827 CeilometerPassword: {get_param: CeilometerPassword}
828 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
829 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
830 CinderNfsServers: {get_param: CinderNfsServers}
831 CinderPassword: {get_param: CinderPassword}
832 CinderISCSIHelper: {get_param: CinderISCSIHelper}
833 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
834 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
835 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
836 CloudName: {get_param: CloudName}
837 CloudDomain: {get_param: CloudDomain}
838 ControlVirtualInterface: {get_param: ControlVirtualInterface}
839 ControllerExtraConfig: {get_param: controllerExtraConfig}
840 Debug: {get_param: Debug}
841 EnableFencing: {get_param: EnableFencing}
842 ManageFirewall: {get_param: ManageFirewall}
843 PurgeFirewallRules: {get_param: PurgeFirewallRules}
844 EnableGalera: {get_param: EnableGalera}
845 EnableCephStorage: {get_param: ControllerEnableCephStorage}
846 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
847 ExtraConfig: {get_param: ExtraConfig}
848 FencingConfig: {get_param: FencingConfig}
849 Flavor: {get_param: OvercloudControlFlavor}
850 GlancePassword: {get_param: GlancePassword}
851 GlanceBackend: {get_param: GlanceBackend}
852 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
853 GlanceLogFile: {get_param: GlanceLogFile}
854 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
855 HeatPassword: {get_param: HeatPassword}
856 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
857 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
858 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
859 HorizonSecret: {get_resource: HorizonSecret}
860 Image: {get_param: controllerImage}
861 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
862 InstanceNameTemplate: {get_param: InstanceNameTemplate}
863 KeyName: {get_param: KeyName}
864 KeystoneCACertificate: {get_param: KeystoneCACertificate}
865 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
866 KeystoneSigningKey: {get_param: KeystoneSigningKey}
867 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
868 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
869 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
870 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
871 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
872 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
873 MysqlMaxConnections: {get_param: MysqlMaxConnections}
874 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
875 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
876 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
877 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
878 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
879 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
880 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
881 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
882 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
883 NeutronPublicInterface: {get_param: NeutronPublicInterface}
884 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
885 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
886 NeutronPassword: {get_param: NeutronPassword}
887 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
888 NeutronDVR: {get_param: NeutronDVR}
889 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
890 NeutronAgentMode: {get_param: NeutronAgentMode}
891 NeutronCorePlugin: {get_param: NeutronCorePlugin}
892 NeutronServicePlugins: {get_param: NeutronServicePlugins}
893 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
894 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
895 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
896 NeutronL3HA: {get_param: NeutronL3HA}
897 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
898 NeutronNetworkType: {get_param: NeutronNetworkType}
899 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
900 NovaPassword: {get_param: NovaPassword}
901 NtpServer: {get_param: NtpServer}
902 MongoDbNoJournal: {get_param: MongoDbNoJournal}
903 PcsdPassword: {get_resource: PcsdPassword}
904 PublicVirtualInterface: {get_param: PublicVirtualInterface}
905 RabbitPassword: {get_param: RabbitPassword}
906 RabbitUserName: {get_param: RabbitUserName}
907 RabbitCookie: {get_attr: [RabbitCookie, value]}
908 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
909 RabbitClientPort: {get_param: RabbitClientPort}
910 RabbitFDLimit: {get_param: RabbitFDLimit}
911 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
912 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
913 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
914 SwiftHashSuffix: {get_param: SwiftHashSuffix}
915 SwiftMountCheck: {get_param: SwiftMountCheck}
916 SwiftMinPartHours: {get_param: SwiftMinPartHours}
917 SwiftPartPower: {get_param: SwiftPartPower}
918 SwiftPassword: {get_param: SwiftPassword}
919 SwiftReplicas: { get_param: SwiftReplicas}
920 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
921 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
922 ServiceNetMap: {get_param: ServiceNetMap}
923 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
924 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
925 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
926 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
927 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
928 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
929 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
930 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
931 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
932 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
933 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
934 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
935 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
936 UpdateIdentifier: {get_param: UpdateIdentifier}
939 template: {get_param: ControllerHostnameFormat}
941 '%stackname%': {get_param: 'OS::stack_name'}
943 ServerMetadata: {get_param: ServerMetadata}
944 SchedulerHints: {get_param: ControllerSchedulerHints}
947 type: OS::Heat::ResourceGroup
950 count: {get_param: ComputeCount}
951 removal_policies: {get_param: ComputeRemovalPolicies}
953 type: OS::TripleO::Compute
955 AdminPassword: {get_param: AdminPassword}
956 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
957 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
958 CeilometerPassword: {get_param: CeilometerPassword}
959 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
960 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
961 Debug: {get_param: Debug}
962 ExtraConfig: {get_param: ExtraConfig}
963 Flavor: {get_param: OvercloudComputeFlavor}
964 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
965 Image: {get_param: NovaImage}
966 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
967 KeyName: {get_param: KeyName}
968 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
969 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
970 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
971 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
972 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
973 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
974 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
975 NeutronNetworkType: {get_param: NeutronNetworkType}
976 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
977 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
978 NeutronPassword: {get_param: NeutronPassword}
979 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
980 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
981 NeutronDVR: {get_param: NeutronDVR}
982 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
983 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
984 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
985 NeutronCorePlugin: {get_param: NeutronCorePlugin}
986 NeutronServicePlugins: {get_param: NeutronServicePlugins}
987 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
988 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
989 # L3 HA and Failover is not relevant for Computes, should be removed
990 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
991 NeutronL3HA: {get_param: NeutronL3HA}
992 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
993 NovaComputeDriver: {get_param: NovaComputeDriver}
994 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
995 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
996 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
997 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
998 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
999 NovaPassword: {get_param: NovaPassword}
1000 NovaOVSBridge: {get_param: NovaOVSBridge}
1001 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1002 NtpServer: {get_param: NtpServer}
1003 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1004 RabbitPassword: {get_param: RabbitPassword}
1005 RabbitUserName: {get_param: RabbitUserName}
1006 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1007 RabbitClientPort: {get_param: RabbitClientPort}
1008 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1009 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1010 ServiceNetMap: {get_param: ServiceNetMap}
1011 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1012 UpdateIdentifier: {get_param: UpdateIdentifier}
1015 template: {get_param: ComputeHostnameFormat}
1017 '%stackname%': {get_param: 'OS::stack_name'}
1018 CloudDomain: {get_param: CloudDomain}
1019 ServerMetadata: {get_param: ServerMetadata}
1020 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1023 type: OS::Heat::ResourceGroup
1024 depends_on: Networks
1026 count: {get_param: BlockStorageCount}
1027 removal_policies: {get_param: BlockStorageRemovalPolicies}
1029 type: OS::TripleO::BlockStorage
1031 Debug: {get_param: Debug}
1032 Image: {get_param: BlockStorageImage}
1033 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1034 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1035 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1036 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1037 CinderPassword: {get_param: CinderPassword}
1038 KeyName: {get_param: KeyName}
1039 Flavor: {get_param: OvercloudBlockStorageFlavor}
1040 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1041 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1042 RabbitPassword: {get_param: RabbitPassword}
1043 RabbitUserName: {get_param: RabbitUserName}
1044 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1045 RabbitClientPort: {get_param: RabbitClientPort}
1046 NtpServer: {get_param: NtpServer}
1047 UpdateIdentifier: {get_param: UpdateIdentifier}
1050 template: {get_param: BlockStorageHostnameFormat}
1052 '%stackname%': {get_param: 'OS::stack_name'}
1053 ServiceNetMap: {get_param: ServiceNetMap}
1054 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1055 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1056 ExtraConfig: {get_param: ExtraConfig}
1057 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1058 CloudDomain: {get_param: CloudDomain}
1059 ServerMetadata: {get_param: ServerMetadata}
1060 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1063 type: OS::Heat::ResourceGroup
1064 depends_on: Networks
1066 count: {get_param: ObjectStorageCount}
1067 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1069 type: OS::TripleO::ObjectStorage
1071 KeyName: {get_param: KeyName}
1072 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1073 HashSuffix: {get_param: SwiftHashSuffix}
1074 MountCheck: {get_param: SwiftMountCheck}
1075 MinPartHours: {get_param: SwiftMinPartHours}
1076 PartPower: {get_param: SwiftPartPower}
1077 Image: {get_param: SwiftStorageImage}
1078 Replicas: { get_param: SwiftReplicas}
1079 NtpServer: {get_param: NtpServer}
1080 UpdateIdentifier: {get_param: UpdateIdentifier}
1081 ServiceNetMap: {get_param: ServiceNetMap}
1084 template: {get_param: ObjectStorageHostnameFormat}
1086 '%stackname%': {get_param: 'OS::stack_name'}
1087 ExtraConfig: {get_param: ExtraConfig}
1088 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1089 CloudDomain: {get_param: CloudDomain}
1090 ServerMetadata: {get_param: ServerMetadata}
1091 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1094 type: OS::Heat::ResourceGroup
1095 depends_on: Networks
1097 count: {get_param: CephStorageCount}
1098 removal_policies: {get_param: CephStorageRemovalPolicies}
1100 type: OS::TripleO::CephStorage
1102 Image: {get_param: CephStorageImage}
1103 KeyName: {get_param: KeyName}
1104 Flavor: {get_param: OvercloudCephStorageFlavor}
1105 NtpServer: {get_param: NtpServer}
1106 ServiceNetMap: {get_param: ServiceNetMap}
1107 UpdateIdentifier: {get_param: UpdateIdentifier}
1110 template: {get_param: CephStorageHostnameFormat}
1112 '%stackname%': {get_param: 'OS::stack_name'}
1113 ExtraConfig: {get_param: ExtraConfig}
1114 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1115 CloudDomain: {get_param: CloudDomain}
1116 ServerMetadata: {get_param: ServerMetadata}
1117 SchedulerHints: {get_param: CephStorageSchedulerHints}
1119 ControllerIpListMap:
1120 type: OS::TripleO::Network::Ports::NetIpListMap
1122 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1123 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1124 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1125 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1126 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1127 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1130 type: OS::TripleO::AllNodes::SoftwareConfig
1132 compute_hosts: {get_attr: [Compute, hosts_entry]}
1133 controller_hosts: {get_attr: [Controller, hosts_entry]}
1134 controller_ips: {get_attr: [Controller, ip_address]}
1135 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1136 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1137 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1138 controller_names: {get_attr: [Controller, hostname]}
1139 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1140 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1141 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1142 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1143 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1144 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1145 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1146 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1147 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1148 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1149 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1150 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1151 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1152 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1153 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1154 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1155 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1156 DeployIdentifier: {get_param: DeployIdentifier}
1157 UpdateIdentifier: {get_param: UpdateIdentifier}
1160 type: OS::Heat::RandomString
1164 MysqlClusterUniquePart:
1165 type: OS::Heat::RandomString
1170 type: OS::Heat::RandomString
1173 salt: {get_param: RabbitCookieSalt}
1175 # creates the network architecture
1177 type: OS::TripleO::Network
1180 type: OS::Neutron::Port
1181 depends_on: Networks
1183 name: control_virtual_ip
1184 network: {get_param: NeutronControlPlaneID}
1185 fixed_ips: {get_param: ControlFixedIPs}
1186 replacement_policy: AUTO
1189 depends_on: Networks
1190 type: OS::TripleO::Network::Ports::RedisVipPort
1192 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1193 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1194 PortName: redis_virtual_ip
1195 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1198 # The public VIP is on the External net, falls back to ctlplane
1200 depends_on: Networks
1201 type: OS::TripleO::Network::Ports::ExternalVipPort
1203 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1204 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1205 PortName: public_virtual_ip
1206 FixedIPs: {get_param: PublicVirtualFixedIPs}
1208 InternalApiVirtualIP:
1209 depends_on: Networks
1210 type: OS::TripleO::Network::Ports::InternalApiVipPort
1212 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1213 PortName: internal_api_virtual_ip
1216 depends_on: Networks
1217 type: OS::TripleO::Network::Ports::StorageVipPort
1219 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1220 PortName: storage_virtual_ip
1222 StorageMgmtVirtualIP:
1223 depends_on: Networks
1224 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1226 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1227 PortName: storage_management_virtual_ip
1230 type: OS::TripleO::Network::Ports::NetVipMap
1232 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1233 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1234 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1235 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1236 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1237 # No tenant VIP required
1240 type: OS::TripleO::VipConfig
1243 type: OS::Heat::StructuredDeployments
1245 config: {get_resource: VipConfig}
1246 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1248 # service VIP mappings
1249 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1250 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1251 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1252 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1253 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1254 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1255 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1256 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1257 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1258 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1259 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1260 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1261 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1262 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1263 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1264 # direct configuration of Virtual IPs for each network
1265 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1266 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1267 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1268 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1269 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1271 ControllerBootstrapNodeConfig:
1272 type: OS::TripleO::BootstrapNode::SoftwareConfig
1274 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1275 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1277 ControllerBootstrapNodeDeployment:
1278 type: OS::Heat::StructuredDeployments
1280 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1281 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1283 ControllerSwiftDeployment:
1284 type: OS::Heat::StructuredDeployments
1286 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1287 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1289 ObjectStorageSwiftDeployment:
1290 type: OS::Heat::StructuredDeployments
1292 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1293 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1295 SwiftDevicesAndProxyConfig:
1296 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1298 controller_swift_devices: {get_attr: [Controller, swift_device]}
1299 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1300 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1302 ComputeCephDeployment:
1303 type: OS::Heat::StructuredDeployments
1305 config: {get_attr: [CephClusterConfig, config_id]}
1306 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1308 ControllerCephDeployment:
1309 type: OS::Heat::StructuredDeployments
1311 config: {get_attr: [CephClusterConfig, config_id]}
1312 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1314 CephStorageCephDeployment:
1315 type: OS::Heat::StructuredDeployments
1317 config: {get_attr: [CephClusterConfig, config_id]}
1318 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1321 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1323 ceph_storage_count: {get_param: CephStorageCount}
1324 ceph_fsid: {get_param: CephClusterFSID}
1325 ceph_mon_key: {get_param: CephMonKey}
1326 ceph_admin_key: {get_param: CephAdminKey}
1327 ceph_client_key: {get_param: CephClientKey}
1328 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1329 ceph_mon_names: {get_attr: [Controller, hostname]}
1330 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1332 ControllerClusterConfig:
1333 type: OS::Heat::StructuredConfig
1335 group: os-apply-config
1338 nodes: {get_attr: [Controller, corosync_node]}
1342 nodes: {get_attr: [Controller, hostname]}
1344 nodes: {get_attr: [Controller, corosync_node]}
1346 nodes: {get_attr: [Controller, corosync_node]}
1348 ControllerClusterDeployment:
1349 type: OS::Heat::StructuredDeployments
1351 config: {get_resource: ControllerClusterConfig}
1352 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1354 ControllerAllNodesDeployment:
1355 type: OS::Heat::StructuredDeployments
1357 config: {get_attr: [allNodesConfig, config_id]}
1358 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1360 ComputeAllNodesDeployment:
1361 type: OS::Heat::StructuredDeployments
1363 config: {get_attr: [allNodesConfig, config_id]}
1364 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1366 BlockStorageAllNodesDeployment:
1367 type: OS::Heat::StructuredDeployments
1369 config: {get_attr: [allNodesConfig, config_id]}
1370 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1372 ObjectStorageAllNodesDeployment:
1373 type: OS::Heat::StructuredDeployments
1375 config: {get_attr: [allNodesConfig, config_id]}
1376 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1378 CephStorageAllNodesDeployment:
1379 type: OS::Heat::StructuredDeployments
1381 config: {get_attr: [allNodesConfig, config_id]}
1382 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1384 # All Nodes Validations
1385 AllNodesValidationConfig:
1386 type: OS::TripleO::AllNodes::Validation
1391 - - {get_attr: [Controller, resource.0.external_ip_address]}
1392 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1393 - {get_attr: [Controller, resource.0.storage_ip_address]}
1394 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1395 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1397 ControllerAllNodesValidationDeployment:
1398 type: OS::Heat::StructuredDeployments
1399 depends_on: ControllerAllNodesDeployment
1401 config: {get_resource: AllNodesValidationConfig}
1402 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1404 ComputeAllNodesValidationDeployment:
1405 type: OS::Heat::StructuredDeployments
1406 depends_on: ComputeAllNodesDeployment
1408 config: {get_resource: AllNodesValidationConfig}
1409 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1411 BlockStorageAllNodesValidationDeployment:
1412 type: OS::Heat::StructuredDeployments
1413 depends_on: BlockStorageAllNodesDeployment
1415 config: {get_resource: AllNodesValidationConfig}
1416 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1418 ObjectStorageAllNodesValidationDeployment:
1419 type: OS::Heat::StructuredDeployments
1420 depends_on: ObjectStorageAllNodesDeployment
1422 config: {get_resource: AllNodesValidationConfig}
1423 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1425 CephStorageAllNodesValidationDeployment:
1426 type: OS::Heat::StructuredDeployments
1427 depends_on: CephStorageAllNodesDeployment
1429 config: {get_resource: AllNodesValidationConfig}
1430 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1432 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1433 # the nested template may configure each role differently (or not at all)
1434 AllNodesExtraConfig:
1435 type: OS::TripleO::AllNodesExtraConfig
1437 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1438 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1439 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1440 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1441 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1443 # Nested stack deployment runs after all other controller deployments
1444 ControllerNodesPostDeployment:
1445 type: OS::TripleO::ControllerPostDeployment
1446 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1448 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1449 NodeConfigIdentifiers:
1450 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1451 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1452 deployment_identifier: {get_param: DeployIdentifier}
1454 ComputeNodesPostDeployment:
1455 type: OS::TripleO::ComputePostDeployment
1456 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1458 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1459 NodeConfigIdentifiers:
1460 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1461 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1462 deployment_identifier: {get_param: DeployIdentifier}
1464 ObjectStorageNodesPostDeployment:
1465 type: OS::TripleO::ObjectStoragePostDeployment
1466 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1468 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1469 NodeConfigIdentifiers:
1470 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1471 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1472 deployment_identifier: {get_param: DeployIdentifier}
1474 BlockStorageNodesPostDeployment:
1475 type: OS::TripleO::BlockStoragePostDeployment
1476 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1478 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1479 NodeConfigIdentifiers:
1480 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1481 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1482 deployment_identifier: {get_param: DeployIdentifier}
1484 CephStorageNodesPostDeployment:
1485 type: OS::TripleO::CephStoragePostDeployment
1486 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1488 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1489 NodeConfigIdentifiers:
1490 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1491 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1492 deployment_identifier: {get_param: DeployIdentifier}
1496 description: URL for the Overcloud Keystone service
1497 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1499 description: Keystone Admin VIP endpoint
1500 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1502 description: Controller VIP for public API endpoints
1503 value: {get_attr: [VipMap, net_ip_map, external]}
1504 CeilometerInternalVip:
1505 description: VIP for Ceilometer API internal endpoint
1506 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1508 description: VIP for Cinder API internal endpoint
1509 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1511 description: VIP for Glance API internal endpoint
1512 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1514 description: VIP for Heat API internal endpoint
1515 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1516 KeystoneInternalVip:
1517 description: VIP for Keystone API internal endpoint
1518 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1520 description: VIP for Neutron API internal endpoint
1521 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1523 description: VIP for Nova API internal endpoint
1524 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1526 description: VIP for Swift Proxy internal endpoint
1527 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1530 The content that should be appended to your /etc/hosts if you want to get
1531 hostname-based access to the deployed nodes (useful for testing without
1533 value: {get_attr: [allNodesConfig, hosts_entries]}