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
289 description: The timezone to be set on nodes.
292 default: 'localdomain'
295 The DNS domain used for the hosts. This should match the dhcp_domain
296 configured in the Undercloud neutron. Defaults to localdomain.
300 Extra properties or metadata passed to Nova for the created nodes in
301 the overcloud. It's accessible via the Nova metadata API.
304 # Controller-specific params
306 description: The keystone auth secret.
309 CinderLVMLoopDeviceSize:
311 description: The size of the loopback file used by the cinder LVM driver.
313 CinderNfsMountOptions:
316 Mount options for NFS mounts used by Cinder NFS backend. Effective
317 when CinderEnableNfsBackend is true.
322 NFS servers used by Cinder NFS backend. Effective when
323 CinderEnableNfsBackend is true.
324 type: comma_delimited_list
326 description: The password for the cinder service account, used by cinder-api.
331 description: The iSCSI helper to use with cinder.
338 controllerExtraConfig:
341 Controller specific configuration to inject into the cluster. Same
342 structure as ExtraConfig.
346 default: overcloud-full
348 - custom_constraint: glance.image
349 OvercloudControlFlavor:
350 description: Flavor for control nodes to request when deploying.
354 - custom_constraint: nova.flavor
355 ControlVirtualInterface:
357 description: Interface where virtual ip will be assigned.
361 description: Whether to enable fencing in Pacemaker or not.
365 description: Whether to use Galera instead of regular MariaDB.
367 ControllerEnableCephStorage:
369 description: Whether to deploy Ceph Storage (OSD) on the Controller
371 ControllerEnableSwiftStorage:
373 description: Whether to enable Swift Storage on the Controller
375 ControllerSchedulerHints:
377 description: Optional scheduler hints to pass to nova
382 Additional configuration to inject into the cluster. The format required
383 may be implementation specific, e.g puppet hieradata. Any role specific
384 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
389 Pacemaker fencing configuration. The JSON should have
390 the following structure:
394 "agent": "AGENT_NAME",
395 "host_mac": "HOST_MAC_ADDRESS",
396 "params": {"PARAM_NAME": "PARAM_VALUE"}
404 "agent": "fence_xvm",
405 "host_mac": "52:54:00:aa:bb:cc",
407 "multicast_address": "225.0.0.12",
408 "port": "baremetal_0",
410 "manage_key_file": true,
411 "key_file": "/etc/fence_xvm.key",
412 "key_file_password": "abcdef"
419 description: The filepath of the file to use for logging messages from Glance.
422 GlanceNotifierStrategy:
423 description: Strategy to use for Glance notification queue
427 description: The password for the glance service account, used by the glance services.
432 description: The short name of the Glance backend to use. Should be one
433 of swift, rbd or file
436 - allowed_values: ['swift', 'file', 'rbd']
438 description: The password for the Heat service account, used by the Heat services.
441 HeatStackDomainAdminPassword:
442 description: Password for heat_domain_admin user.
445 InstanceNameTemplate:
446 default: 'instance-%08x'
447 description: Template string to be used to generate instance names
449 KeystoneCACertificate:
451 description: Keystone self-signed certificate authority certificate.
453 KeystoneSigningCertificate:
455 description: Keystone certificate for verifying token validity.
459 description: Keystone key for signing tokens.
462 KeystoneSSLCertificate:
464 description: Keystone certificate for verifying token validity.
466 KeystoneSSLCertificateKey:
468 description: Keystone key for signing tokens.
471 KeystoneNotificationDriver:
472 description: Comma-separated list of Oslo notification drivers used by Keystone
473 default: ['messaging']
474 type: comma_delimited_list
475 KeystoneNotificationFormat:
476 description: The Keystone notification format
480 - allowed_values: [ 'basic', 'cadf' ]
483 description: Whether to manage IPtables rules.
487 description: Whether IPtables rules should be purged before setting up the ones.
489 MysqlInnodbBufferPoolSize:
491 Specifies the size of the buffer pool in megabytes. Setting to
492 zero should be interpreted as "no value" and will defer to the
497 description: Configures MySQL max_connections config setting
500 NeutronDnsmasqOptions:
501 default: 'dhcp-option-force=26,1400'
502 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
504 NeutronPublicInterfaceDefaultRoute:
506 description: A custom default route for the NeutronPublicInterface.
508 NeutronPublicInterfaceIP:
510 description: A custom IP address to put onto the NeutronPublicInterface.
512 NeutronPublicInterfaceRawDevice:
514 description: If set, the public interface is a vlan with this device as the raw device.
516 PublicVirtualInterface:
519 Specifies the interface where the public-facing virtual ip will be assigned.
520 This should be int_public when a VLAN is being used.
523 description: A random string to be used as a salt when hashing to determine mappings in the ring.
527 description: The password for the swift service account, used by the swift proxy services.
532 description: Value of mount_check in Swift account/container/object -server.conf
537 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
540 description: Partition Power to use when building Swift rings
545 description: How many replicas to use in the swift rings.
547 # Compute-specific params
548 CeilometerComputeAgent:
549 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
553 - allowed_values: ['', Present]
557 HypervisorNeutronPhysicalBridge:
560 An OVS bridge to create on each hypervisor. This defaults to br-ex the
561 same as the control plane nodes, as we have a uniform configuration of
562 the openvswitch agent. Typically should not need to be changed.
564 HypervisorNeutronPublicInterface:
566 description: What interface to add to the HypervisorNeutronPhysicalBridge.
568 NeutronNetworkVLANRanges:
569 default: 'datacentre:1:1000'
571 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
572 Neutron documentation for permitted values. Defaults to permitting any
573 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
574 type: comma_delimited_list
577 default: libvirt.LibvirtDriver
578 NovaComputeExtraConfig:
581 NovaCompute specific configuration to inject into the cluster. Same
582 structure as ExtraConfig.
584 NovaComputeLibvirtType:
587 NovaComputeLibvirtVifDriver:
589 description: Libvirt VIF driver configuration for the network
591 NovaComputeSchedulerHints:
593 description: Optional scheduler hints to pass to nova
595 NovaEnableRbdBackend:
597 description: Whether to enable or not the Rbd backend for Nova
601 default: overcloud-full
603 - custom_constraint: glance.image
606 description: Name of integration bridge used by Open vSwitch
608 NovaSecurityGroupAPI:
610 description: The full class name of the security API class
612 OvercloudComputeFlavor:
613 description: Use this flavor
617 - custom_constraint: nova.flavor
620 NeutronTenantNetwork: tenant
621 CeilometerApiNetwork: internal_api
622 MongoDbNetwork: internal_api
623 CinderApiNetwork: internal_api
624 CinderIscsiNetwork: storage
625 GlanceApiNetwork: storage
626 GlanceRegistryNetwork: internal_api
627 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
628 KeystonePublicApiNetwork: internal_api
629 NeutronApiNetwork: internal_api
630 HeatApiNetwork: internal_api
631 NovaApiNetwork: internal_api
632 NovaMetadataNetwork: internal_api
633 NovaVncProxyNetwork: internal_api
634 SwiftMgmtNetwork: storage_mgmt
635 SwiftProxyNetwork: storage
636 HorizonNetwork: internal_api
637 MemcachedNetwork: internal_api
638 RabbitMqNetwork: internal_api
639 RedisNetwork: internal_api
640 MysqlNetwork: internal_api
641 CephClusterNetwork: storage_mgmt
642 CephPublicNetwork: storage
643 ControllerHostnameResolveNetwork: internal_api
644 ComputeHostnameResolveNetwork: internal_api
645 BlockStorageHostnameResolveNetwork: internal_api
646 ObjectStorageHostnameResolveNetwork: internal_api
647 CephStorageHostnameResolveNetwork: storage
648 description: Mapping of service_name -> network name. Typically set
649 via parameter_defaults in the resource registry.
652 # Block storage specific parameters
657 default: overcloud-full
659 OvercloudBlockStorageFlavor:
660 description: Flavor for block storage nodes to request when deploying.
664 - custom_constraint: nova.flavor
665 BlockStorageExtraConfig:
668 BlockStorage specific configuration to inject into the cluster. Same
669 structure as ExtraConfig.
671 BlockStorageSchedulerHints:
673 description: Optional scheduler hints to pass to nova
677 # Object storage specific parameters
681 OvercloudSwiftStorageFlavor:
682 description: Flavor for Swift storage nodes to request when deploying.
686 - custom_constraint: nova.flavor
688 default: overcloud-full
690 ObjectStorageExtraConfig:
693 ObjectStorage specific configuration to inject into the cluster. Same
694 structure as ExtraConfig.
696 ObjectStorageSchedulerHints:
698 description: Optional scheduler hints to pass to nova
701 # Ceph storage specific parameters
706 default: overcloud-full
708 OvercloudCephStorageFlavor:
710 description: Flavor for Ceph storage nodes to request when deploying.
713 - custom_constraint: nova.flavor
714 CephStorageExtraConfig:
717 CephStorage specific configuration to inject into the cluster. Same
718 structure as ExtraConfig.
720 CephStorageSchedulerHints:
722 description: Optional scheduler hints to pass to nova
726 # Hostname format for each role
727 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
728 # and %stackname% is replaced with OS::stack_name in the template below.
729 # If you want to use the heat generated names, pass '' (empty string).
730 ControllerHostnameFormat:
732 description: Format for Controller node hostnames
733 default: '%stackname%-controller-%index%'
734 ComputeHostnameFormat:
736 description: Format for Compute node hostnames
737 default: '%stackname%-novacompute-%index%'
738 BlockStorageHostnameFormat:
740 description: Format for BlockStorage node hostnames
741 default: '%stackname%-blockstorage-%index%'
742 ObjectStorageHostnameFormat:
744 description: Format for SwiftStorage node hostnames
745 default: '%stackname%-objectstorage-%index%'
746 CephStorageHostnameFormat:
748 description: Format for CephStorage node hostnames
749 default: '%stackname%-cephstorage-%index%'
751 # Identifiers to trigger tasks on nodes
756 Setting to a previously unused value during stack-update will trigger
757 package update on all nodes
762 Setting this to a unique value will re-run any deployment tasks which
763 perform configuration on a Heat stack-update.
765 # If you want to remove a specific node from a resource group, you can pass
766 # the node name or id as a <Group>RemovalPolicies parameter, for example:
767 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
768 ControllerRemovalPolicies:
772 List of resources to be removed from ControllerResourceGroup when
773 doing an update which requires removal of specific resources.
774 ComputeRemovalPolicies:
778 List of resources to be removed from ComputeResourceGroup when
779 doing an update which requires removal of specific resources.
780 BlockStorageRemovalPolicies:
784 List of resources to be removed from BlockStorageResourceGroup when
785 doing an update which requires removal of specific resources.
786 ObjectStorageRemovalPolicies:
790 List of resources to be removed from ObjectStorageResourceGroup when
791 doing an update which requires removal of specific resources.
792 CephStorageRemovalPolicies:
796 List of resources to be removed from CephStorageResourceGroup when
797 doing an update which requires removal of specific resources.
802 HeatAuthEncryptionKey:
803 type: OS::Heat::RandomString
806 type: OS::Heat::RandomString
811 type: OS::Heat::RandomString
816 type: OS::TripleO::EndpointMap
818 CloudName: {get_param: CloudName}
819 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
820 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
821 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
822 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
823 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
824 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
825 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
826 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
827 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
828 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
829 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
830 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
833 type: OS::Heat::ResourceGroup
836 count: {get_param: ControllerCount}
837 removal_policies: {get_param: ControllerRemovalPolicies}
839 type: OS::TripleO::Controller
841 AdminPassword: {get_param: AdminPassword}
842 AdminToken: {get_param: AdminToken}
843 CeilometerBackend: {get_param: CeilometerBackend}
844 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
845 CeilometerPassword: {get_param: CeilometerPassword}
846 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
847 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
848 CinderNfsServers: {get_param: CinderNfsServers}
849 CinderPassword: {get_param: CinderPassword}
850 CinderISCSIHelper: {get_param: CinderISCSIHelper}
851 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
852 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
853 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
854 CloudName: {get_param: CloudName}
855 CloudDomain: {get_param: CloudDomain}
856 ControlVirtualInterface: {get_param: ControlVirtualInterface}
857 ControllerExtraConfig: {get_param: controllerExtraConfig}
858 Debug: {get_param: Debug}
859 EnableFencing: {get_param: EnableFencing}
860 ManageFirewall: {get_param: ManageFirewall}
861 PurgeFirewallRules: {get_param: PurgeFirewallRules}
862 EnableGalera: {get_param: EnableGalera}
863 EnableCephStorage: {get_param: ControllerEnableCephStorage}
864 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
865 ExtraConfig: {get_param: ExtraConfig}
866 FencingConfig: {get_param: FencingConfig}
867 Flavor: {get_param: OvercloudControlFlavor}
868 GlancePassword: {get_param: GlancePassword}
869 GlanceBackend: {get_param: GlanceBackend}
870 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
871 GlanceLogFile: {get_param: GlanceLogFile}
872 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
873 HeatPassword: {get_param: HeatPassword}
874 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
875 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
876 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
877 HorizonSecret: {get_resource: HorizonSecret}
878 Image: {get_param: controllerImage}
879 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
880 InstanceNameTemplate: {get_param: InstanceNameTemplate}
881 KeyName: {get_param: KeyName}
882 KeystoneCACertificate: {get_param: KeystoneCACertificate}
883 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
884 KeystoneSigningKey: {get_param: KeystoneSigningKey}
885 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
886 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
887 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
888 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
889 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
890 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
891 MysqlMaxConnections: {get_param: MysqlMaxConnections}
892 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
893 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
894 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
895 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
896 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
897 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
898 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
899 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
900 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
901 NeutronPublicInterface: {get_param: NeutronPublicInterface}
902 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
903 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
904 NeutronPassword: {get_param: NeutronPassword}
905 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
906 NeutronDVR: {get_param: NeutronDVR}
907 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
908 NeutronAgentMode: {get_param: NeutronAgentMode}
909 NeutronCorePlugin: {get_param: NeutronCorePlugin}
910 NeutronServicePlugins: {get_param: NeutronServicePlugins}
911 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
912 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
913 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
914 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
915 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
916 NeutronL3HA: {get_param: NeutronL3HA}
917 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
918 NeutronNetworkType: {get_param: NeutronNetworkType}
919 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
920 NovaPassword: {get_param: NovaPassword}
921 NtpServer: {get_param: NtpServer}
922 MongoDbNoJournal: {get_param: MongoDbNoJournal}
923 PcsdPassword: {get_resource: PcsdPassword}
924 PublicVirtualInterface: {get_param: PublicVirtualInterface}
925 RabbitPassword: {get_param: RabbitPassword}
926 RabbitUserName: {get_param: RabbitUserName}
927 RabbitCookie: {get_attr: [RabbitCookie, value]}
928 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
929 RabbitClientPort: {get_param: RabbitClientPort}
930 RabbitFDLimit: {get_param: RabbitFDLimit}
931 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
932 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
933 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
934 SwiftHashSuffix: {get_param: SwiftHashSuffix}
935 SwiftMountCheck: {get_param: SwiftMountCheck}
936 SwiftMinPartHours: {get_param: SwiftMinPartHours}
937 SwiftPartPower: {get_param: SwiftPartPower}
938 SwiftPassword: {get_param: SwiftPassword}
939 SwiftReplicas: { get_param: SwiftReplicas}
940 TimeZone: {get_param: TimeZone}
941 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
942 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
943 ServiceNetMap: {get_param: ServiceNetMap}
944 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
945 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
946 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
947 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
948 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
949 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
950 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
951 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
952 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
953 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
954 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
955 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
956 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
957 UpdateIdentifier: {get_param: UpdateIdentifier}
960 template: {get_param: ControllerHostnameFormat}
962 '%stackname%': {get_param: 'OS::stack_name'}
964 ServerMetadata: {get_param: ServerMetadata}
965 SchedulerHints: {get_param: ControllerSchedulerHints}
968 type: OS::Heat::ResourceGroup
971 count: {get_param: ComputeCount}
972 removal_policies: {get_param: ComputeRemovalPolicies}
974 type: OS::TripleO::Compute
976 AdminPassword: {get_param: AdminPassword}
977 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
978 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
979 CeilometerPassword: {get_param: CeilometerPassword}
980 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
981 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
982 Debug: {get_param: Debug}
983 ExtraConfig: {get_param: ExtraConfig}
984 Flavor: {get_param: OvercloudComputeFlavor}
985 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
986 Image: {get_param: NovaImage}
987 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
988 KeyName: {get_param: KeyName}
989 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
990 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
991 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
992 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
993 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
994 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
995 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
996 NeutronNetworkType: {get_param: NeutronNetworkType}
997 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
998 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
999 NeutronPassword: {get_param: NeutronPassword}
1000 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1001 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1002 NeutronDVR: {get_param: NeutronDVR}
1003 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1004 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1005 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1006 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1007 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1008 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1009 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1010 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1011 # L3 HA and Failover is not relevant for Computes, should be removed
1012 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1013 NeutronL3HA: {get_param: NeutronL3HA}
1014 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1015 NovaComputeDriver: {get_param: NovaComputeDriver}
1016 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1017 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1018 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1019 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1020 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1021 NovaPassword: {get_param: NovaPassword}
1022 NovaOVSBridge: {get_param: NovaOVSBridge}
1023 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1024 NtpServer: {get_param: NtpServer}
1025 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1026 RabbitPassword: {get_param: RabbitPassword}
1027 RabbitUserName: {get_param: RabbitUserName}
1028 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1029 RabbitClientPort: {get_param: RabbitClientPort}
1030 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1031 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1032 ServiceNetMap: {get_param: ServiceNetMap}
1033 TimeZone: {get_param: TimeZone}
1034 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1035 UpdateIdentifier: {get_param: UpdateIdentifier}
1038 template: {get_param: ComputeHostnameFormat}
1040 '%stackname%': {get_param: 'OS::stack_name'}
1041 CloudDomain: {get_param: CloudDomain}
1042 ServerMetadata: {get_param: ServerMetadata}
1043 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1046 type: OS::Heat::ResourceGroup
1047 depends_on: Networks
1049 count: {get_param: BlockStorageCount}
1050 removal_policies: {get_param: BlockStorageRemovalPolicies}
1052 type: OS::TripleO::BlockStorage
1054 Debug: {get_param: Debug}
1055 Image: {get_param: BlockStorageImage}
1056 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1057 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1058 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1059 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1060 CinderPassword: {get_param: CinderPassword}
1061 KeyName: {get_param: KeyName}
1062 Flavor: {get_param: OvercloudBlockStorageFlavor}
1063 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1064 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1065 RabbitPassword: {get_param: RabbitPassword}
1066 RabbitUserName: {get_param: RabbitUserName}
1067 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1068 RabbitClientPort: {get_param: RabbitClientPort}
1069 TimeZone: {get_param: TimeZone}
1070 NtpServer: {get_param: NtpServer}
1071 UpdateIdentifier: {get_param: UpdateIdentifier}
1074 template: {get_param: BlockStorageHostnameFormat}
1076 '%stackname%': {get_param: 'OS::stack_name'}
1077 ServiceNetMap: {get_param: ServiceNetMap}
1078 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1079 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1080 ExtraConfig: {get_param: ExtraConfig}
1081 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1082 CloudDomain: {get_param: CloudDomain}
1083 ServerMetadata: {get_param: ServerMetadata}
1084 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1087 type: OS::Heat::ResourceGroup
1088 depends_on: Networks
1090 count: {get_param: ObjectStorageCount}
1091 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1093 type: OS::TripleO::ObjectStorage
1095 KeyName: {get_param: KeyName}
1096 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1097 HashSuffix: {get_param: SwiftHashSuffix}
1098 MountCheck: {get_param: SwiftMountCheck}
1099 MinPartHours: {get_param: SwiftMinPartHours}
1100 PartPower: {get_param: SwiftPartPower}
1101 Image: {get_param: SwiftStorageImage}
1102 Replicas: { get_param: SwiftReplicas}
1103 TimeZone: {get_param: TimeZone}
1104 NtpServer: {get_param: NtpServer}
1105 UpdateIdentifier: {get_param: UpdateIdentifier}
1106 ServiceNetMap: {get_param: ServiceNetMap}
1109 template: {get_param: ObjectStorageHostnameFormat}
1111 '%stackname%': {get_param: 'OS::stack_name'}
1112 ExtraConfig: {get_param: ExtraConfig}
1113 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1114 CloudDomain: {get_param: CloudDomain}
1115 ServerMetadata: {get_param: ServerMetadata}
1116 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1119 type: OS::Heat::ResourceGroup
1120 depends_on: Networks
1122 count: {get_param: CephStorageCount}
1123 removal_policies: {get_param: CephStorageRemovalPolicies}
1125 type: OS::TripleO::CephStorage
1127 Image: {get_param: CephStorageImage}
1128 KeyName: {get_param: KeyName}
1129 Flavor: {get_param: OvercloudCephStorageFlavor}
1130 NtpServer: {get_param: NtpServer}
1131 ServiceNetMap: {get_param: ServiceNetMap}
1132 TimeZone: {get_param: TimeZone}
1133 UpdateIdentifier: {get_param: UpdateIdentifier}
1136 template: {get_param: CephStorageHostnameFormat}
1138 '%stackname%': {get_param: 'OS::stack_name'}
1139 ExtraConfig: {get_param: ExtraConfig}
1140 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1141 CloudDomain: {get_param: CloudDomain}
1142 ServerMetadata: {get_param: ServerMetadata}
1143 SchedulerHints: {get_param: CephStorageSchedulerHints}
1145 ControllerIpListMap:
1146 type: OS::TripleO::Network::Ports::NetIpListMap
1148 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1149 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1150 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1151 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1152 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1153 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1154 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1157 type: OS::TripleO::AllNodes::SoftwareConfig
1159 compute_hosts: {get_attr: [Compute, hosts_entry]}
1160 controller_hosts: {get_attr: [Controller, hosts_entry]}
1161 controller_ips: {get_attr: [Controller, ip_address]}
1162 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1163 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1164 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1165 controller_names: {get_attr: [Controller, hostname]}
1166 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1167 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1168 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1169 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1170 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1171 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1172 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1173 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1174 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1175 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1176 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1177 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1178 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1179 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1180 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1181 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1182 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1183 DeployIdentifier: {get_param: DeployIdentifier}
1184 UpdateIdentifier: {get_param: UpdateIdentifier}
1187 type: OS::Heat::RandomString
1191 MysqlClusterUniquePart:
1192 type: OS::Heat::RandomString
1197 type: OS::Heat::RandomString
1200 salt: {get_param: RabbitCookieSalt}
1202 # creates the network architecture
1204 type: OS::TripleO::Network
1207 type: OS::Neutron::Port
1208 depends_on: Networks
1210 name: control_virtual_ip
1211 network: {get_param: NeutronControlPlaneID}
1212 fixed_ips: {get_param: ControlFixedIPs}
1213 replacement_policy: AUTO
1216 depends_on: Networks
1217 type: OS::TripleO::Network::Ports::RedisVipPort
1219 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1220 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1221 PortName: redis_virtual_ip
1222 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1225 # The public VIP is on the External net, falls back to ctlplane
1227 depends_on: Networks
1228 type: OS::TripleO::Network::Ports::ExternalVipPort
1230 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1231 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1232 PortName: public_virtual_ip
1233 FixedIPs: {get_param: PublicVirtualFixedIPs}
1235 InternalApiVirtualIP:
1236 depends_on: Networks
1237 type: OS::TripleO::Network::Ports::InternalApiVipPort
1239 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1240 PortName: internal_api_virtual_ip
1243 depends_on: Networks
1244 type: OS::TripleO::Network::Ports::StorageVipPort
1246 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1247 PortName: storage_virtual_ip
1249 StorageMgmtVirtualIP:
1250 depends_on: Networks
1251 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1253 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1254 PortName: storage_management_virtual_ip
1257 type: OS::TripleO::Network::Ports::NetVipMap
1259 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1260 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1261 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1262 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1263 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1264 # No tenant or management VIP required
1267 type: OS::TripleO::VipConfig
1270 type: OS::Heat::StructuredDeployments
1272 config: {get_resource: VipConfig}
1273 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1275 # service VIP mappings
1276 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1277 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1278 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1279 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1280 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1281 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1282 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1283 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1284 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1285 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1286 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1287 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1288 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1289 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1290 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1291 # direct configuration of Virtual IPs for each network
1292 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1293 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1294 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1295 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1296 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1298 ControllerBootstrapNodeConfig:
1299 type: OS::TripleO::BootstrapNode::SoftwareConfig
1301 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1302 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1304 ControllerBootstrapNodeDeployment:
1305 type: OS::Heat::StructuredDeployments
1307 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1308 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1310 ControllerSwiftDeployment:
1311 type: OS::Heat::StructuredDeployments
1313 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1314 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1316 ObjectStorageSwiftDeployment:
1317 type: OS::Heat::StructuredDeployments
1319 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1320 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1322 SwiftDevicesAndProxyConfig:
1323 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1325 controller_swift_devices: {get_attr: [Controller, swift_device]}
1326 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1327 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1329 ComputeCephDeployment:
1330 type: OS::Heat::StructuredDeployments
1332 config: {get_attr: [CephClusterConfig, config_id]}
1333 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1335 ControllerCephDeployment:
1336 type: OS::Heat::StructuredDeployments
1338 config: {get_attr: [CephClusterConfig, config_id]}
1339 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1341 CephStorageCephDeployment:
1342 type: OS::Heat::StructuredDeployments
1344 config: {get_attr: [CephClusterConfig, config_id]}
1345 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1348 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1350 ceph_storage_count: {get_param: CephStorageCount}
1351 ceph_fsid: {get_param: CephClusterFSID}
1352 ceph_mon_key: {get_param: CephMonKey}
1353 ceph_admin_key: {get_param: CephAdminKey}
1354 ceph_client_key: {get_param: CephClientKey}
1355 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1356 ceph_mon_names: {get_attr: [Controller, hostname]}
1357 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1359 ControllerClusterConfig:
1360 type: OS::Heat::StructuredConfig
1362 group: os-apply-config
1365 nodes: {get_attr: [Controller, corosync_node]}
1369 nodes: {get_attr: [Controller, hostname]}
1371 nodes: {get_attr: [Controller, corosync_node]}
1373 nodes: {get_attr: [Controller, corosync_node]}
1375 ControllerClusterDeployment:
1376 type: OS::Heat::StructuredDeployments
1378 config: {get_resource: ControllerClusterConfig}
1379 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1381 ControllerAllNodesDeployment:
1382 type: OS::Heat::StructuredDeployments
1384 config: {get_attr: [allNodesConfig, config_id]}
1385 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1387 ComputeAllNodesDeployment:
1388 type: OS::Heat::StructuredDeployments
1390 config: {get_attr: [allNodesConfig, config_id]}
1391 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1393 BlockStorageAllNodesDeployment:
1394 type: OS::Heat::StructuredDeployments
1396 config: {get_attr: [allNodesConfig, config_id]}
1397 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1399 ObjectStorageAllNodesDeployment:
1400 type: OS::Heat::StructuredDeployments
1402 config: {get_attr: [allNodesConfig, config_id]}
1403 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1405 CephStorageAllNodesDeployment:
1406 type: OS::Heat::StructuredDeployments
1408 config: {get_attr: [allNodesConfig, config_id]}
1409 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1411 # All Nodes Validations
1412 AllNodesValidationConfig:
1413 type: OS::TripleO::AllNodes::Validation
1418 - - {get_attr: [Controller, resource.0.external_ip_address]}
1419 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1420 - {get_attr: [Controller, resource.0.storage_ip_address]}
1421 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1422 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1424 ControllerAllNodesValidationDeployment:
1425 type: OS::Heat::StructuredDeployments
1426 depends_on: ControllerAllNodesDeployment
1428 config: {get_resource: AllNodesValidationConfig}
1429 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1431 ComputeAllNodesValidationDeployment:
1432 type: OS::Heat::StructuredDeployments
1433 depends_on: ComputeAllNodesDeployment
1435 config: {get_resource: AllNodesValidationConfig}
1436 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1438 BlockStorageAllNodesValidationDeployment:
1439 type: OS::Heat::StructuredDeployments
1440 depends_on: BlockStorageAllNodesDeployment
1442 config: {get_resource: AllNodesValidationConfig}
1443 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1445 ObjectStorageAllNodesValidationDeployment:
1446 type: OS::Heat::StructuredDeployments
1447 depends_on: ObjectStorageAllNodesDeployment
1449 config: {get_resource: AllNodesValidationConfig}
1450 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1452 CephStorageAllNodesValidationDeployment:
1453 type: OS::Heat::StructuredDeployments
1454 depends_on: CephStorageAllNodesDeployment
1456 config: {get_resource: AllNodesValidationConfig}
1457 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1459 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1460 # the nested template may configure each role differently (or not at all)
1461 AllNodesExtraConfig:
1462 type: OS::TripleO::AllNodesExtraConfig
1464 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1465 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1466 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1467 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1468 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1470 # Nested stack deployment runs after all other controller deployments
1471 ControllerNodesPostDeployment:
1472 type: OS::TripleO::ControllerPostDeployment
1473 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1475 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1476 NodeConfigIdentifiers:
1477 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1478 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1479 deployment_identifier: {get_param: DeployIdentifier}
1481 ComputeNodesPostDeployment:
1482 type: OS::TripleO::ComputePostDeployment
1483 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1485 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1486 NodeConfigIdentifiers:
1487 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1488 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1489 deployment_identifier: {get_param: DeployIdentifier}
1491 ObjectStorageNodesPostDeployment:
1492 type: OS::TripleO::ObjectStoragePostDeployment
1493 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1495 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1496 NodeConfigIdentifiers:
1497 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1498 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1499 deployment_identifier: {get_param: DeployIdentifier}
1501 BlockStorageNodesPostDeployment:
1502 type: OS::TripleO::BlockStoragePostDeployment
1503 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1505 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1506 NodeConfigIdentifiers:
1507 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1508 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1509 deployment_identifier: {get_param: DeployIdentifier}
1511 CephStorageNodesPostDeployment:
1512 type: OS::TripleO::CephStoragePostDeployment
1513 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1515 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1516 NodeConfigIdentifiers:
1517 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1518 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1519 deployment_identifier: {get_param: DeployIdentifier}
1523 description: URL for the Overcloud Keystone service
1524 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1526 description: Keystone Admin VIP endpoint
1527 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1529 description: Controller VIP for public API endpoints
1530 value: {get_attr: [VipMap, net_ip_map, external]}
1531 CeilometerInternalVip:
1532 description: VIP for Ceilometer API internal endpoint
1533 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1535 description: VIP for Cinder API internal endpoint
1536 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1538 description: VIP for Glance API internal endpoint
1539 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1541 description: VIP for Heat API internal endpoint
1542 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1543 KeystoneInternalVip:
1544 description: VIP for Keystone API internal endpoint
1545 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1547 description: VIP for Neutron API internal endpoint
1548 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1550 description: VIP for Nova API internal endpoint
1551 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1553 description: VIP for Swift Proxy internal endpoint
1554 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1557 The content that should be appended to your /etc/hosts if you want to get
1558 hostname-based access to the deployed nodes (useful for testing without
1560 value: {get_attr: [allNodesConfig, hosts_entries]}