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.
91 InternalApiVirtualFixedIPs:
94 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
95 [{'ip_address':'1.2.3.4'}]
99 description: Name of an existing Nova key pair to enable SSH access to the instances
102 - custom_constraint: nova.keypair
103 NeutronExternalNetworkBridge:
104 description: Name of bridge used for external network traffic.
107 NeutronBridgeMappings:
109 The OVS logical->physical bridge mappings to use. See the Neutron
110 documentation for details. Defaults to mapping br-ex - the external
111 bridge on hosts - to a physical name 'datacentre' which can be used
112 to create provider networks (and we use this for the default floating
113 network) - if changing this either use different post-install network
114 scripts or be sure to keep 'datacentre' as a mapping network name.
115 type: comma_delimited_list
116 default: "datacentre:br-ex"
117 NeutronControlPlaneID:
120 description: Neutron ID or name for ctlplane network.
121 NeutronEnableIsolatedMetadata:
123 description: If True, DHCP provide metadata route to VM.
125 NeutronEnableTunnelling:
131 Enable/disable the L2 population feature in the Neutron agents.
134 type: comma_delimited_list
135 default: 'datacentre'
137 If set, flat networks to configure in neutron plugins. Defaults to
138 'datacentre' to permit external network creation.
141 description: The tenant network type for Neutron.
142 type: comma_delimited_list
144 description: The password for the neutron service account, used by neutron agents.
147 NeutronPublicInterface:
149 description: What interface to bridge onto br-ex for network nodes.
151 NeutronPublicInterfaceTag:
154 VLAN tag for creating a public VLAN. The tag will be used to
155 create an access port on the exterior bridge for each control plane node,
156 and that port will be given the IP address returned by neutron from the
157 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
158 overcloud.yaml to include the deployment of VLAN ports to the control
161 NeutronComputeAgentMode:
163 description: Agent mode for the neutron-l3-agent on the compute hosts
167 description: Agent mode for the neutron-l3-agent on the controller hosts
171 description: Whether to configure Neutron Distributed Virtual Routers
173 NeutronMetadataProxySharedSecret:
174 description: Shared secret to prevent spoofing
180 The tunnel types for the Neutron tenant network.
181 type: comma_delimited_list
182 NeutronTunnelIdRanges:
184 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
185 of GRE tunnel IDs that are available for tenant network allocation
186 default: ["1:4094", ]
187 type: comma_delimited_list
190 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
191 of VXLAN VNI IDs that are available for tenant network allocation
192 default: ["1:4094", ]
193 type: comma_delimited_list
197 The core plugin for Neutron. The value should be the entrypoint to be loaded
198 from neutron.core_plugins namespace.
200 NeutronServicePlugins:
201 default: "router,qos"
203 Comma-separated list of service plugin entrypoints to be loaded from the
204 neutron.service_plugins namespace.
205 type: comma_delimited_list
207 default: "vxlan,vlan,flat,gre"
209 Comma-separated list of network type driver entrypoints to be loaded.
210 type: comma_delimited_list
211 NeutronMechanismDrivers:
212 default: 'openvswitch'
214 The mechanism drivers for the Neutron tenant network.
215 type: comma_delimited_list
216 NeutronPluginExtensions:
217 default: "qos,port_security"
219 Comma-separated list of extensions enabled for the Neutron plugin.
220 type: comma_delimited_list
221 NeutronAgentExtensions:
224 Comma-separated list of extensions enabled for the Neutron agents.
225 type: comma_delimited_list
226 NeutronAllowL3AgentFailover:
228 description: Allow automatic l3-agent failover
232 description: Whether to enable l3-agent HA
234 NeutronDhcpAgentsPerNetwork:
237 description: The number of neutron dhcp agents to schedule per network
239 description: The password for the nova service account, used by nova-api.
244 description: Comma-separated list of ntp servers
245 type: comma_delimited_list
248 description: Should MongoDb journaling be disabled
250 PublicVirtualFixedIPs:
253 Control the IP allocation for the PublicVirtualInterface port. E.g.
254 [{'ip_address':'1.2.3.4'}]
259 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
260 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
263 description: The username for RabbitMQ
267 description: The password for RabbitMQ
273 Rabbit client subscriber parameter to specify
274 an SSL connection to the RabbitMQ host.
278 description: Set rabbit subscriber port, change this if using SSL
280 # We need to set this as string because 'unlimited' is a valid setting
283 description: Configures RabbitMQ FD limit
285 SnmpdReadonlyUserName:
286 default: ro_snmp_user
287 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
289 SnmpdReadonlyUserPassword:
290 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
293 StorageVirtualFixedIPs:
296 Control the IP allocation for the StorageVirtualInterface port. E.g.
297 [{'ip_address':'1.2.3.4'}]
299 StorageMgmtVirtualFixedIPs:
302 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
303 [{'ip_address':'1.2.3.4'}]
307 description: The timezone to be set on nodes.
310 default: 'localdomain'
313 The DNS domain used for the hosts. This should match the dhcp_domain
314 configured in the Undercloud neutron. Defaults to localdomain.
318 Extra properties or metadata passed to Nova for the created nodes in
319 the overcloud. It's accessible via the Nova metadata API.
322 # Controller-specific params
324 description: The keystone auth secret.
327 CinderLVMLoopDeviceSize:
329 description: The size of the loopback file used by the cinder LVM driver.
331 CinderNfsMountOptions:
334 Mount options for NFS mounts used by Cinder NFS backend. Effective
335 when CinderEnableNfsBackend is true.
340 NFS servers used by Cinder NFS backend. Effective when
341 CinderEnableNfsBackend is true.
342 type: comma_delimited_list
344 description: The password for the cinder service account, used by cinder-api.
349 description: The iSCSI helper to use with cinder.
356 controllerExtraConfig:
359 Controller specific configuration to inject into the cluster. Same
360 structure as ExtraConfig.
364 default: overcloud-full
366 - custom_constraint: glance.image
367 OvercloudControlFlavor:
368 description: Flavor for control nodes to request when deploying.
372 - custom_constraint: nova.flavor
373 ControlVirtualInterface:
375 description: Interface where virtual ip will be assigned.
379 description: Whether to enable fencing in Pacemaker or not.
383 description: Whether to use Galera instead of regular MariaDB.
385 ControllerEnableCephStorage:
387 description: Whether to deploy Ceph Storage (OSD) on the Controller
389 ControllerEnableSwiftStorage:
391 description: Whether to enable Swift Storage on the Controller
393 ControllerSchedulerHints:
395 description: Optional scheduler hints to pass to nova
400 Additional configuration to inject into the cluster. The format required
401 may be implementation specific, e.g puppet hieradata. Any role specific
402 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
407 Pacemaker fencing configuration. The JSON should have
408 the following structure:
412 "agent": "AGENT_NAME",
413 "host_mac": "HOST_MAC_ADDRESS",
414 "params": {"PARAM_NAME": "PARAM_VALUE"}
422 "agent": "fence_xvm",
423 "host_mac": "52:54:00:aa:bb:cc",
425 "multicast_address": "225.0.0.12",
426 "port": "baremetal_0",
428 "manage_key_file": true,
429 "key_file": "/etc/fence_xvm.key",
430 "key_file_password": "abcdef"
437 description: The filepath of the file to use for logging messages from Glance.
440 GlanceNotifierStrategy:
441 description: Strategy to use for Glance notification queue
445 description: The password for the glance service account, used by the glance services.
450 description: The short name of the Glance backend to use. Should be one
451 of swift, rbd or file
454 - allowed_values: ['swift', 'file', 'rbd']
456 description: The password for the Heat service account, used by the Heat services.
459 HeatStackDomainAdminPassword:
460 description: Password for heat_domain_admin user.
463 InstanceNameTemplate:
464 default: 'instance-%08x'
465 description: Template string to be used to generate instance names
467 KeystoneCACertificate:
469 description: Keystone self-signed certificate authority certificate.
471 KeystoneSigningCertificate:
473 description: Keystone certificate for verifying token validity.
477 description: Keystone key for signing tokens.
480 KeystoneSSLCertificate:
482 description: Keystone certificate for verifying token validity.
484 KeystoneSSLCertificateKey:
486 description: Keystone key for signing tokens.
489 KeystoneNotificationDriver:
490 description: Comma-separated list of Oslo notification drivers used by Keystone
491 default: ['messaging']
492 type: comma_delimited_list
493 KeystoneNotificationFormat:
494 description: The Keystone notification format
498 - allowed_values: [ 'basic', 'cadf' ]
501 description: Whether to manage IPtables rules.
505 description: Whether IPtables rules should be purged before setting up the ones.
507 MysqlInnodbBufferPoolSize:
509 Specifies the size of the buffer pool in megabytes. Setting to
510 zero should be interpreted as "no value" and will defer to the
515 description: Configures MySQL max_connections config setting
518 NeutronDnsmasqOptions:
519 default: 'dhcp-option-force=26,1400'
520 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
522 NeutronPublicInterfaceDefaultRoute:
524 description: A custom default route for the NeutronPublicInterface.
526 NeutronPublicInterfaceIP:
528 description: A custom IP address to put onto the NeutronPublicInterface.
530 NeutronPublicInterfaceRawDevice:
532 description: If set, the public interface is a vlan with this device as the raw device.
534 PublicVirtualInterface:
537 Specifies the interface where the public-facing virtual ip will be assigned.
538 This should be int_public when a VLAN is being used.
541 description: A random string to be used as a salt when hashing to determine mappings in the ring.
545 description: The password for the swift service account, used by the swift proxy services.
550 description: Value of mount_check in Swift account/container/object -server.conf
555 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
558 description: Partition Power to use when building Swift rings
563 description: How many replicas to use in the swift rings.
565 description: The password for the sahara service account.
569 # Compute-specific params
570 CeilometerComputeAgent:
571 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
575 - allowed_values: ['', Present]
579 HypervisorNeutronPhysicalBridge:
582 An OVS bridge to create on each hypervisor. This defaults to br-ex the
583 same as the control plane nodes, as we have a uniform configuration of
584 the openvswitch agent. Typically should not need to be changed.
586 HypervisorNeutronPublicInterface:
588 description: What interface to add to the HypervisorNeutronPhysicalBridge.
590 NeutronNetworkVLANRanges:
591 default: 'datacentre:1:1000'
593 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
594 Neutron documentation for permitted values. Defaults to permitting any
595 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
596 type: comma_delimited_list
599 default: libvirt.LibvirtDriver
600 NovaComputeExtraConfig:
603 NovaCompute specific configuration to inject into the cluster. Same
604 structure as ExtraConfig.
606 NovaComputeLibvirtType:
609 NovaComputeLibvirtVifDriver:
611 description: Libvirt VIF driver configuration for the network
613 NovaComputeSchedulerHints:
615 description: Optional scheduler hints to pass to nova
617 NovaEnableRbdBackend:
619 description: Whether to enable or not the Rbd backend for Nova
623 default: overcloud-full
625 - custom_constraint: glance.image
628 description: Name of integration bridge used by Open vSwitch
630 NovaSecurityGroupAPI:
632 description: The full class name of the security API class
634 OvercloudComputeFlavor:
635 description: Use this flavor
639 - custom_constraint: nova.flavor
642 NeutronTenantNetwork: tenant
643 CeilometerApiNetwork: internal_api
644 MongoDbNetwork: internal_api
645 CinderApiNetwork: internal_api
646 CinderIscsiNetwork: storage
647 GlanceApiNetwork: storage
648 GlanceRegistryNetwork: internal_api
649 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
650 KeystonePublicApiNetwork: internal_api
651 NeutronApiNetwork: internal_api
652 HeatApiNetwork: internal_api
653 NovaApiNetwork: internal_api
654 NovaMetadataNetwork: internal_api
655 NovaVncProxyNetwork: internal_api
656 SwiftMgmtNetwork: storage_mgmt
657 SwiftProxyNetwork: storage
658 SaharaApiNetwork: internal_api
659 HorizonNetwork: internal_api
660 MemcachedNetwork: internal_api
661 RabbitMqNetwork: internal_api
662 RedisNetwork: internal_api
663 MysqlNetwork: internal_api
664 CephClusterNetwork: storage_mgmt
665 CephPublicNetwork: storage
666 ControllerHostnameResolveNetwork: internal_api
667 ComputeHostnameResolveNetwork: internal_api
668 BlockStorageHostnameResolveNetwork: internal_api
669 ObjectStorageHostnameResolveNetwork: internal_api
670 CephStorageHostnameResolveNetwork: storage
671 description: Mapping of service_name -> network name. Typically set
672 via parameter_defaults in the resource registry.
675 # Block storage specific parameters
680 default: overcloud-full
682 OvercloudBlockStorageFlavor:
683 description: Flavor for block storage nodes to request when deploying.
687 - custom_constraint: nova.flavor
688 BlockStorageExtraConfig:
691 BlockStorage specific configuration to inject into the cluster. Same
692 structure as ExtraConfig.
694 BlockStorageSchedulerHints:
696 description: Optional scheduler hints to pass to nova
700 # Object storage specific parameters
704 OvercloudSwiftStorageFlavor:
705 description: Flavor for Swift storage nodes to request when deploying.
709 - custom_constraint: nova.flavor
711 default: overcloud-full
713 ObjectStorageExtraConfig:
716 ObjectStorage specific configuration to inject into the cluster. Same
717 structure as ExtraConfig.
719 ObjectStorageSchedulerHints:
721 description: Optional scheduler hints to pass to nova
724 # Ceph storage specific parameters
729 default: overcloud-full
731 OvercloudCephStorageFlavor:
733 description: Flavor for Ceph storage nodes to request when deploying.
736 - custom_constraint: nova.flavor
737 CephStorageExtraConfig:
740 CephStorage specific configuration to inject into the cluster. Same
741 structure as ExtraConfig.
743 CephStorageSchedulerHints:
745 description: Optional scheduler hints to pass to nova
749 # Hostname format for each role
750 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
751 # and %stackname% is replaced with OS::stack_name in the template below.
752 # If you want to use the heat generated names, pass '' (empty string).
753 ControllerHostnameFormat:
755 description: Format for Controller node hostnames
756 default: '%stackname%-controller-%index%'
757 ComputeHostnameFormat:
759 description: Format for Compute node hostnames
760 default: '%stackname%-novacompute-%index%'
761 BlockStorageHostnameFormat:
763 description: Format for BlockStorage node hostnames
764 default: '%stackname%-blockstorage-%index%'
765 ObjectStorageHostnameFormat:
767 description: Format for SwiftStorage node hostnames
768 default: '%stackname%-objectstorage-%index%'
769 CephStorageHostnameFormat:
771 description: Format for CephStorage node hostnames
772 default: '%stackname%-cephstorage-%index%'
774 # Identifiers to trigger tasks on nodes
779 Setting to a previously unused value during stack-update will trigger
780 package update on all nodes
785 Setting this to a unique value will re-run any deployment tasks which
786 perform configuration on a Heat stack-update.
788 # If you want to remove a specific node from a resource group, you can pass
789 # the node name or id as a <Group>RemovalPolicies parameter, for example:
790 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
791 ControllerRemovalPolicies:
795 List of resources to be removed from ControllerResourceGroup when
796 doing an update which requires removal of specific resources.
797 ComputeRemovalPolicies:
801 List of resources to be removed from ComputeResourceGroup when
802 doing an update which requires removal of specific resources.
803 BlockStorageRemovalPolicies:
807 List of resources to be removed from BlockStorageResourceGroup when
808 doing an update which requires removal of specific resources.
809 ObjectStorageRemovalPolicies:
813 List of resources to be removed from ObjectStorageResourceGroup when
814 doing an update which requires removal of specific resources.
815 CephStorageRemovalPolicies:
819 List of resources to be removed from CephStorageResourceGroup when
820 doing an update which requires removal of specific resources.
825 HeatAuthEncryptionKey:
826 type: OS::Heat::RandomString
829 type: OS::Heat::RandomString
834 type: OS::Heat::RandomString
839 type: OS::TripleO::EndpointMap
841 CloudName: {get_param: CloudName}
842 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
843 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
844 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
845 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
846 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
847 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
848 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
849 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
850 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
851 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
852 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
853 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
854 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
857 type: OS::Heat::ResourceGroup
860 count: {get_param: ControllerCount}
861 removal_policies: {get_param: ControllerRemovalPolicies}
863 type: OS::TripleO::Controller
865 AdminPassword: {get_param: AdminPassword}
866 AdminToken: {get_param: AdminToken}
867 CeilometerBackend: {get_param: CeilometerBackend}
868 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
869 CeilometerPassword: {get_param: CeilometerPassword}
870 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
871 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
872 CinderNfsServers: {get_param: CinderNfsServers}
873 CinderPassword: {get_param: CinderPassword}
874 CinderISCSIHelper: {get_param: CinderISCSIHelper}
875 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
876 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
877 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
878 CloudDomain: {get_param: CloudDomain}
879 ControlVirtualInterface: {get_param: ControlVirtualInterface}
880 ControllerExtraConfig: {get_param: controllerExtraConfig}
881 Debug: {get_param: Debug}
882 EnableFencing: {get_param: EnableFencing}
883 ManageFirewall: {get_param: ManageFirewall}
884 PurgeFirewallRules: {get_param: PurgeFirewallRules}
885 EnableGalera: {get_param: EnableGalera}
886 EnableCephStorage: {get_param: ControllerEnableCephStorage}
887 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
888 ExtraConfig: {get_param: ExtraConfig}
889 FencingConfig: {get_param: FencingConfig}
890 Flavor: {get_param: OvercloudControlFlavor}
891 GlancePassword: {get_param: GlancePassword}
892 GlanceBackend: {get_param: GlanceBackend}
893 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
894 GlanceLogFile: {get_param: GlanceLogFile}
895 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
896 HeatPassword: {get_param: HeatPassword}
897 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
898 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
899 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
900 HorizonSecret: {get_resource: HorizonSecret}
901 Image: {get_param: controllerImage}
902 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
903 InstanceNameTemplate: {get_param: InstanceNameTemplate}
904 KeyName: {get_param: KeyName}
905 KeystoneCACertificate: {get_param: KeystoneCACertificate}
906 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
907 KeystoneSigningKey: {get_param: KeystoneSigningKey}
908 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
909 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
910 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
911 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
912 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
913 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
914 MysqlMaxConnections: {get_param: MysqlMaxConnections}
915 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
916 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
917 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
918 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
919 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
920 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
921 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
922 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
923 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
924 NeutronPublicInterface: {get_param: NeutronPublicInterface}
925 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
926 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
927 NeutronPassword: {get_param: NeutronPassword}
928 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
929 NeutronDVR: {get_param: NeutronDVR}
930 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
931 NeutronAgentMode: {get_param: NeutronAgentMode}
932 NeutronCorePlugin: {get_param: NeutronCorePlugin}
933 NeutronServicePlugins: {get_param: NeutronServicePlugins}
934 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
935 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
936 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
937 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
938 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
939 NeutronL3HA: {get_param: NeutronL3HA}
940 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
941 NeutronNetworkType: {get_param: NeutronNetworkType}
942 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
943 NovaPassword: {get_param: NovaPassword}
944 NtpServer: {get_param: NtpServer}
945 MongoDbNoJournal: {get_param: MongoDbNoJournal}
946 PcsdPassword: {get_resource: PcsdPassword}
947 PublicVirtualInterface: {get_param: PublicVirtualInterface}
948 RabbitPassword: {get_param: RabbitPassword}
949 RabbitUserName: {get_param: RabbitUserName}
950 RabbitCookie: {get_attr: [RabbitCookie, value]}
951 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
952 RabbitClientPort: {get_param: RabbitClientPort}
953 RabbitFDLimit: {get_param: RabbitFDLimit}
954 SaharaPassword: {get_param: SaharaPassword}
955 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
956 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
957 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
958 SwiftHashSuffix: {get_param: SwiftHashSuffix}
959 SwiftMountCheck: {get_param: SwiftMountCheck}
960 SwiftMinPartHours: {get_param: SwiftMinPartHours}
961 SwiftPartPower: {get_param: SwiftPartPower}
962 SwiftPassword: {get_param: SwiftPassword}
963 SwiftReplicas: { get_param: SwiftReplicas}
964 TimeZone: {get_param: TimeZone}
965 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
966 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
967 ServiceNetMap: {get_param: ServiceNetMap}
968 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
969 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
970 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
971 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
972 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
973 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
974 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
975 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
976 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
977 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
978 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
979 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
980 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
981 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
982 UpdateIdentifier: {get_param: UpdateIdentifier}
985 template: {get_param: ControllerHostnameFormat}
987 '%stackname%': {get_param: 'OS::stack_name'}
989 ServerMetadata: {get_param: ServerMetadata}
990 SchedulerHints: {get_param: ControllerSchedulerHints}
993 type: OS::Heat::ResourceGroup
996 count: {get_param: ComputeCount}
997 removal_policies: {get_param: ComputeRemovalPolicies}
999 type: OS::TripleO::Compute
1001 AdminPassword: {get_param: AdminPassword}
1002 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1003 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1004 CeilometerPassword: {get_param: CeilometerPassword}
1005 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1006 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1007 Debug: {get_param: Debug}
1008 ExtraConfig: {get_param: ExtraConfig}
1009 Flavor: {get_param: OvercloudComputeFlavor}
1010 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1011 Image: {get_param: NovaImage}
1012 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1013 KeyName: {get_param: KeyName}
1014 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1015 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1016 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1017 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1018 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1019 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1020 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1021 NeutronNetworkType: {get_param: NeutronNetworkType}
1022 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1023 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1024 NeutronPassword: {get_param: NeutronPassword}
1025 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1026 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1027 NeutronDVR: {get_param: NeutronDVR}
1028 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1029 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1030 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1031 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1032 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1033 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1034 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1035 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1036 # L3 HA and Failover is not relevant for Computes, should be removed
1037 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1038 NeutronL3HA: {get_param: NeutronL3HA}
1039 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1040 NovaComputeDriver: {get_param: NovaComputeDriver}
1041 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1042 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1043 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1044 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1045 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1046 NovaPassword: {get_param: NovaPassword}
1047 NovaOVSBridge: {get_param: NovaOVSBridge}
1048 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1049 NtpServer: {get_param: NtpServer}
1050 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1051 RabbitPassword: {get_param: RabbitPassword}
1052 RabbitUserName: {get_param: RabbitUserName}
1053 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1054 RabbitClientPort: {get_param: RabbitClientPort}
1055 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1056 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1057 ServiceNetMap: {get_param: ServiceNetMap}
1058 TimeZone: {get_param: TimeZone}
1059 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1060 UpdateIdentifier: {get_param: UpdateIdentifier}
1063 template: {get_param: ComputeHostnameFormat}
1065 '%stackname%': {get_param: 'OS::stack_name'}
1066 CloudDomain: {get_param: CloudDomain}
1067 ServerMetadata: {get_param: ServerMetadata}
1068 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1071 type: OS::Heat::ResourceGroup
1072 depends_on: Networks
1074 count: {get_param: BlockStorageCount}
1075 removal_policies: {get_param: BlockStorageRemovalPolicies}
1077 type: OS::TripleO::BlockStorage
1079 Debug: {get_param: Debug}
1080 Image: {get_param: BlockStorageImage}
1081 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1082 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1083 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1084 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1085 CinderPassword: {get_param: CinderPassword}
1086 KeyName: {get_param: KeyName}
1087 Flavor: {get_param: OvercloudBlockStorageFlavor}
1088 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1089 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1090 RabbitPassword: {get_param: RabbitPassword}
1091 RabbitUserName: {get_param: RabbitUserName}
1092 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1093 RabbitClientPort: {get_param: RabbitClientPort}
1094 TimeZone: {get_param: TimeZone}
1095 NtpServer: {get_param: NtpServer}
1096 UpdateIdentifier: {get_param: UpdateIdentifier}
1099 template: {get_param: BlockStorageHostnameFormat}
1101 '%stackname%': {get_param: 'OS::stack_name'}
1102 ServiceNetMap: {get_param: ServiceNetMap}
1103 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1104 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1105 ExtraConfig: {get_param: ExtraConfig}
1106 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1107 CloudDomain: {get_param: CloudDomain}
1108 ServerMetadata: {get_param: ServerMetadata}
1109 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1112 type: OS::Heat::ResourceGroup
1113 depends_on: Networks
1115 count: {get_param: ObjectStorageCount}
1116 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1118 type: OS::TripleO::ObjectStorage
1120 KeyName: {get_param: KeyName}
1121 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1122 HashSuffix: {get_param: SwiftHashSuffix}
1123 MountCheck: {get_param: SwiftMountCheck}
1124 MinPartHours: {get_param: SwiftMinPartHours}
1125 PartPower: {get_param: SwiftPartPower}
1126 Image: {get_param: SwiftStorageImage}
1127 Replicas: { get_param: SwiftReplicas}
1128 TimeZone: {get_param: TimeZone}
1129 NtpServer: {get_param: NtpServer}
1130 UpdateIdentifier: {get_param: UpdateIdentifier}
1131 ServiceNetMap: {get_param: ServiceNetMap}
1134 template: {get_param: ObjectStorageHostnameFormat}
1136 '%stackname%': {get_param: 'OS::stack_name'}
1137 ExtraConfig: {get_param: ExtraConfig}
1138 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1139 CloudDomain: {get_param: CloudDomain}
1140 ServerMetadata: {get_param: ServerMetadata}
1141 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1144 type: OS::Heat::ResourceGroup
1145 depends_on: Networks
1147 count: {get_param: CephStorageCount}
1148 removal_policies: {get_param: CephStorageRemovalPolicies}
1150 type: OS::TripleO::CephStorage
1152 Image: {get_param: CephStorageImage}
1153 KeyName: {get_param: KeyName}
1154 Flavor: {get_param: OvercloudCephStorageFlavor}
1155 NtpServer: {get_param: NtpServer}
1156 ServiceNetMap: {get_param: ServiceNetMap}
1157 TimeZone: {get_param: TimeZone}
1158 UpdateIdentifier: {get_param: UpdateIdentifier}
1161 template: {get_param: CephStorageHostnameFormat}
1163 '%stackname%': {get_param: 'OS::stack_name'}
1164 ExtraConfig: {get_param: ExtraConfig}
1165 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1166 CloudDomain: {get_param: CloudDomain}
1167 ServerMetadata: {get_param: ServerMetadata}
1168 SchedulerHints: {get_param: CephStorageSchedulerHints}
1170 ControllerIpListMap:
1171 type: OS::TripleO::Network::Ports::NetIpListMap
1173 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1174 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1175 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1176 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1177 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1178 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1179 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1182 type: OS::TripleO::AllNodes::SoftwareConfig
1184 compute_hosts: {get_attr: [Compute, hosts_entry]}
1185 controller_hosts: {get_attr: [Controller, hosts_entry]}
1186 controller_ips: {get_attr: [Controller, ip_address]}
1187 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1188 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1189 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1190 controller_names: {get_attr: [Controller, hostname]}
1191 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1192 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1193 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1194 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1195 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1196 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1197 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1198 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1199 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1200 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1201 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1202 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1203 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1204 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1205 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1206 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1207 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1208 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1209 DeployIdentifier: {get_param: DeployIdentifier}
1210 UpdateIdentifier: {get_param: UpdateIdentifier}
1213 type: OS::Heat::RandomString
1217 MysqlClusterUniquePart:
1218 type: OS::Heat::RandomString
1223 type: OS::Heat::RandomString
1226 salt: {get_param: RabbitCookieSalt}
1228 # creates the network architecture
1230 type: OS::TripleO::Network
1233 type: OS::Neutron::Port
1234 depends_on: Networks
1236 name: control_virtual_ip
1237 network: {get_param: NeutronControlPlaneID}
1238 fixed_ips: {get_param: ControlFixedIPs}
1239 replacement_policy: AUTO
1242 depends_on: Networks
1243 type: OS::TripleO::Network::Ports::RedisVipPort
1245 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1246 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1247 PortName: redis_virtual_ip
1248 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1251 # The public VIP is on the External net, falls back to ctlplane
1253 depends_on: Networks
1254 type: OS::TripleO::Network::Ports::ExternalVipPort
1256 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1257 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1258 PortName: public_virtual_ip
1259 FixedIPs: {get_param: PublicVirtualFixedIPs}
1261 InternalApiVirtualIP:
1262 depends_on: Networks
1263 type: OS::TripleO::Network::Ports::InternalApiVipPort
1265 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1266 PortName: internal_api_virtual_ip
1267 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1270 depends_on: Networks
1271 type: OS::TripleO::Network::Ports::StorageVipPort
1273 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1274 PortName: storage_virtual_ip
1275 FixedIPs: {get_param: StorageVirtualFixedIPs}
1277 StorageMgmtVirtualIP:
1278 depends_on: Networks
1279 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1281 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1282 PortName: storage_management_virtual_ip
1283 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1286 type: OS::TripleO::Network::Ports::NetVipMap
1288 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1289 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1290 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1291 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1292 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1293 # No tenant or management VIP required
1296 type: OS::TripleO::VipConfig
1299 type: OS::Heat::StructuredDeployments
1302 config: {get_resource: VipConfig}
1303 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1305 # service VIP mappings
1306 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1307 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1308 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1309 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1310 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1311 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1312 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1313 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1314 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1315 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1316 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1317 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1318 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1319 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1320 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1321 # direct configuration of Virtual IPs for each network
1322 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1323 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1324 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1325 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1326 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1327 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1329 ControllerBootstrapNodeConfig:
1330 type: OS::TripleO::BootstrapNode::SoftwareConfig
1332 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1333 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1335 ControllerBootstrapNodeDeployment:
1336 type: OS::Heat::StructuredDeployments
1338 name: ControllerBootstrapNodeDeployment
1339 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1340 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1342 ControllerSwiftDeployment:
1343 type: OS::Heat::StructuredDeployments
1345 name: ControllerSwiftDeployment
1346 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1347 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1349 ObjectStorageSwiftDeployment:
1350 type: OS::Heat::StructuredDeployments
1352 name: ObjectStorageSwiftDeployment
1353 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1354 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1356 SwiftDevicesAndProxyConfig:
1357 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1359 controller_swift_devices: {get_attr: [Controller, swift_device]}
1360 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1361 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1363 ComputeCephDeployment:
1364 type: OS::Heat::StructuredDeployments
1366 name: ComputeCephDeployment
1367 config: {get_attr: [CephClusterConfig, config_id]}
1368 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1370 ControllerCephDeployment:
1371 type: OS::Heat::StructuredDeployments
1373 name: ControllerCephDeployment
1374 config: {get_attr: [CephClusterConfig, config_id]}
1375 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1377 CephStorageCephDeployment:
1378 type: OS::Heat::StructuredDeployments
1380 name: CephStorageCephDeployment
1381 config: {get_attr: [CephClusterConfig, config_id]}
1382 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1385 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1387 ceph_storage_count: {get_param: CephStorageCount}
1388 ceph_fsid: {get_param: CephClusterFSID}
1389 ceph_mon_key: {get_param: CephMonKey}
1390 ceph_admin_key: {get_param: CephAdminKey}
1391 ceph_client_key: {get_param: CephClientKey}
1392 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1393 ceph_mon_names: {get_attr: [Controller, hostname]}
1394 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1396 ControllerClusterConfig:
1397 type: OS::Heat::StructuredConfig
1399 group: os-apply-config
1402 nodes: {get_attr: [Controller, corosync_node]}
1406 nodes: {get_attr: [Controller, hostname]}
1408 nodes: {get_attr: [Controller, corosync_node]}
1410 nodes: {get_attr: [Controller, corosync_node]}
1412 ControllerClusterDeployment:
1413 type: OS::Heat::StructuredDeployments
1415 name: ControllerClusterDeployment
1416 config: {get_resource: ControllerClusterConfig}
1417 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1419 ControllerAllNodesDeployment:
1420 type: OS::Heat::StructuredDeployments
1422 name: ControllerAllNodesDeployment
1423 config: {get_attr: [allNodesConfig, config_id]}
1424 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1426 ComputeAllNodesDeployment:
1427 type: OS::Heat::StructuredDeployments
1429 name: ComputeAllNodesDeployment
1430 config: {get_attr: [allNodesConfig, config_id]}
1431 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1433 BlockStorageAllNodesDeployment:
1434 type: OS::Heat::StructuredDeployments
1436 name: BlockStorageAllNodesDeployment
1437 config: {get_attr: [allNodesConfig, config_id]}
1438 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1440 ObjectStorageAllNodesDeployment:
1441 type: OS::Heat::StructuredDeployments
1443 name: ObjectStorageAllNodesDeployment
1444 config: {get_attr: [allNodesConfig, config_id]}
1445 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1447 CephStorageAllNodesDeployment:
1448 type: OS::Heat::StructuredDeployments
1450 name: CephStorageAllNodesDeployment
1451 config: {get_attr: [allNodesConfig, config_id]}
1452 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1454 # All Nodes Validations
1455 AllNodesValidationConfig:
1456 type: OS::TripleO::AllNodes::Validation
1461 - - {get_attr: [Controller, resource.0.external_ip_address]}
1462 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1463 - {get_attr: [Controller, resource.0.storage_ip_address]}
1464 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1465 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1467 ControllerAllNodesValidationDeployment:
1468 type: OS::Heat::StructuredDeployments
1469 depends_on: ControllerAllNodesDeployment
1471 name: ControllerAllNodesValidationDeployment
1472 config: {get_resource: AllNodesValidationConfig}
1473 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1475 ComputeAllNodesValidationDeployment:
1476 type: OS::Heat::StructuredDeployments
1477 depends_on: ComputeAllNodesDeployment
1479 name: ComputeAllNodesValidationDeployment
1480 config: {get_resource: AllNodesValidationConfig}
1481 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1483 BlockStorageAllNodesValidationDeployment:
1484 type: OS::Heat::StructuredDeployments
1485 depends_on: BlockStorageAllNodesDeployment
1487 name: BlockStorageAllNodesValidationDeployment
1488 config: {get_resource: AllNodesValidationConfig}
1489 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1491 ObjectStorageAllNodesValidationDeployment:
1492 type: OS::Heat::StructuredDeployments
1493 depends_on: ObjectStorageAllNodesDeployment
1495 name: ObjectStorageAllNodesValidationDeployment
1496 config: {get_resource: AllNodesValidationConfig}
1497 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1499 CephStorageAllNodesValidationDeployment:
1500 type: OS::Heat::StructuredDeployments
1501 depends_on: CephStorageAllNodesDeployment
1503 name: CephStorageAllNodesValidationDeployment
1504 config: {get_resource: AllNodesValidationConfig}
1505 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1507 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1508 # the nested template may configure each role differently (or not at all)
1509 AllNodesExtraConfig:
1510 type: OS::TripleO::AllNodesExtraConfig
1512 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1513 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1514 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1515 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1516 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1518 # Nested stack deployment runs after all other controller deployments
1519 ControllerNodesPostDeployment:
1520 type: OS::TripleO::ControllerPostDeployment
1521 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1523 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1524 NodeConfigIdentifiers:
1525 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1526 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1527 deployment_identifier: {get_param: DeployIdentifier}
1529 ComputeNodesPostDeployment:
1530 type: OS::TripleO::ComputePostDeployment
1531 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1533 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1534 NodeConfigIdentifiers:
1535 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1536 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1537 deployment_identifier: {get_param: DeployIdentifier}
1539 ObjectStorageNodesPostDeployment:
1540 type: OS::TripleO::ObjectStoragePostDeployment
1541 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1543 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1544 NodeConfigIdentifiers:
1545 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1546 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1547 deployment_identifier: {get_param: DeployIdentifier}
1549 BlockStorageNodesPostDeployment:
1550 type: OS::TripleO::BlockStoragePostDeployment
1551 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1553 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1554 NodeConfigIdentifiers:
1555 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1556 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1557 deployment_identifier: {get_param: DeployIdentifier}
1559 CephStorageNodesPostDeployment:
1560 type: OS::TripleO::CephStoragePostDeployment
1561 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1563 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1564 NodeConfigIdentifiers:
1565 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1566 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1567 deployment_identifier: {get_param: DeployIdentifier}
1571 description: URL for the Overcloud Keystone service
1572 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1574 description: Keystone Admin VIP endpoint
1575 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1577 description: Controller VIP for public API endpoints
1578 value: {get_attr: [VipMap, net_ip_map, external]}
1579 CeilometerInternalVip:
1580 description: VIP for Ceilometer API internal endpoint
1581 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1583 description: VIP for Cinder API internal endpoint
1584 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1586 description: VIP for Glance API internal endpoint
1587 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1589 description: VIP for Heat API internal endpoint
1590 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1591 KeystoneInternalVip:
1592 description: VIP for Keystone API internal endpoint
1593 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1595 description: VIP for Neutron API internal endpoint
1596 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1598 description: VIP for Nova API internal endpoint
1599 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1601 description: VIP for Sahara API internal endpoint
1602 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1604 description: VIP for Swift Proxy internal endpoint
1605 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1608 The content that should be appended to your /etc/hosts if you want to get
1609 hostname-based access to the deployed nodes (useful for testing without
1611 value: {get_attr: [allNodesConfig, hosts_entries]}