1 heat_template_version: 2015-04-30
4 Deploy an OpenStack environment, consisting of several node types (roles),
5 Controller, Compute, BlockStorage, SwiftStorage and CephStorage. The Storage
6 roles enable independent scaling of the storage components, but the minimal
7 deployment is one Controller and one Compute node.
10 # TODO(shadower): we should probably use the parameter groups to put
14 # Common parameters (not specific to a role)
16 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
21 description: The ceilometer backend type.
23 CeilometerMeteringSecret:
24 description: Secret shared by the ceilometer services.
28 description: The password for the ceilometer service account.
31 # This has to be an UUID so for now we generate it outside the template
35 description: The Ceph cluster FSID. Must be a UUID.
38 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
43 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
46 CinderEnableNfsBackend:
48 description: Whether to enable or not the NFS backend for Cinder
52 description: The Ceph client key. Can be created with ceph-authtool --gen-print-key. Currently only used for external Ceph deployments to create the openstack user keyring.
58 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
59 CinderEnableIscsiBackend:
61 description: Whether to enable or not the Iscsi backend for Cinder
63 CinderEnableRbdBackend:
65 description: Whether to enable or not the Rbd backend for Cinder
69 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
73 description: Should be used for arbitrary ips.
77 description: Set to True to enable debugging on all services.
81 description: Syslog address where HAproxy will send its log
85 description: A list of IP/Hostname allowed to connect to horizon
86 type: comma_delimited_list
88 default: 'REBUILD_PRESERVE_EPHEMERAL'
89 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
93 description: Name of an existing Nova key pair to enable SSH access to the instances
96 - custom_constraint: nova.keypair
97 NeutronExternalNetworkBridge:
98 description: Name of bridge used for external network traffic.
101 NeutronBridgeMappings:
103 The OVS logical->physical bridge mappings to use. See the Neutron
104 documentation for details. Defaults to mapping br-ex - the external
105 bridge on hosts - to a physical name 'datacentre' which can be used
106 to create provider networks (and we use this for the default floating
107 network) - if changing this either use different post-install network
108 scripts or be sure to keep 'datacentre' as a mapping network name.
109 type: comma_delimited_list
110 default: "datacentre:br-ex"
111 NeutronControlPlaneID:
114 description: Neutron ID or name for ctlplane network.
115 NeutronEnableIsolatedMetadata:
117 description: If True, DHCP provide metadata route to VM.
119 NeutronEnableTunnelling:
125 Enable/disable the L2 population feature in the Neutron agents.
128 type: comma_delimited_list
129 default: 'datacentre'
131 If set, flat networks to configure in neutron plugins. Defaults to
132 'datacentre' to permit external network creation.
135 description: The tenant network type for Neutron.
136 type: comma_delimited_list
138 description: The password for the neutron service account, used by neutron agents.
141 NeutronPublicInterface:
143 description: What interface to bridge onto br-ex for network nodes.
145 NeutronPublicInterfaceTag:
148 VLAN tag for creating a public VLAN. The tag will be used to
149 create an access port on the exterior bridge for each control plane node,
150 and that port will be given the IP address returned by neutron from the
151 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
152 overcloud.yaml to include the deployment of VLAN ports to the control
155 NeutronComputeAgentMode:
157 description: Agent mode for the neutron-l3-agent on the compute hosts
161 description: Agent mode for the neutron-l3-agent on the controller hosts
165 description: Whether to configure Neutron Distributed Virtual Routers
167 NeutronMetadataProxySharedSecret:
168 description: Shared secret to prevent spoofing
174 The tunnel types for the Neutron tenant network.
175 type: comma_delimited_list
176 NeutronTunnelIdRanges:
178 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
179 of GRE tunnel IDs that are available for tenant network allocation
180 default: ["1:1000", ]
181 type: comma_delimited_list
184 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
185 of VXLAN VNI IDs that are available for tenant network allocation
186 default: ["1:1000", ]
187 type: comma_delimited_list
191 The core plugin for Neutron. The value should be the entrypoint to be loaded
192 from neutron.core_plugins namespace.
194 NeutronServicePlugins:
195 default: "router,qos"
197 Comma-separated list of service plugin entrypoints to be loaded from the
198 neutron.service_plugins namespace.
199 type: comma_delimited_list
201 default: "vxlan,vlan,flat,gre"
203 Comma-separated list of network type driver entrypoints to be loaded.
204 type: comma_delimited_list
205 NeutronMechanismDrivers:
206 default: 'openvswitch'
208 The mechanism drivers for the Neutron tenant network.
209 type: comma_delimited_list
210 NeutronPluginExtensions:
213 Comma-separated list of extensions enabled for the Neutron plugin.
214 type: comma_delimited_list
215 NeutronAgentExtensions:
218 Comma-separated list of extensions enabled for the Neutron agents.
219 type: comma_delimited_list
220 NeutronAllowL3AgentFailover:
222 description: Allow automatic l3-agent failover
226 description: Whether to enable l3-agent HA
228 NeutronDhcpAgentsPerNetwork:
231 description: The number of neutron dhcp agents to schedule per network
233 description: The password for the nova service account, used by nova-api.
238 description: Comma-separated list of ntp servers
239 type: comma_delimited_list
242 description: Should MongoDb journaling be disabled
244 PublicVirtualFixedIPs:
247 Control the IP allocation for the PublicVirtualInterface port. E.g.
248 [{'ip_address':'1.2.3.4'}]
253 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
254 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
257 description: The username for RabbitMQ
261 description: The password for RabbitMQ
267 Rabbit client subscriber parameter to specify
268 an SSL connection to the RabbitMQ host.
272 description: Set rabbit subscriber port, change this if using SSL
274 # We need to set this as string because 'unlimited' is a valid setting
277 description: Configures RabbitMQ FD limit
279 SnmpdReadonlyUserName:
280 default: ro_snmp_user
281 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
283 SnmpdReadonlyUserPassword:
284 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
288 default: 'localdomain'
291 The DNS domain used for the hosts. This should match the dhcp_domain
292 configured in the Undercloud neutron. Defaults to localdomain.
296 Extra properties or metadata passed to Nova for the created nodes in
297 the overcloud. It's accessible via the Nova metadata API.
300 # Controller-specific params
302 description: The keystone auth secret.
305 CinderLVMLoopDeviceSize:
307 description: The size of the loopback file used by the cinder LVM driver.
309 CinderNfsMountOptions:
312 Mount options for NFS mounts used by Cinder NFS backend. Effective
313 when CinderEnableNfsBackend is true.
318 NFS servers used by Cinder NFS backend. Effective when
319 CinderEnableNfsBackend is true.
320 type: comma_delimited_list
322 description: The password for the cinder service account, used by cinder-api.
327 description: The iSCSI helper to use with cinder.
334 controllerExtraConfig:
337 Controller specific configuration to inject into the cluster. Same
338 structure as ExtraConfig.
342 default: overcloud-full
344 - custom_constraint: glance.image
345 OvercloudControlFlavor:
346 description: Flavor for control nodes to request when deploying.
350 - custom_constraint: nova.flavor
351 ControlVirtualInterface:
353 description: Interface where virtual ip will be assigned.
357 description: Whether to enable fencing in Pacemaker or not.
361 description: Whether to use Galera instead of regular MariaDB.
363 ControllerEnableCephStorage:
365 description: Whether to deploy Ceph Storage (OSD) on the Controller
367 ControllerEnableSwiftStorage:
369 description: Whether to enable Swift Storage on the Controller
371 ControllerSchedulerHints:
373 description: Optional scheduler hints to pass to nova
378 Additional configuration to inject into the cluster. The format required
379 may be implementation specific, e.g puppet hieradata. Any role specific
380 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
385 Pacemaker fencing configuration. The JSON should have
386 the following structure:
390 "agent": "AGENT_NAME",
391 "host_mac": "HOST_MAC_ADDRESS",
392 "params": {"PARAM_NAME": "PARAM_VALUE"}
400 "agent": "fence_xvm",
401 "host_mac": "52:54:00:aa:bb:cc",
403 "multicast_address": "225.0.0.12",
404 "port": "baremetal_0",
406 "manage_key_file": true,
407 "key_file": "/etc/fence_xvm.key",
408 "key_file_password": "abcdef"
415 description: The filepath of the file to use for logging messages from Glance.
418 GlanceNotifierStrategy:
419 description: Strategy to use for Glance notification queue
423 description: The password for the glance service account, used by the glance services.
428 description: The short name of the Glance backend to use. Should be one
429 of swift, rbd or file
432 - allowed_values: ['swift', 'file', 'rbd']
434 description: The password for the Heat service account, used by the Heat services.
437 HeatStackDomainAdminPassword:
438 description: Password for heat_domain_admin user.
441 InstanceNameTemplate:
442 default: 'instance-%08x'
443 description: Template string to be used to generate instance names
445 KeystoneCACertificate:
447 description: Keystone self-signed certificate authority certificate.
449 KeystoneSigningCertificate:
451 description: Keystone certificate for verifying token validity.
455 description: Keystone key for signing tokens.
458 KeystoneSSLCertificate:
460 description: Keystone certificate for verifying token validity.
462 KeystoneSSLCertificateKey:
464 description: Keystone key for signing tokens.
467 KeystoneNotificationDriver:
468 description: Comma-separated list of Oslo notification drivers used by Keystone
469 default: ['messaging']
470 type: comma_delimited_list
471 KeystoneNotificationFormat:
472 description: The Keystone notification format
476 - allowed_values: [ 'basic', 'cadf' ]
479 description: Whether to manage IPtables rules.
483 description: Whether IPtables rules should be purged before setting up the ones.
485 MysqlInnodbBufferPoolSize:
487 Specifies the size of the buffer pool in megabytes. Setting to
488 zero should be interpreted as "no value" and will defer to the
493 description: Configures MySQL max_connections config setting
496 NeutronDnsmasqOptions:
497 default: 'dhcp-option-force=26,1400'
498 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
500 NeutronPublicInterfaceDefaultRoute:
502 description: A custom default route for the NeutronPublicInterface.
504 NeutronPublicInterfaceIP:
506 description: A custom IP address to put onto the NeutronPublicInterface.
508 NeutronPublicInterfaceRawDevice:
510 description: If set, the public interface is a vlan with this device as the raw device.
512 PublicVirtualInterface:
515 Specifies the interface where the public-facing virtual ip will be assigned.
516 This should be int_public when a VLAN is being used.
519 description: A random string to be used as a salt when hashing to determine mappings in the ring.
523 description: The password for the swift service account, used by the swift proxy services.
528 description: Value of mount_check in Swift account/container/object -server.conf
533 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
536 description: Partition Power to use when building Swift rings
541 description: How many replicas to use in the swift rings.
543 # Compute-specific params
544 CeilometerComputeAgent:
545 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
549 - allowed_values: ['', Present]
553 HypervisorNeutronPhysicalBridge:
556 An OVS bridge to create on each hypervisor. This defaults to br-ex the
557 same as the control plane nodes, as we have a uniform configuration of
558 the openvswitch agent. Typically should not need to be changed.
560 HypervisorNeutronPublicInterface:
562 description: What interface to add to the HypervisorNeutronPhysicalBridge.
564 NeutronNetworkVLANRanges:
565 default: 'datacentre:1:1000'
567 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
568 Neutron documentation for permitted values. Defaults to permitting any
569 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
570 type: comma_delimited_list
573 default: libvirt.LibvirtDriver
574 NovaComputeExtraConfig:
577 NovaCompute specific configuration to inject into the cluster. Same
578 structure as ExtraConfig.
580 NovaComputeLibvirtType:
583 NovaComputeLibvirtVifDriver:
585 description: Libvirt VIF driver configuration for the network
587 NovaComputeSchedulerHints:
589 description: Optional scheduler hints to pass to nova
591 NovaEnableRbdBackend:
593 description: Whether to enable or not the Rbd backend for Nova
597 default: overcloud-full
599 - custom_constraint: glance.image
602 description: Name of integration bridge used by Open vSwitch
604 NovaSecurityGroupAPI:
606 description: The full class name of the security API class
608 OvercloudComputeFlavor:
609 description: Use this flavor
613 - custom_constraint: nova.flavor
616 NeutronTenantNetwork: tenant
617 CeilometerApiNetwork: internal_api
618 MongoDbNetwork: internal_api
619 CinderApiNetwork: internal_api
620 CinderIscsiNetwork: storage
621 GlanceApiNetwork: storage
622 GlanceRegistryNetwork: internal_api
623 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
624 KeystonePublicApiNetwork: internal_api
625 NeutronApiNetwork: internal_api
626 HeatApiNetwork: internal_api
627 NovaApiNetwork: internal_api
628 NovaMetadataNetwork: internal_api
629 NovaVncProxyNetwork: internal_api
630 SwiftMgmtNetwork: storage_mgmt
631 SwiftProxyNetwork: storage
632 HorizonNetwork: internal_api
633 MemcachedNetwork: internal_api
634 RabbitMqNetwork: internal_api
635 RedisNetwork: internal_api
636 MysqlNetwork: internal_api
637 CephClusterNetwork: storage_mgmt
638 CephPublicNetwork: storage
639 ControllerHostnameResolveNetwork: internal_api
640 ComputeHostnameResolveNetwork: internal_api
641 BlockStorageHostnameResolveNetwork: internal_api
642 ObjectStorageHostnameResolveNetwork: internal_api
643 CephStorageHostnameResolveNetwork: storage
644 description: Mapping of service_name -> network name. Typically set
645 via parameter_defaults in the resource registry.
648 # Block storage specific parameters
653 default: overcloud-full
655 OvercloudBlockStorageFlavor:
656 description: Flavor for block storage nodes to request when deploying.
660 - custom_constraint: nova.flavor
661 BlockStorageExtraConfig:
664 BlockStorage specific configuration to inject into the cluster. Same
665 structure as ExtraConfig.
667 BlockStorageSchedulerHints:
669 description: Optional scheduler hints to pass to nova
673 # Object storage specific parameters
677 OvercloudSwiftStorageFlavor:
678 description: Flavor for Swift storage nodes to request when deploying.
682 - custom_constraint: nova.flavor
684 default: overcloud-full
686 ObjectStorageExtraConfig:
689 ObjectStorage specific configuration to inject into the cluster. Same
690 structure as ExtraConfig.
692 ObjectStorageSchedulerHints:
694 description: Optional scheduler hints to pass to nova
697 # Ceph storage specific parameters
702 default: overcloud-full
704 OvercloudCephStorageFlavor:
706 description: Flavor for Ceph storage nodes to request when deploying.
709 - custom_constraint: nova.flavor
710 CephStorageExtraConfig:
713 CephStorage specific configuration to inject into the cluster. Same
714 structure as ExtraConfig.
716 CephStorageSchedulerHints:
718 description: Optional scheduler hints to pass to nova
722 # Hostname format for each role
723 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
724 # and %stackname% is replaced with OS::stack_name in the template below.
725 # If you want to use the heat generated names, pass '' (empty string).
726 ControllerHostnameFormat:
728 description: Format for Controller node hostnames
729 default: '%stackname%-controller-%index%'
730 ComputeHostnameFormat:
732 description: Format for Compute node hostnames
733 default: '%stackname%-novacompute-%index%'
734 BlockStorageHostnameFormat:
736 description: Format for BlockStorage node hostnames
737 default: '%stackname%-blockstorage-%index%'
738 ObjectStorageHostnameFormat:
740 description: Format for SwiftStorage node hostnames
741 default: '%stackname%-objectstorage-%index%'
742 CephStorageHostnameFormat:
744 description: Format for CephStorage node hostnames
745 default: '%stackname%-cephstorage-%index%'
747 # Identifiers to trigger tasks on nodes
752 Setting to a previously unused value during stack-update will trigger
753 package update on all nodes
758 Setting this to a unique value will re-run any deployment tasks which
759 perform configuration on a Heat stack-update.
761 # If you want to remove a specific node from a resource group, you can pass
762 # the node name or id as a <Group>RemovalPolicies parameter, for example:
763 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
764 ControllerRemovalPolicies:
768 List of resources to be removed from ControllerResourceGroup when
769 doing an update which requires removal of specific resources.
770 ComputeRemovalPolicies:
774 List of resources to be removed from ComputeResourceGroup when
775 doing an update which requires removal of specific resources.
776 BlockStorageRemovalPolicies:
780 List of resources to be removed from BlockStorageResourceGroup when
781 doing an update which requires removal of specific resources.
782 ObjectStorageRemovalPolicies:
786 List of resources to be removed from ObjectStorageResourceGroup when
787 doing an update which requires removal of specific resources.
788 CephStorageRemovalPolicies:
792 List of resources to be removed from CephStorageResourceGroup when
793 doing an update which requires removal of specific resources.
798 HeatAuthEncryptionKey:
799 type: OS::Heat::RandomString
802 type: OS::Heat::RandomString
807 type: OS::Heat::RandomString
812 type: OS::TripleO::EndpointMap
814 CloudName: {get_param: CloudName}
815 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
816 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
817 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
818 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
819 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
820 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
821 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
822 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
823 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
824 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
825 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
826 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
829 type: OS::Heat::ResourceGroup
832 count: {get_param: ControllerCount}
833 removal_policies: {get_param: ControllerRemovalPolicies}
835 type: OS::TripleO::Controller
837 AdminPassword: {get_param: AdminPassword}
838 AdminToken: {get_param: AdminToken}
839 CeilometerBackend: {get_param: CeilometerBackend}
840 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
841 CeilometerPassword: {get_param: CeilometerPassword}
842 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
843 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
844 CinderNfsServers: {get_param: CinderNfsServers}
845 CinderPassword: {get_param: CinderPassword}
846 CinderISCSIHelper: {get_param: CinderISCSIHelper}
847 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
848 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
849 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
850 CloudName: {get_param: CloudName}
851 CloudDomain: {get_param: CloudDomain}
852 ControlVirtualInterface: {get_param: ControlVirtualInterface}
853 ControllerExtraConfig: {get_param: controllerExtraConfig}
854 Debug: {get_param: Debug}
855 EnableFencing: {get_param: EnableFencing}
856 ManageFirewall: {get_param: ManageFirewall}
857 PurgeFirewallRules: {get_param: PurgeFirewallRules}
858 EnableGalera: {get_param: EnableGalera}
859 EnableCephStorage: {get_param: ControllerEnableCephStorage}
860 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
861 ExtraConfig: {get_param: ExtraConfig}
862 FencingConfig: {get_param: FencingConfig}
863 Flavor: {get_param: OvercloudControlFlavor}
864 GlancePassword: {get_param: GlancePassword}
865 GlanceBackend: {get_param: GlanceBackend}
866 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
867 GlanceLogFile: {get_param: GlanceLogFile}
868 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
869 HeatPassword: {get_param: HeatPassword}
870 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
871 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
872 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
873 HorizonSecret: {get_resource: HorizonSecret}
874 Image: {get_param: controllerImage}
875 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
876 InstanceNameTemplate: {get_param: InstanceNameTemplate}
877 KeyName: {get_param: KeyName}
878 KeystoneCACertificate: {get_param: KeystoneCACertificate}
879 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
880 KeystoneSigningKey: {get_param: KeystoneSigningKey}
881 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
882 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
883 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
884 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
885 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
886 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
887 MysqlMaxConnections: {get_param: MysqlMaxConnections}
888 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
889 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
890 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
891 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
892 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
893 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
894 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
895 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
896 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
897 NeutronPublicInterface: {get_param: NeutronPublicInterface}
898 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
899 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
900 NeutronPassword: {get_param: NeutronPassword}
901 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
902 NeutronDVR: {get_param: NeutronDVR}
903 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
904 NeutronAgentMode: {get_param: NeutronAgentMode}
905 NeutronCorePlugin: {get_param: NeutronCorePlugin}
906 NeutronServicePlugins: {get_param: NeutronServicePlugins}
907 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
908 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
909 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
910 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
911 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
912 NeutronL3HA: {get_param: NeutronL3HA}
913 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
914 NeutronNetworkType: {get_param: NeutronNetworkType}
915 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
916 NovaPassword: {get_param: NovaPassword}
917 NtpServer: {get_param: NtpServer}
918 MongoDbNoJournal: {get_param: MongoDbNoJournal}
919 PcsdPassword: {get_resource: PcsdPassword}
920 PublicVirtualInterface: {get_param: PublicVirtualInterface}
921 RabbitPassword: {get_param: RabbitPassword}
922 RabbitUserName: {get_param: RabbitUserName}
923 RabbitCookie: {get_attr: [RabbitCookie, value]}
924 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
925 RabbitClientPort: {get_param: RabbitClientPort}
926 RabbitFDLimit: {get_param: RabbitFDLimit}
927 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
928 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
929 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
930 SwiftHashSuffix: {get_param: SwiftHashSuffix}
931 SwiftMountCheck: {get_param: SwiftMountCheck}
932 SwiftMinPartHours: {get_param: SwiftMinPartHours}
933 SwiftPartPower: {get_param: SwiftPartPower}
934 SwiftPassword: {get_param: SwiftPassword}
935 SwiftReplicas: { get_param: SwiftReplicas}
936 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
937 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
938 ServiceNetMap: {get_param: ServiceNetMap}
939 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
940 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
941 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
942 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
943 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
944 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
945 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
946 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
947 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
948 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
949 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
950 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
951 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
952 UpdateIdentifier: {get_param: UpdateIdentifier}
955 template: {get_param: ControllerHostnameFormat}
957 '%stackname%': {get_param: 'OS::stack_name'}
959 ServerMetadata: {get_param: ServerMetadata}
960 SchedulerHints: {get_param: ControllerSchedulerHints}
963 type: OS::Heat::ResourceGroup
966 count: {get_param: ComputeCount}
967 removal_policies: {get_param: ComputeRemovalPolicies}
969 type: OS::TripleO::Compute
971 AdminPassword: {get_param: AdminPassword}
972 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
973 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
974 CeilometerPassword: {get_param: CeilometerPassword}
975 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
976 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
977 Debug: {get_param: Debug}
978 ExtraConfig: {get_param: ExtraConfig}
979 Flavor: {get_param: OvercloudComputeFlavor}
980 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
981 Image: {get_param: NovaImage}
982 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
983 KeyName: {get_param: KeyName}
984 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
985 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
986 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
987 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
988 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
989 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
990 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
991 NeutronNetworkType: {get_param: NeutronNetworkType}
992 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
993 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
994 NeutronPassword: {get_param: NeutronPassword}
995 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
996 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
997 NeutronDVR: {get_param: NeutronDVR}
998 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
999 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1000 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1001 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1002 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1003 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1004 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1005 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1006 # L3 HA and Failover is not relevant for Computes, should be removed
1007 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1008 NeutronL3HA: {get_param: NeutronL3HA}
1009 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1010 NovaComputeDriver: {get_param: NovaComputeDriver}
1011 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1012 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1013 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1014 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1015 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1016 NovaPassword: {get_param: NovaPassword}
1017 NovaOVSBridge: {get_param: NovaOVSBridge}
1018 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1019 NtpServer: {get_param: NtpServer}
1020 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1021 RabbitPassword: {get_param: RabbitPassword}
1022 RabbitUserName: {get_param: RabbitUserName}
1023 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1024 RabbitClientPort: {get_param: RabbitClientPort}
1025 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1026 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1027 ServiceNetMap: {get_param: ServiceNetMap}
1028 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1029 UpdateIdentifier: {get_param: UpdateIdentifier}
1032 template: {get_param: ComputeHostnameFormat}
1034 '%stackname%': {get_param: 'OS::stack_name'}
1035 CloudDomain: {get_param: CloudDomain}
1036 ServerMetadata: {get_param: ServerMetadata}
1037 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1040 type: OS::Heat::ResourceGroup
1041 depends_on: Networks
1043 count: {get_param: BlockStorageCount}
1044 removal_policies: {get_param: BlockStorageRemovalPolicies}
1046 type: OS::TripleO::BlockStorage
1048 Debug: {get_param: Debug}
1049 Image: {get_param: BlockStorageImage}
1050 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1051 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1052 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1053 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1054 CinderPassword: {get_param: CinderPassword}
1055 KeyName: {get_param: KeyName}
1056 Flavor: {get_param: OvercloudBlockStorageFlavor}
1057 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1058 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1059 RabbitPassword: {get_param: RabbitPassword}
1060 RabbitUserName: {get_param: RabbitUserName}
1061 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1062 RabbitClientPort: {get_param: RabbitClientPort}
1063 NtpServer: {get_param: NtpServer}
1064 UpdateIdentifier: {get_param: UpdateIdentifier}
1067 template: {get_param: BlockStorageHostnameFormat}
1069 '%stackname%': {get_param: 'OS::stack_name'}
1070 ServiceNetMap: {get_param: ServiceNetMap}
1071 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1072 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1073 ExtraConfig: {get_param: ExtraConfig}
1074 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1075 CloudDomain: {get_param: CloudDomain}
1076 ServerMetadata: {get_param: ServerMetadata}
1077 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1080 type: OS::Heat::ResourceGroup
1081 depends_on: Networks
1083 count: {get_param: ObjectStorageCount}
1084 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1086 type: OS::TripleO::ObjectStorage
1088 KeyName: {get_param: KeyName}
1089 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1090 HashSuffix: {get_param: SwiftHashSuffix}
1091 MountCheck: {get_param: SwiftMountCheck}
1092 MinPartHours: {get_param: SwiftMinPartHours}
1093 PartPower: {get_param: SwiftPartPower}
1094 Image: {get_param: SwiftStorageImage}
1095 Replicas: { get_param: SwiftReplicas}
1096 NtpServer: {get_param: NtpServer}
1097 UpdateIdentifier: {get_param: UpdateIdentifier}
1098 ServiceNetMap: {get_param: ServiceNetMap}
1101 template: {get_param: ObjectStorageHostnameFormat}
1103 '%stackname%': {get_param: 'OS::stack_name'}
1104 ExtraConfig: {get_param: ExtraConfig}
1105 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1106 CloudDomain: {get_param: CloudDomain}
1107 ServerMetadata: {get_param: ServerMetadata}
1108 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1111 type: OS::Heat::ResourceGroup
1112 depends_on: Networks
1114 count: {get_param: CephStorageCount}
1115 removal_policies: {get_param: CephStorageRemovalPolicies}
1117 type: OS::TripleO::CephStorage
1119 Image: {get_param: CephStorageImage}
1120 KeyName: {get_param: KeyName}
1121 Flavor: {get_param: OvercloudCephStorageFlavor}
1122 NtpServer: {get_param: NtpServer}
1123 ServiceNetMap: {get_param: ServiceNetMap}
1124 UpdateIdentifier: {get_param: UpdateIdentifier}
1127 template: {get_param: CephStorageHostnameFormat}
1129 '%stackname%': {get_param: 'OS::stack_name'}
1130 ExtraConfig: {get_param: ExtraConfig}
1131 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1132 CloudDomain: {get_param: CloudDomain}
1133 ServerMetadata: {get_param: ServerMetadata}
1134 SchedulerHints: {get_param: CephStorageSchedulerHints}
1136 ControllerIpListMap:
1137 type: OS::TripleO::Network::Ports::NetIpListMap
1139 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1140 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1141 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1142 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1143 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1144 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1145 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1148 type: OS::TripleO::AllNodes::SoftwareConfig
1150 compute_hosts: {get_attr: [Compute, hosts_entry]}
1151 controller_hosts: {get_attr: [Controller, hosts_entry]}
1152 controller_ips: {get_attr: [Controller, ip_address]}
1153 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1154 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1155 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1156 controller_names: {get_attr: [Controller, hostname]}
1157 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1158 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1159 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1160 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1161 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1162 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1163 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1164 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1165 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1166 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1167 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1168 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1169 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1170 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1171 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1172 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1173 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1174 DeployIdentifier: {get_param: DeployIdentifier}
1175 UpdateIdentifier: {get_param: UpdateIdentifier}
1178 type: OS::Heat::RandomString
1182 MysqlClusterUniquePart:
1183 type: OS::Heat::RandomString
1188 type: OS::Heat::RandomString
1191 salt: {get_param: RabbitCookieSalt}
1193 # creates the network architecture
1195 type: OS::TripleO::Network
1198 type: OS::Neutron::Port
1199 depends_on: Networks
1201 name: control_virtual_ip
1202 network: {get_param: NeutronControlPlaneID}
1203 fixed_ips: {get_param: ControlFixedIPs}
1204 replacement_policy: AUTO
1207 depends_on: Networks
1208 type: OS::TripleO::Network::Ports::RedisVipPort
1210 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1211 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1212 PortName: redis_virtual_ip
1213 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1216 # The public VIP is on the External net, falls back to ctlplane
1218 depends_on: Networks
1219 type: OS::TripleO::Network::Ports::ExternalVipPort
1221 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1222 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1223 PortName: public_virtual_ip
1224 FixedIPs: {get_param: PublicVirtualFixedIPs}
1226 InternalApiVirtualIP:
1227 depends_on: Networks
1228 type: OS::TripleO::Network::Ports::InternalApiVipPort
1230 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1231 PortName: internal_api_virtual_ip
1234 depends_on: Networks
1235 type: OS::TripleO::Network::Ports::StorageVipPort
1237 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1238 PortName: storage_virtual_ip
1240 StorageMgmtVirtualIP:
1241 depends_on: Networks
1242 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1244 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1245 PortName: storage_management_virtual_ip
1248 type: OS::TripleO::Network::Ports::NetVipMap
1250 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1251 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1252 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1253 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1254 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1255 # No tenant or management VIP required
1258 type: OS::TripleO::VipConfig
1261 type: OS::Heat::StructuredDeployments
1263 config: {get_resource: VipConfig}
1264 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1266 # service VIP mappings
1267 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1268 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1269 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1270 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1271 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1272 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1273 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1274 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1275 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1276 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1277 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1278 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1279 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1280 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1281 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1282 # direct configuration of Virtual IPs for each network
1283 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1284 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1285 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1286 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1287 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1289 ControllerBootstrapNodeConfig:
1290 type: OS::TripleO::BootstrapNode::SoftwareConfig
1292 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1293 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1295 ControllerBootstrapNodeDeployment:
1296 type: OS::Heat::StructuredDeployments
1298 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1299 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1301 ControllerSwiftDeployment:
1302 type: OS::Heat::StructuredDeployments
1304 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1305 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1307 ObjectStorageSwiftDeployment:
1308 type: OS::Heat::StructuredDeployments
1310 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1311 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1313 SwiftDevicesAndProxyConfig:
1314 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1316 controller_swift_devices: {get_attr: [Controller, swift_device]}
1317 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1318 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1320 ComputeCephDeployment:
1321 type: OS::Heat::StructuredDeployments
1323 config: {get_attr: [CephClusterConfig, config_id]}
1324 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1326 ControllerCephDeployment:
1327 type: OS::Heat::StructuredDeployments
1329 config: {get_attr: [CephClusterConfig, config_id]}
1330 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1332 CephStorageCephDeployment:
1333 type: OS::Heat::StructuredDeployments
1335 config: {get_attr: [CephClusterConfig, config_id]}
1336 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1339 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1341 ceph_storage_count: {get_param: CephStorageCount}
1342 ceph_fsid: {get_param: CephClusterFSID}
1343 ceph_mon_key: {get_param: CephMonKey}
1344 ceph_admin_key: {get_param: CephAdminKey}
1345 ceph_client_key: {get_param: CephClientKey}
1346 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1347 ceph_mon_names: {get_attr: [Controller, hostname]}
1348 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1350 ControllerClusterConfig:
1351 type: OS::Heat::StructuredConfig
1353 group: os-apply-config
1356 nodes: {get_attr: [Controller, corosync_node]}
1360 nodes: {get_attr: [Controller, hostname]}
1362 nodes: {get_attr: [Controller, corosync_node]}
1364 nodes: {get_attr: [Controller, corosync_node]}
1366 ControllerClusterDeployment:
1367 type: OS::Heat::StructuredDeployments
1369 config: {get_resource: ControllerClusterConfig}
1370 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1372 ControllerAllNodesDeployment:
1373 type: OS::Heat::StructuredDeployments
1375 config: {get_attr: [allNodesConfig, config_id]}
1376 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1378 ComputeAllNodesDeployment:
1379 type: OS::Heat::StructuredDeployments
1381 config: {get_attr: [allNodesConfig, config_id]}
1382 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1384 BlockStorageAllNodesDeployment:
1385 type: OS::Heat::StructuredDeployments
1387 config: {get_attr: [allNodesConfig, config_id]}
1388 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1390 ObjectStorageAllNodesDeployment:
1391 type: OS::Heat::StructuredDeployments
1393 config: {get_attr: [allNodesConfig, config_id]}
1394 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1396 CephStorageAllNodesDeployment:
1397 type: OS::Heat::StructuredDeployments
1399 config: {get_attr: [allNodesConfig, config_id]}
1400 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1402 # All Nodes Validations
1403 AllNodesValidationConfig:
1404 type: OS::TripleO::AllNodes::Validation
1409 - - {get_attr: [Controller, resource.0.external_ip_address]}
1410 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1411 - {get_attr: [Controller, resource.0.storage_ip_address]}
1412 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1413 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1415 ControllerAllNodesValidationDeployment:
1416 type: OS::Heat::StructuredDeployments
1417 depends_on: ControllerAllNodesDeployment
1419 config: {get_resource: AllNodesValidationConfig}
1420 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1422 ComputeAllNodesValidationDeployment:
1423 type: OS::Heat::StructuredDeployments
1424 depends_on: ComputeAllNodesDeployment
1426 config: {get_resource: AllNodesValidationConfig}
1427 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1429 BlockStorageAllNodesValidationDeployment:
1430 type: OS::Heat::StructuredDeployments
1431 depends_on: BlockStorageAllNodesDeployment
1433 config: {get_resource: AllNodesValidationConfig}
1434 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1436 ObjectStorageAllNodesValidationDeployment:
1437 type: OS::Heat::StructuredDeployments
1438 depends_on: ObjectStorageAllNodesDeployment
1440 config: {get_resource: AllNodesValidationConfig}
1441 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1443 CephStorageAllNodesValidationDeployment:
1444 type: OS::Heat::StructuredDeployments
1445 depends_on: CephStorageAllNodesDeployment
1447 config: {get_resource: AllNodesValidationConfig}
1448 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1450 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1451 # the nested template may configure each role differently (or not at all)
1452 AllNodesExtraConfig:
1453 type: OS::TripleO::AllNodesExtraConfig
1455 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1456 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1457 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1458 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1459 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1461 # Nested stack deployment runs after all other controller deployments
1462 ControllerNodesPostDeployment:
1463 type: OS::TripleO::ControllerPostDeployment
1464 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1466 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1467 NodeConfigIdentifiers:
1468 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1469 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1470 deployment_identifier: {get_param: DeployIdentifier}
1472 ComputeNodesPostDeployment:
1473 type: OS::TripleO::ComputePostDeployment
1474 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1476 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1477 NodeConfigIdentifiers:
1478 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1479 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1480 deployment_identifier: {get_param: DeployIdentifier}
1482 ObjectStorageNodesPostDeployment:
1483 type: OS::TripleO::ObjectStoragePostDeployment
1484 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1486 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1487 NodeConfigIdentifiers:
1488 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1489 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1490 deployment_identifier: {get_param: DeployIdentifier}
1492 BlockStorageNodesPostDeployment:
1493 type: OS::TripleO::BlockStoragePostDeployment
1494 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1496 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1497 NodeConfigIdentifiers:
1498 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1499 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1500 deployment_identifier: {get_param: DeployIdentifier}
1502 CephStorageNodesPostDeployment:
1503 type: OS::TripleO::CephStoragePostDeployment
1504 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1506 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1507 NodeConfigIdentifiers:
1508 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1509 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1510 deployment_identifier: {get_param: DeployIdentifier}
1514 description: URL for the Overcloud Keystone service
1515 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1517 description: Keystone Admin VIP endpoint
1518 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1520 description: Controller VIP for public API endpoints
1521 value: {get_attr: [VipMap, net_ip_map, external]}
1522 CeilometerInternalVip:
1523 description: VIP for Ceilometer API internal endpoint
1524 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1526 description: VIP for Cinder API internal endpoint
1527 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1529 description: VIP for Glance API internal endpoint
1530 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1532 description: VIP for Heat API internal endpoint
1533 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1534 KeystoneInternalVip:
1535 description: VIP for Keystone API internal endpoint
1536 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1538 description: VIP for Neutron API internal endpoint
1539 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1541 description: VIP for Nova API internal endpoint
1542 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1544 description: VIP for Swift Proxy internal endpoint
1545 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1548 The content that should be appended to your /etc/hosts if you want to get
1549 hostname-based access to the deployed nodes (useful for testing without
1551 value: {get_attr: [allNodesConfig, hosts_entries]}