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
173 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
174 be at least 50 bytes smaller than the MTU on the physical network. This
175 value will be used to set the MTU on the virtual Ethernet device.
176 This value will be used to construct the NeutronDnsmasqOptions, since that
177 will determine the MTU that is assigned to the VM host through DHCP.
183 The tunnel types for the Neutron tenant network.
184 type: comma_delimited_list
185 NeutronTunnelIdRanges:
187 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
188 of GRE tunnel IDs that are available for tenant network allocation
189 default: ["1:4094", ]
190 type: comma_delimited_list
193 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
194 of VXLAN VNI IDs that are available for tenant network allocation
195 default: ["1:4094", ]
196 type: comma_delimited_list
200 The core plugin for Neutron. The value should be the entrypoint to be loaded
201 from neutron.core_plugins namespace.
203 NeutronServicePlugins:
204 default: "router,qos"
206 Comma-separated list of service plugin entrypoints to be loaded from the
207 neutron.service_plugins namespace.
208 type: comma_delimited_list
210 default: "vxlan,vlan,flat,gre"
212 Comma-separated list of network type driver entrypoints to be loaded.
213 type: comma_delimited_list
214 NeutronMechanismDrivers:
215 default: 'openvswitch'
217 The mechanism drivers for the Neutron tenant network.
218 type: comma_delimited_list
219 NeutronPluginExtensions:
222 Comma-separated list of extensions enabled for the Neutron plugin.
223 type: comma_delimited_list
224 NeutronAgentExtensions:
227 Comma-separated list of extensions enabled for the Neutron agents.
228 type: comma_delimited_list
229 NeutronAllowL3AgentFailover:
231 description: Allow automatic l3-agent failover
235 description: Whether to enable l3-agent HA
237 NeutronDhcpAgentsPerNetwork:
240 description: The number of neutron dhcp agents to schedule per network
242 description: The password for the nova service account, used by nova-api.
247 description: Comma-separated list of ntp servers
248 type: comma_delimited_list
251 description: Should MongoDb journaling be disabled
253 PublicVirtualFixedIPs:
256 Control the IP allocation for the PublicVirtualInterface port. E.g.
257 [{'ip_address':'1.2.3.4'}]
262 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
263 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
266 description: The username for RabbitMQ
270 description: The password for RabbitMQ
276 Rabbit client subscriber parameter to specify
277 an SSL connection to the RabbitMQ host.
281 description: Set rabbit subscriber port, change this if using SSL
283 # We need to set this as string because 'unlimited' is a valid setting
286 description: Configures RabbitMQ FD limit
288 SnmpdReadonlyUserName:
289 default: ro_snmp_user
290 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
292 SnmpdReadonlyUserPassword:
293 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
298 description: The timezone to be set on nodes.
301 default: 'localdomain'
304 The DNS domain used for the hosts. This should match the dhcp_domain
305 configured in the Undercloud neutron. Defaults to localdomain.
309 Extra properties or metadata passed to Nova for the created nodes in
310 the overcloud. It's accessible via the Nova metadata API.
313 # Controller-specific params
315 description: The keystone auth secret.
318 CinderLVMLoopDeviceSize:
320 description: The size of the loopback file used by the cinder LVM driver.
322 CinderNfsMountOptions:
325 Mount options for NFS mounts used by Cinder NFS backend. Effective
326 when CinderEnableNfsBackend is true.
331 NFS servers used by Cinder NFS backend. Effective when
332 CinderEnableNfsBackend is true.
333 type: comma_delimited_list
335 description: The password for the cinder service account, used by cinder-api.
340 description: The iSCSI helper to use with cinder.
347 controllerExtraConfig:
350 Controller specific configuration to inject into the cluster. Same
351 structure as ExtraConfig.
355 default: overcloud-full
357 - custom_constraint: glance.image
358 OvercloudControlFlavor:
359 description: Flavor for control nodes to request when deploying.
363 - custom_constraint: nova.flavor
364 ControlVirtualInterface:
366 description: Interface where virtual ip will be assigned.
370 description: Whether to enable fencing in Pacemaker or not.
374 description: Whether to use Galera instead of regular MariaDB.
376 ControllerEnableCephStorage:
378 description: Whether to deploy Ceph Storage (OSD) on the Controller
380 ControllerEnableSwiftStorage:
382 description: Whether to enable Swift Storage on the Controller
384 ControllerSchedulerHints:
386 description: Optional scheduler hints to pass to nova
391 Additional configuration to inject into the cluster. The format required
392 may be implementation specific, e.g puppet hieradata. Any role specific
393 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
398 Pacemaker fencing configuration. The JSON should have
399 the following structure:
403 "agent": "AGENT_NAME",
404 "host_mac": "HOST_MAC_ADDRESS",
405 "params": {"PARAM_NAME": "PARAM_VALUE"}
413 "agent": "fence_xvm",
414 "host_mac": "52:54:00:aa:bb:cc",
416 "multicast_address": "225.0.0.12",
417 "port": "baremetal_0",
419 "manage_key_file": true,
420 "key_file": "/etc/fence_xvm.key",
421 "key_file_password": "abcdef"
428 description: The filepath of the file to use for logging messages from Glance.
431 GlanceNotifierStrategy:
432 description: Strategy to use for Glance notification queue
436 description: The password for the glance service account, used by the glance services.
441 description: The short name of the Glance backend to use. Should be one
442 of swift, rbd or file
445 - allowed_values: ['swift', 'file', 'rbd']
447 description: The password for the Heat service account, used by the Heat services.
450 HeatStackDomainAdminPassword:
451 description: Password for heat_domain_admin user.
454 InstanceNameTemplate:
455 default: 'instance-%08x'
456 description: Template string to be used to generate instance names
458 KeystoneCACertificate:
460 description: Keystone self-signed certificate authority certificate.
462 KeystoneSigningCertificate:
464 description: Keystone certificate for verifying token validity.
468 description: Keystone key for signing tokens.
471 KeystoneSSLCertificate:
473 description: Keystone certificate for verifying token validity.
475 KeystoneSSLCertificateKey:
477 description: Keystone key for signing tokens.
480 KeystoneNotificationDriver:
481 description: Comma-separated list of Oslo notification drivers used by Keystone
482 default: ['messaging']
483 type: comma_delimited_list
484 KeystoneNotificationFormat:
485 description: The Keystone notification format
489 - allowed_values: [ 'basic', 'cadf' ]
492 description: Whether to manage IPtables rules.
496 description: Whether IPtables rules should be purged before setting up the ones.
498 MysqlInnodbBufferPoolSize:
500 Specifies the size of the buffer pool in megabytes. Setting to
501 zero should be interpreted as "no value" and will defer to the
506 description: Configures MySQL max_connections config setting
509 NeutronDnsmasqOptions:
510 default: 'dhcp-option-force=26,%MTU%'
512 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
513 to be set to the value of NeutronTenantMtu, which should be set to account
516 NeutronPublicInterfaceDefaultRoute:
518 description: A custom default route for the NeutronPublicInterface.
520 NeutronPublicInterfaceIP:
522 description: A custom IP address to put onto the NeutronPublicInterface.
524 NeutronPublicInterfaceRawDevice:
526 description: If set, the public interface is a vlan with this device as the raw device.
528 PublicVirtualInterface:
531 Specifies the interface where the public-facing virtual ip will be assigned.
532 This should be int_public when a VLAN is being used.
535 description: A random string to be used as a salt when hashing to determine mappings in the ring.
539 description: The password for the swift service account, used by the swift proxy services.
544 description: Value of mount_check in Swift account/container/object -server.conf
549 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
552 description: Partition Power to use when building Swift rings
557 description: How many replicas to use in the swift rings.
559 description: The password for the sahara service account.
563 # Compute-specific params
564 CeilometerComputeAgent:
565 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
569 - allowed_values: ['', Present]
573 HypervisorNeutronPhysicalBridge:
576 An OVS bridge to create on each hypervisor. This defaults to br-ex the
577 same as the control plane nodes, as we have a uniform configuration of
578 the openvswitch agent. Typically should not need to be changed.
580 HypervisorNeutronPublicInterface:
582 description: What interface to add to the HypervisorNeutronPhysicalBridge.
584 NeutronNetworkVLANRanges:
585 default: 'datacentre:1:1000'
587 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
588 Neutron documentation for permitted values. Defaults to permitting any
589 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
590 type: comma_delimited_list
593 default: libvirt.LibvirtDriver
594 NovaComputeExtraConfig:
597 NovaCompute specific configuration to inject into the cluster. Same
598 structure as ExtraConfig.
600 NovaComputeLibvirtType:
603 NovaComputeLibvirtVifDriver:
605 description: Libvirt VIF driver configuration for the network
607 NovaComputeSchedulerHints:
609 description: Optional scheduler hints to pass to nova
611 NovaEnableRbdBackend:
613 description: Whether to enable or not the Rbd backend for Nova
617 default: overcloud-full
619 - custom_constraint: glance.image
622 description: Name of integration bridge used by Open vSwitch
624 NovaSecurityGroupAPI:
626 description: The full class name of the security API class
628 OvercloudComputeFlavor:
629 description: Use this flavor
633 - custom_constraint: nova.flavor
636 NeutronTenantNetwork: tenant
637 CeilometerApiNetwork: internal_api
638 MongoDbNetwork: internal_api
639 CinderApiNetwork: internal_api
640 CinderIscsiNetwork: storage
641 GlanceApiNetwork: storage
642 GlanceRegistryNetwork: internal_api
643 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
644 KeystonePublicApiNetwork: internal_api
645 NeutronApiNetwork: internal_api
646 HeatApiNetwork: internal_api
647 NovaApiNetwork: internal_api
648 NovaMetadataNetwork: internal_api
649 NovaVncProxyNetwork: internal_api
650 SwiftMgmtNetwork: storage_mgmt
651 SwiftProxyNetwork: storage
652 SaharaApiNetwork: internal_api
653 HorizonNetwork: internal_api
654 MemcachedNetwork: internal_api
655 RabbitMqNetwork: internal_api
656 RedisNetwork: internal_api
657 MysqlNetwork: internal_api
658 CephClusterNetwork: storage_mgmt
659 CephPublicNetwork: storage
660 ControllerHostnameResolveNetwork: internal_api
661 ComputeHostnameResolveNetwork: internal_api
662 BlockStorageHostnameResolveNetwork: internal_api
663 ObjectStorageHostnameResolveNetwork: internal_api
664 CephStorageHostnameResolveNetwork: storage
665 description: Mapping of service_name -> network name. Typically set
666 via parameter_defaults in the resource registry.
669 # Block storage specific parameters
674 default: overcloud-full
676 OvercloudBlockStorageFlavor:
677 description: Flavor for block storage nodes to request when deploying.
681 - custom_constraint: nova.flavor
682 BlockStorageExtraConfig:
685 BlockStorage specific configuration to inject into the cluster. Same
686 structure as ExtraConfig.
688 BlockStorageSchedulerHints:
690 description: Optional scheduler hints to pass to nova
694 # Object storage specific parameters
698 OvercloudSwiftStorageFlavor:
699 description: Flavor for Swift storage nodes to request when deploying.
703 - custom_constraint: nova.flavor
705 default: overcloud-full
707 ObjectStorageExtraConfig:
710 ObjectStorage specific configuration to inject into the cluster. Same
711 structure as ExtraConfig.
713 ObjectStorageSchedulerHints:
715 description: Optional scheduler hints to pass to nova
718 # Ceph storage specific parameters
723 default: overcloud-full
725 OvercloudCephStorageFlavor:
727 description: Flavor for Ceph storage nodes to request when deploying.
730 - custom_constraint: nova.flavor
731 CephStorageExtraConfig:
734 CephStorage specific configuration to inject into the cluster. Same
735 structure as ExtraConfig.
737 CephStorageSchedulerHints:
739 description: Optional scheduler hints to pass to nova
743 # Hostname format for each role
744 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
745 # and %stackname% is replaced with OS::stack_name in the template below.
746 # If you want to use the heat generated names, pass '' (empty string).
747 ControllerHostnameFormat:
749 description: Format for Controller node hostnames
750 default: '%stackname%-controller-%index%'
751 ComputeHostnameFormat:
753 description: Format for Compute node hostnames
754 default: '%stackname%-novacompute-%index%'
755 BlockStorageHostnameFormat:
757 description: Format for BlockStorage node hostnames
758 default: '%stackname%-blockstorage-%index%'
759 ObjectStorageHostnameFormat:
761 description: Format for SwiftStorage node hostnames
762 default: '%stackname%-objectstorage-%index%'
763 CephStorageHostnameFormat:
765 description: Format for CephStorage node hostnames
766 default: '%stackname%-cephstorage-%index%'
768 # Identifiers to trigger tasks on nodes
773 Setting to a previously unused value during stack-update will trigger
774 package update on all nodes
779 Setting this to a unique value will re-run any deployment tasks which
780 perform configuration on a Heat stack-update.
782 # If you want to remove a specific node from a resource group, you can pass
783 # the node name or id as a <Group>RemovalPolicies parameter, for example:
784 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
785 ControllerRemovalPolicies:
789 List of resources to be removed from ControllerResourceGroup when
790 doing an update which requires removal of specific resources.
791 ComputeRemovalPolicies:
795 List of resources to be removed from ComputeResourceGroup when
796 doing an update which requires removal of specific resources.
797 BlockStorageRemovalPolicies:
801 List of resources to be removed from BlockStorageResourceGroup when
802 doing an update which requires removal of specific resources.
803 ObjectStorageRemovalPolicies:
807 List of resources to be removed from ObjectStorageResourceGroup when
808 doing an update which requires removal of specific resources.
809 CephStorageRemovalPolicies:
813 List of resources to be removed from CephStorageResourceGroup when
814 doing an update which requires removal of specific resources.
819 HeatAuthEncryptionKey:
820 type: OS::Heat::RandomString
823 type: OS::Heat::RandomString
828 type: OS::Heat::RandomString
833 type: OS::TripleO::EndpointMap
835 CloudName: {get_param: CloudName}
836 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
837 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
838 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
839 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
840 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
841 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
842 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
843 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
844 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
845 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
846 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
847 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
848 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
851 type: OS::Heat::ResourceGroup
854 count: {get_param: ControllerCount}
855 removal_policies: {get_param: ControllerRemovalPolicies}
857 type: OS::TripleO::Controller
859 AdminPassword: {get_param: AdminPassword}
860 AdminToken: {get_param: AdminToken}
861 CeilometerBackend: {get_param: CeilometerBackend}
862 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
863 CeilometerPassword: {get_param: CeilometerPassword}
864 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
865 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
866 CinderNfsServers: {get_param: CinderNfsServers}
867 CinderPassword: {get_param: CinderPassword}
868 CinderISCSIHelper: {get_param: CinderISCSIHelper}
869 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
870 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
871 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
872 CloudDomain: {get_param: CloudDomain}
873 ControlVirtualInterface: {get_param: ControlVirtualInterface}
874 ControllerExtraConfig: {get_param: controllerExtraConfig}
875 Debug: {get_param: Debug}
876 EnableFencing: {get_param: EnableFencing}
877 ManageFirewall: {get_param: ManageFirewall}
878 PurgeFirewallRules: {get_param: PurgeFirewallRules}
879 EnableGalera: {get_param: EnableGalera}
880 EnableCephStorage: {get_param: ControllerEnableCephStorage}
881 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
882 ExtraConfig: {get_param: ExtraConfig}
883 FencingConfig: {get_param: FencingConfig}
884 Flavor: {get_param: OvercloudControlFlavor}
885 GlancePassword: {get_param: GlancePassword}
886 GlanceBackend: {get_param: GlanceBackend}
887 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
888 GlanceLogFile: {get_param: GlanceLogFile}
889 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
890 HeatPassword: {get_param: HeatPassword}
891 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
892 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
893 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
894 HorizonSecret: {get_resource: HorizonSecret}
895 Image: {get_param: controllerImage}
896 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
897 InstanceNameTemplate: {get_param: InstanceNameTemplate}
898 KeyName: {get_param: KeyName}
899 KeystoneCACertificate: {get_param: KeystoneCACertificate}
900 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
901 KeystoneSigningKey: {get_param: KeystoneSigningKey}
902 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
903 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
904 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
905 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
906 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
907 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
908 MysqlMaxConnections: {get_param: MysqlMaxConnections}
909 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
910 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
911 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
912 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
913 NeutronTenantMtu: {get_param: NeutronTenantMtu}
914 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
915 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
916 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
917 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
918 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
919 NeutronPublicInterface: {get_param: NeutronPublicInterface}
920 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
921 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
922 NeutronPassword: {get_param: NeutronPassword}
923 NeutronDnsmasqOptions:
925 template: {get_param: NeutronDnsmasqOptions}
927 '%MTU%': {get_param: NeutronTenantMtu}
928 NeutronDVR: {get_param: NeutronDVR}
929 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
930 NeutronAgentMode: {get_param: NeutronAgentMode}
931 NeutronCorePlugin: {get_param: NeutronCorePlugin}
932 NeutronServicePlugins: {get_param: NeutronServicePlugins}
933 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
934 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
935 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
936 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
937 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
938 NeutronL3HA: {get_param: NeutronL3HA}
939 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
940 NeutronNetworkType: {get_param: NeutronNetworkType}
941 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
942 NovaPassword: {get_param: NovaPassword}
943 NtpServer: {get_param: NtpServer}
944 MongoDbNoJournal: {get_param: MongoDbNoJournal}
945 PcsdPassword: {get_resource: PcsdPassword}
946 PublicVirtualInterface: {get_param: PublicVirtualInterface}
947 RabbitPassword: {get_param: RabbitPassword}
948 RabbitUserName: {get_param: RabbitUserName}
949 RabbitCookie: {get_attr: [RabbitCookie, value]}
950 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
951 RabbitClientPort: {get_param: RabbitClientPort}
952 RabbitFDLimit: {get_param: RabbitFDLimit}
953 SaharaPassword: {get_param: SaharaPassword}
954 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
955 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
956 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
957 SwiftHashSuffix: {get_param: SwiftHashSuffix}
958 SwiftMountCheck: {get_param: SwiftMountCheck}
959 SwiftMinPartHours: {get_param: SwiftMinPartHours}
960 SwiftPartPower: {get_param: SwiftPartPower}
961 SwiftPassword: {get_param: SwiftPassword}
962 SwiftReplicas: { get_param: SwiftReplicas}
963 TimeZone: {get_param: TimeZone}
964 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
965 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
966 ServiceNetMap: {get_param: ServiceNetMap}
967 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
968 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
969 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
970 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
971 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
972 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
973 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
974 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
975 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
976 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
977 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
978 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
979 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
980 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
981 UpdateIdentifier: {get_param: UpdateIdentifier}
984 template: {get_param: ControllerHostnameFormat}
986 '%stackname%': {get_param: 'OS::stack_name'}
988 ServerMetadata: {get_param: ServerMetadata}
989 SchedulerHints: {get_param: ControllerSchedulerHints}
992 type: OS::Heat::ResourceGroup
995 count: {get_param: ComputeCount}
996 removal_policies: {get_param: ComputeRemovalPolicies}
998 type: OS::TripleO::Compute
1000 AdminPassword: {get_param: AdminPassword}
1001 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1002 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1003 CeilometerPassword: {get_param: CeilometerPassword}
1004 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1005 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1006 Debug: {get_param: Debug}
1007 ExtraConfig: {get_param: ExtraConfig}
1008 Flavor: {get_param: OvercloudComputeFlavor}
1009 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1010 Image: {get_param: NovaImage}
1011 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1012 KeyName: {get_param: KeyName}
1013 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1014 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1015 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1016 NeutronTenantMtu: {get_param: NeutronTenantMtu}
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
1269 depends_on: Networks
1270 type: OS::TripleO::Network::Ports::StorageVipPort
1272 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1273 PortName: storage_virtual_ip
1275 StorageMgmtVirtualIP:
1276 depends_on: Networks
1277 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1279 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1280 PortName: storage_management_virtual_ip
1283 type: OS::TripleO::Network::Ports::NetVipMap
1285 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1286 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1287 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1288 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1289 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1290 # No tenant or management VIP required
1293 type: OS::TripleO::VipConfig
1296 type: OS::Heat::StructuredDeployments
1299 config: {get_resource: VipConfig}
1300 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1302 # service VIP mappings
1303 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1304 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1305 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1306 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1307 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1308 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1309 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1310 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1311 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1312 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1313 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1314 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1315 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1316 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1317 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1318 # direct configuration of Virtual IPs for each network
1319 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1320 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1321 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1322 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1323 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1324 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1326 ControllerBootstrapNodeConfig:
1327 type: OS::TripleO::BootstrapNode::SoftwareConfig
1329 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1330 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1332 ControllerBootstrapNodeDeployment:
1333 type: OS::Heat::StructuredDeployments
1335 name: ControllerBootstrapNodeDeployment
1336 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1337 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1339 ControllerSwiftDeployment:
1340 type: OS::Heat::StructuredDeployments
1342 name: ControllerSwiftDeployment
1343 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1344 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1346 ObjectStorageSwiftDeployment:
1347 type: OS::Heat::StructuredDeployments
1349 name: ObjectStorageSwiftDeployment
1350 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1351 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1353 SwiftDevicesAndProxyConfig:
1354 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1356 controller_swift_devices: {get_attr: [Controller, swift_device]}
1357 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1358 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1360 ComputeCephDeployment:
1361 type: OS::Heat::StructuredDeployments
1363 name: ComputeCephDeployment
1364 config: {get_attr: [CephClusterConfig, config_id]}
1365 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1367 ControllerCephDeployment:
1368 type: OS::Heat::StructuredDeployments
1370 name: ControllerCephDeployment
1371 config: {get_attr: [CephClusterConfig, config_id]}
1372 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1374 CephStorageCephDeployment:
1375 type: OS::Heat::StructuredDeployments
1377 name: CephStorageCephDeployment
1378 config: {get_attr: [CephClusterConfig, config_id]}
1379 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1382 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1384 ceph_storage_count: {get_param: CephStorageCount}
1385 ceph_fsid: {get_param: CephClusterFSID}
1386 ceph_mon_key: {get_param: CephMonKey}
1387 ceph_admin_key: {get_param: CephAdminKey}
1388 ceph_client_key: {get_param: CephClientKey}
1389 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1390 ceph_mon_names: {get_attr: [Controller, hostname]}
1391 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1393 ControllerClusterConfig:
1394 type: OS::Heat::StructuredConfig
1396 group: os-apply-config
1399 nodes: {get_attr: [Controller, corosync_node]}
1403 nodes: {get_attr: [Controller, hostname]}
1405 nodes: {get_attr: [Controller, corosync_node]}
1407 nodes: {get_attr: [Controller, corosync_node]}
1409 ControllerClusterDeployment:
1410 type: OS::Heat::StructuredDeployments
1412 name: ControllerClusterDeployment
1413 config: {get_resource: ControllerClusterConfig}
1414 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1416 ControllerAllNodesDeployment:
1417 type: OS::Heat::StructuredDeployments
1419 name: ControllerAllNodesDeployment
1420 config: {get_attr: [allNodesConfig, config_id]}
1421 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1423 ComputeAllNodesDeployment:
1424 type: OS::Heat::StructuredDeployments
1426 name: ComputeAllNodesDeployment
1427 config: {get_attr: [allNodesConfig, config_id]}
1428 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1430 BlockStorageAllNodesDeployment:
1431 type: OS::Heat::StructuredDeployments
1433 name: BlockStorageAllNodesDeployment
1434 config: {get_attr: [allNodesConfig, config_id]}
1435 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1437 ObjectStorageAllNodesDeployment:
1438 type: OS::Heat::StructuredDeployments
1440 name: ObjectStorageAllNodesDeployment
1441 config: {get_attr: [allNodesConfig, config_id]}
1442 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1444 CephStorageAllNodesDeployment:
1445 type: OS::Heat::StructuredDeployments
1447 name: CephStorageAllNodesDeployment
1448 config: {get_attr: [allNodesConfig, config_id]}
1449 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1451 # All Nodes Validations
1452 AllNodesValidationConfig:
1453 type: OS::TripleO::AllNodes::Validation
1458 - - {get_attr: [Controller, resource.0.external_ip_address]}
1459 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1460 - {get_attr: [Controller, resource.0.storage_ip_address]}
1461 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1462 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1464 ControllerAllNodesValidationDeployment:
1465 type: OS::Heat::StructuredDeployments
1466 depends_on: ControllerAllNodesDeployment
1468 name: ControllerAllNodesValidationDeployment
1469 config: {get_resource: AllNodesValidationConfig}
1470 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1472 ComputeAllNodesValidationDeployment:
1473 type: OS::Heat::StructuredDeployments
1474 depends_on: ComputeAllNodesDeployment
1476 name: ComputeAllNodesValidationDeployment
1477 config: {get_resource: AllNodesValidationConfig}
1478 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1480 BlockStorageAllNodesValidationDeployment:
1481 type: OS::Heat::StructuredDeployments
1482 depends_on: BlockStorageAllNodesDeployment
1484 name: BlockStorageAllNodesValidationDeployment
1485 config: {get_resource: AllNodesValidationConfig}
1486 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1488 ObjectStorageAllNodesValidationDeployment:
1489 type: OS::Heat::StructuredDeployments
1490 depends_on: ObjectStorageAllNodesDeployment
1492 name: ObjectStorageAllNodesValidationDeployment
1493 config: {get_resource: AllNodesValidationConfig}
1494 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1496 CephStorageAllNodesValidationDeployment:
1497 type: OS::Heat::StructuredDeployments
1498 depends_on: CephStorageAllNodesDeployment
1500 name: CephStorageAllNodesValidationDeployment
1501 config: {get_resource: AllNodesValidationConfig}
1502 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1504 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1505 # the nested template may configure each role differently (or not at all)
1506 AllNodesExtraConfig:
1507 type: OS::TripleO::AllNodesExtraConfig
1509 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1510 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1511 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1512 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1513 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1515 # Nested stack deployment runs after all other controller deployments
1516 ControllerNodesPostDeployment:
1517 type: OS::TripleO::ControllerPostDeployment
1518 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1520 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1521 NodeConfigIdentifiers:
1522 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1523 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1524 deployment_identifier: {get_param: DeployIdentifier}
1526 ComputeNodesPostDeployment:
1527 type: OS::TripleO::ComputePostDeployment
1528 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1530 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1531 NodeConfigIdentifiers:
1532 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1533 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1534 deployment_identifier: {get_param: DeployIdentifier}
1536 ObjectStorageNodesPostDeployment:
1537 type: OS::TripleO::ObjectStoragePostDeployment
1538 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1540 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1541 NodeConfigIdentifiers:
1542 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1543 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1544 deployment_identifier: {get_param: DeployIdentifier}
1546 BlockStorageNodesPostDeployment:
1547 type: OS::TripleO::BlockStoragePostDeployment
1548 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1550 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1551 NodeConfigIdentifiers:
1552 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1553 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1554 deployment_identifier: {get_param: DeployIdentifier}
1556 CephStorageNodesPostDeployment:
1557 type: OS::TripleO::CephStoragePostDeployment
1558 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1560 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1561 NodeConfigIdentifiers:
1562 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1563 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1564 deployment_identifier: {get_param: DeployIdentifier}
1568 description: URL for the Overcloud Keystone service
1569 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1571 description: Keystone Admin VIP endpoint
1572 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1574 description: Controller VIP for public API endpoints
1575 value: {get_attr: [VipMap, net_ip_map, external]}
1576 CeilometerInternalVip:
1577 description: VIP for Ceilometer API internal endpoint
1578 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1580 description: VIP for Cinder API internal endpoint
1581 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1583 description: VIP for Glance API internal endpoint
1584 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1586 description: VIP for Heat API internal endpoint
1587 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1588 KeystoneInternalVip:
1589 description: VIP for Keystone API internal endpoint
1590 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1592 description: VIP for Neutron API internal endpoint
1593 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1595 description: VIP for Nova API internal endpoint
1596 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1598 description: VIP for Sahara API internal endpoint
1599 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1601 description: VIP for Swift Proxy internal endpoint
1602 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1605 The content that should be appended to your /etc/hosts if you want to get
1606 hostname-based access to the deployed nodes (useful for testing without
1608 value: {get_attr: [allNodesConfig, hosts_entries]}