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:4094", ]
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:4094", ]
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 description: The password for the sahara service account.
551 # Compute-specific params
552 CeilometerComputeAgent:
553 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
557 - allowed_values: ['', Present]
561 HypervisorNeutronPhysicalBridge:
564 An OVS bridge to create on each hypervisor. This defaults to br-ex the
565 same as the control plane nodes, as we have a uniform configuration of
566 the openvswitch agent. Typically should not need to be changed.
568 HypervisorNeutronPublicInterface:
570 description: What interface to add to the HypervisorNeutronPhysicalBridge.
572 NeutronNetworkVLANRanges:
573 default: 'datacentre:1:1000'
575 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
576 Neutron documentation for permitted values. Defaults to permitting any
577 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
578 type: comma_delimited_list
581 default: libvirt.LibvirtDriver
582 NovaComputeExtraConfig:
585 NovaCompute specific configuration to inject into the cluster. Same
586 structure as ExtraConfig.
588 NovaComputeLibvirtType:
591 NovaComputeLibvirtVifDriver:
593 description: Libvirt VIF driver configuration for the network
595 NovaComputeSchedulerHints:
597 description: Optional scheduler hints to pass to nova
599 NovaEnableRbdBackend:
601 description: Whether to enable or not the Rbd backend for Nova
605 default: overcloud-full
607 - custom_constraint: glance.image
610 description: Name of integration bridge used by Open vSwitch
612 NovaSecurityGroupAPI:
614 description: The full class name of the security API class
616 OvercloudComputeFlavor:
617 description: Use this flavor
621 - custom_constraint: nova.flavor
624 NeutronTenantNetwork: tenant
625 CeilometerApiNetwork: internal_api
626 MongoDbNetwork: internal_api
627 CinderApiNetwork: internal_api
628 CinderIscsiNetwork: storage
629 GlanceApiNetwork: storage
630 GlanceRegistryNetwork: internal_api
631 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
632 KeystonePublicApiNetwork: internal_api
633 NeutronApiNetwork: internal_api
634 HeatApiNetwork: internal_api
635 NovaApiNetwork: internal_api
636 NovaMetadataNetwork: internal_api
637 NovaVncProxyNetwork: internal_api
638 SwiftMgmtNetwork: storage_mgmt
639 SwiftProxyNetwork: storage
640 SaharaApiNetwork: internal_api
641 HorizonNetwork: internal_api
642 MemcachedNetwork: internal_api
643 RabbitMqNetwork: internal_api
644 RedisNetwork: internal_api
645 MysqlNetwork: internal_api
646 CephClusterNetwork: storage_mgmt
647 CephPublicNetwork: storage
648 ControllerHostnameResolveNetwork: internal_api
649 ComputeHostnameResolveNetwork: internal_api
650 BlockStorageHostnameResolveNetwork: internal_api
651 ObjectStorageHostnameResolveNetwork: internal_api
652 CephStorageHostnameResolveNetwork: storage
653 description: Mapping of service_name -> network name. Typically set
654 via parameter_defaults in the resource registry.
657 # Block storage specific parameters
662 default: overcloud-full
664 OvercloudBlockStorageFlavor:
665 description: Flavor for block storage nodes to request when deploying.
669 - custom_constraint: nova.flavor
670 BlockStorageExtraConfig:
673 BlockStorage specific configuration to inject into the cluster. Same
674 structure as ExtraConfig.
676 BlockStorageSchedulerHints:
678 description: Optional scheduler hints to pass to nova
682 # Object storage specific parameters
686 OvercloudSwiftStorageFlavor:
687 description: Flavor for Swift storage nodes to request when deploying.
691 - custom_constraint: nova.flavor
693 default: overcloud-full
695 ObjectStorageExtraConfig:
698 ObjectStorage specific configuration to inject into the cluster. Same
699 structure as ExtraConfig.
701 ObjectStorageSchedulerHints:
703 description: Optional scheduler hints to pass to nova
706 # Ceph storage specific parameters
711 default: overcloud-full
713 OvercloudCephStorageFlavor:
715 description: Flavor for Ceph storage nodes to request when deploying.
718 - custom_constraint: nova.flavor
719 CephStorageExtraConfig:
722 CephStorage specific configuration to inject into the cluster. Same
723 structure as ExtraConfig.
725 CephStorageSchedulerHints:
727 description: Optional scheduler hints to pass to nova
731 # Hostname format for each role
732 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
733 # and %stackname% is replaced with OS::stack_name in the template below.
734 # If you want to use the heat generated names, pass '' (empty string).
735 ControllerHostnameFormat:
737 description: Format for Controller node hostnames
738 default: '%stackname%-controller-%index%'
739 ComputeHostnameFormat:
741 description: Format for Compute node hostnames
742 default: '%stackname%-novacompute-%index%'
743 BlockStorageHostnameFormat:
745 description: Format for BlockStorage node hostnames
746 default: '%stackname%-blockstorage-%index%'
747 ObjectStorageHostnameFormat:
749 description: Format for SwiftStorage node hostnames
750 default: '%stackname%-objectstorage-%index%'
751 CephStorageHostnameFormat:
753 description: Format for CephStorage node hostnames
754 default: '%stackname%-cephstorage-%index%'
756 # Identifiers to trigger tasks on nodes
761 Setting to a previously unused value during stack-update will trigger
762 package update on all nodes
767 Setting this to a unique value will re-run any deployment tasks which
768 perform configuration on a Heat stack-update.
770 # If you want to remove a specific node from a resource group, you can pass
771 # the node name or id as a <Group>RemovalPolicies parameter, for example:
772 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
773 ControllerRemovalPolicies:
777 List of resources to be removed from ControllerResourceGroup when
778 doing an update which requires removal of specific resources.
779 ComputeRemovalPolicies:
783 List of resources to be removed from ComputeResourceGroup when
784 doing an update which requires removal of specific resources.
785 BlockStorageRemovalPolicies:
789 List of resources to be removed from BlockStorageResourceGroup when
790 doing an update which requires removal of specific resources.
791 ObjectStorageRemovalPolicies:
795 List of resources to be removed from ObjectStorageResourceGroup when
796 doing an update which requires removal of specific resources.
797 CephStorageRemovalPolicies:
801 List of resources to be removed from CephStorageResourceGroup when
802 doing an update which requires removal of specific resources.
807 HeatAuthEncryptionKey:
808 type: OS::Heat::RandomString
811 type: OS::Heat::RandomString
816 type: OS::Heat::RandomString
821 type: OS::TripleO::EndpointMap
823 CloudName: {get_param: CloudName}
824 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
825 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
826 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
827 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
828 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
829 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
830 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
831 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
832 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
833 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
834 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
835 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
836 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
839 type: OS::Heat::ResourceGroup
842 count: {get_param: ControllerCount}
843 removal_policies: {get_param: ControllerRemovalPolicies}
845 type: OS::TripleO::Controller
847 AdminPassword: {get_param: AdminPassword}
848 AdminToken: {get_param: AdminToken}
849 CeilometerBackend: {get_param: CeilometerBackend}
850 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
851 CeilometerPassword: {get_param: CeilometerPassword}
852 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
853 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
854 CinderNfsServers: {get_param: CinderNfsServers}
855 CinderPassword: {get_param: CinderPassword}
856 CinderISCSIHelper: {get_param: CinderISCSIHelper}
857 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
858 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
859 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
860 CloudDomain: {get_param: CloudDomain}
861 ControlVirtualInterface: {get_param: ControlVirtualInterface}
862 ControllerExtraConfig: {get_param: controllerExtraConfig}
863 Debug: {get_param: Debug}
864 EnableFencing: {get_param: EnableFencing}
865 ManageFirewall: {get_param: ManageFirewall}
866 PurgeFirewallRules: {get_param: PurgeFirewallRules}
867 EnableGalera: {get_param: EnableGalera}
868 EnableCephStorage: {get_param: ControllerEnableCephStorage}
869 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
870 ExtraConfig: {get_param: ExtraConfig}
871 FencingConfig: {get_param: FencingConfig}
872 Flavor: {get_param: OvercloudControlFlavor}
873 GlancePassword: {get_param: GlancePassword}
874 GlanceBackend: {get_param: GlanceBackend}
875 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
876 GlanceLogFile: {get_param: GlanceLogFile}
877 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
878 HeatPassword: {get_param: HeatPassword}
879 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
880 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
881 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
882 HorizonSecret: {get_resource: HorizonSecret}
883 Image: {get_param: controllerImage}
884 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
885 InstanceNameTemplate: {get_param: InstanceNameTemplate}
886 KeyName: {get_param: KeyName}
887 KeystoneCACertificate: {get_param: KeystoneCACertificate}
888 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
889 KeystoneSigningKey: {get_param: KeystoneSigningKey}
890 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
891 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
892 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
893 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
894 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
895 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
896 MysqlMaxConnections: {get_param: MysqlMaxConnections}
897 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
898 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
899 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
900 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
901 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
902 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
903 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
904 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
905 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
906 NeutronPublicInterface: {get_param: NeutronPublicInterface}
907 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
908 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
909 NeutronPassword: {get_param: NeutronPassword}
910 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
911 NeutronDVR: {get_param: NeutronDVR}
912 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
913 NeutronAgentMode: {get_param: NeutronAgentMode}
914 NeutronCorePlugin: {get_param: NeutronCorePlugin}
915 NeutronServicePlugins: {get_param: NeutronServicePlugins}
916 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
917 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
918 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
919 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
920 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
921 NeutronL3HA: {get_param: NeutronL3HA}
922 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
923 NeutronNetworkType: {get_param: NeutronNetworkType}
924 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
925 NovaPassword: {get_param: NovaPassword}
926 NtpServer: {get_param: NtpServer}
927 MongoDbNoJournal: {get_param: MongoDbNoJournal}
928 PcsdPassword: {get_resource: PcsdPassword}
929 PublicVirtualInterface: {get_param: PublicVirtualInterface}
930 RabbitPassword: {get_param: RabbitPassword}
931 RabbitUserName: {get_param: RabbitUserName}
932 RabbitCookie: {get_attr: [RabbitCookie, value]}
933 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
934 RabbitClientPort: {get_param: RabbitClientPort}
935 RabbitFDLimit: {get_param: RabbitFDLimit}
936 SaharaPassword: {get_param: SaharaPassword}
937 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
938 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
939 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
940 SwiftHashSuffix: {get_param: SwiftHashSuffix}
941 SwiftMountCheck: {get_param: SwiftMountCheck}
942 SwiftMinPartHours: {get_param: SwiftMinPartHours}
943 SwiftPartPower: {get_param: SwiftPartPower}
944 SwiftPassword: {get_param: SwiftPassword}
945 SwiftReplicas: { get_param: SwiftReplicas}
946 TimeZone: {get_param: TimeZone}
947 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
948 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
949 ServiceNetMap: {get_param: ServiceNetMap}
950 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
951 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
952 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
953 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
954 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
955 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
956 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
957 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
958 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
959 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
960 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
961 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
962 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
963 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
964 UpdateIdentifier: {get_param: UpdateIdentifier}
967 template: {get_param: ControllerHostnameFormat}
969 '%stackname%': {get_param: 'OS::stack_name'}
971 ServerMetadata: {get_param: ServerMetadata}
972 SchedulerHints: {get_param: ControllerSchedulerHints}
975 type: OS::Heat::ResourceGroup
978 count: {get_param: ComputeCount}
979 removal_policies: {get_param: ComputeRemovalPolicies}
981 type: OS::TripleO::Compute
983 AdminPassword: {get_param: AdminPassword}
984 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
985 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
986 CeilometerPassword: {get_param: CeilometerPassword}
987 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
988 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
989 Debug: {get_param: Debug}
990 ExtraConfig: {get_param: ExtraConfig}
991 Flavor: {get_param: OvercloudComputeFlavor}
992 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
993 Image: {get_param: NovaImage}
994 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
995 KeyName: {get_param: KeyName}
996 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
997 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
998 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
999 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1000 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1001 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1002 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1003 NeutronNetworkType: {get_param: NeutronNetworkType}
1004 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1005 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1006 NeutronPassword: {get_param: NeutronPassword}
1007 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1008 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1009 NeutronDVR: {get_param: NeutronDVR}
1010 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1011 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1012 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1013 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1014 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1015 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1016 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1017 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1018 # L3 HA and Failover is not relevant for Computes, should be removed
1019 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1020 NeutronL3HA: {get_param: NeutronL3HA}
1021 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1022 NovaComputeDriver: {get_param: NovaComputeDriver}
1023 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1024 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1025 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1026 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1027 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1028 NovaPassword: {get_param: NovaPassword}
1029 NovaOVSBridge: {get_param: NovaOVSBridge}
1030 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1031 NtpServer: {get_param: NtpServer}
1032 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1033 RabbitPassword: {get_param: RabbitPassword}
1034 RabbitUserName: {get_param: RabbitUserName}
1035 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1036 RabbitClientPort: {get_param: RabbitClientPort}
1037 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1038 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1039 ServiceNetMap: {get_param: ServiceNetMap}
1040 TimeZone: {get_param: TimeZone}
1041 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1042 UpdateIdentifier: {get_param: UpdateIdentifier}
1045 template: {get_param: ComputeHostnameFormat}
1047 '%stackname%': {get_param: 'OS::stack_name'}
1048 CloudDomain: {get_param: CloudDomain}
1049 ServerMetadata: {get_param: ServerMetadata}
1050 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1053 type: OS::Heat::ResourceGroup
1054 depends_on: Networks
1056 count: {get_param: BlockStorageCount}
1057 removal_policies: {get_param: BlockStorageRemovalPolicies}
1059 type: OS::TripleO::BlockStorage
1061 Debug: {get_param: Debug}
1062 Image: {get_param: BlockStorageImage}
1063 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1064 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1065 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1066 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1067 CinderPassword: {get_param: CinderPassword}
1068 KeyName: {get_param: KeyName}
1069 Flavor: {get_param: OvercloudBlockStorageFlavor}
1070 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1071 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1072 RabbitPassword: {get_param: RabbitPassword}
1073 RabbitUserName: {get_param: RabbitUserName}
1074 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1075 RabbitClientPort: {get_param: RabbitClientPort}
1076 TimeZone: {get_param: TimeZone}
1077 NtpServer: {get_param: NtpServer}
1078 UpdateIdentifier: {get_param: UpdateIdentifier}
1081 template: {get_param: BlockStorageHostnameFormat}
1083 '%stackname%': {get_param: 'OS::stack_name'}
1084 ServiceNetMap: {get_param: ServiceNetMap}
1085 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1086 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1087 ExtraConfig: {get_param: ExtraConfig}
1088 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1089 CloudDomain: {get_param: CloudDomain}
1090 ServerMetadata: {get_param: ServerMetadata}
1091 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1094 type: OS::Heat::ResourceGroup
1095 depends_on: Networks
1097 count: {get_param: ObjectStorageCount}
1098 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1100 type: OS::TripleO::ObjectStorage
1102 KeyName: {get_param: KeyName}
1103 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1104 HashSuffix: {get_param: SwiftHashSuffix}
1105 MountCheck: {get_param: SwiftMountCheck}
1106 MinPartHours: {get_param: SwiftMinPartHours}
1107 PartPower: {get_param: SwiftPartPower}
1108 Image: {get_param: SwiftStorageImage}
1109 Replicas: { get_param: SwiftReplicas}
1110 TimeZone: {get_param: TimeZone}
1111 NtpServer: {get_param: NtpServer}
1112 UpdateIdentifier: {get_param: UpdateIdentifier}
1113 ServiceNetMap: {get_param: ServiceNetMap}
1116 template: {get_param: ObjectStorageHostnameFormat}
1118 '%stackname%': {get_param: 'OS::stack_name'}
1119 ExtraConfig: {get_param: ExtraConfig}
1120 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1121 CloudDomain: {get_param: CloudDomain}
1122 ServerMetadata: {get_param: ServerMetadata}
1123 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1126 type: OS::Heat::ResourceGroup
1127 depends_on: Networks
1129 count: {get_param: CephStorageCount}
1130 removal_policies: {get_param: CephStorageRemovalPolicies}
1132 type: OS::TripleO::CephStorage
1134 Image: {get_param: CephStorageImage}
1135 KeyName: {get_param: KeyName}
1136 Flavor: {get_param: OvercloudCephStorageFlavor}
1137 NtpServer: {get_param: NtpServer}
1138 ServiceNetMap: {get_param: ServiceNetMap}
1139 TimeZone: {get_param: TimeZone}
1140 UpdateIdentifier: {get_param: UpdateIdentifier}
1143 template: {get_param: CephStorageHostnameFormat}
1145 '%stackname%': {get_param: 'OS::stack_name'}
1146 ExtraConfig: {get_param: ExtraConfig}
1147 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1148 CloudDomain: {get_param: CloudDomain}
1149 ServerMetadata: {get_param: ServerMetadata}
1150 SchedulerHints: {get_param: CephStorageSchedulerHints}
1152 ControllerIpListMap:
1153 type: OS::TripleO::Network::Ports::NetIpListMap
1155 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1156 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1157 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1158 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1159 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1160 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1161 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1164 type: OS::TripleO::AllNodes::SoftwareConfig
1166 compute_hosts: {get_attr: [Compute, hosts_entry]}
1167 controller_hosts: {get_attr: [Controller, hosts_entry]}
1168 controller_ips: {get_attr: [Controller, ip_address]}
1169 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1170 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1171 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1172 controller_names: {get_attr: [Controller, hostname]}
1173 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1174 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1175 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1176 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1177 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1178 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1179 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1180 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1181 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1182 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1183 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1184 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1185 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1186 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1187 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1188 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1189 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1190 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1191 DeployIdentifier: {get_param: DeployIdentifier}
1192 UpdateIdentifier: {get_param: UpdateIdentifier}
1195 type: OS::Heat::RandomString
1199 MysqlClusterUniquePart:
1200 type: OS::Heat::RandomString
1205 type: OS::Heat::RandomString
1208 salt: {get_param: RabbitCookieSalt}
1210 # creates the network architecture
1212 type: OS::TripleO::Network
1215 type: OS::Neutron::Port
1216 depends_on: Networks
1218 name: control_virtual_ip
1219 network: {get_param: NeutronControlPlaneID}
1220 fixed_ips: {get_param: ControlFixedIPs}
1221 replacement_policy: AUTO
1224 depends_on: Networks
1225 type: OS::TripleO::Network::Ports::RedisVipPort
1227 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1228 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1229 PortName: redis_virtual_ip
1230 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1233 # The public VIP is on the External net, falls back to ctlplane
1235 depends_on: Networks
1236 type: OS::TripleO::Network::Ports::ExternalVipPort
1238 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1239 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1240 PortName: public_virtual_ip
1241 FixedIPs: {get_param: PublicVirtualFixedIPs}
1243 InternalApiVirtualIP:
1244 depends_on: Networks
1245 type: OS::TripleO::Network::Ports::InternalApiVipPort
1247 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1248 PortName: internal_api_virtual_ip
1251 depends_on: Networks
1252 type: OS::TripleO::Network::Ports::StorageVipPort
1254 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1255 PortName: storage_virtual_ip
1257 StorageMgmtVirtualIP:
1258 depends_on: Networks
1259 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1261 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1262 PortName: storage_management_virtual_ip
1265 type: OS::TripleO::Network::Ports::NetVipMap
1267 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1268 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1269 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1270 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1271 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1272 # No tenant or management VIP required
1275 type: OS::TripleO::VipConfig
1278 type: OS::Heat::StructuredDeployments
1281 config: {get_resource: VipConfig}
1282 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1284 # service VIP mappings
1285 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1286 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1287 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1288 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1289 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1290 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1291 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1292 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1293 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1294 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1295 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1296 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1297 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1298 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1299 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1300 # direct configuration of Virtual IPs for each network
1301 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1302 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1303 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1304 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1305 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1306 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1308 ControllerBootstrapNodeConfig:
1309 type: OS::TripleO::BootstrapNode::SoftwareConfig
1311 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1312 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1314 ControllerBootstrapNodeDeployment:
1315 type: OS::Heat::StructuredDeployments
1317 name: ControllerBootstrapNodeDeployment
1318 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1319 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1321 ControllerSwiftDeployment:
1322 type: OS::Heat::StructuredDeployments
1324 name: ControllerSwiftDeployment
1325 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1326 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1328 ObjectStorageSwiftDeployment:
1329 type: OS::Heat::StructuredDeployments
1331 name: ObjectStorageSwiftDeployment
1332 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1333 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1335 SwiftDevicesAndProxyConfig:
1336 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1338 controller_swift_devices: {get_attr: [Controller, swift_device]}
1339 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1340 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1342 ComputeCephDeployment:
1343 type: OS::Heat::StructuredDeployments
1345 name: ComputeCephDeployment
1346 config: {get_attr: [CephClusterConfig, config_id]}
1347 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1349 ControllerCephDeployment:
1350 type: OS::Heat::StructuredDeployments
1352 name: ControllerCephDeployment
1353 config: {get_attr: [CephClusterConfig, config_id]}
1354 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1356 CephStorageCephDeployment:
1357 type: OS::Heat::StructuredDeployments
1359 name: CephStorageCephDeployment
1360 config: {get_attr: [CephClusterConfig, config_id]}
1361 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1364 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1366 ceph_storage_count: {get_param: CephStorageCount}
1367 ceph_fsid: {get_param: CephClusterFSID}
1368 ceph_mon_key: {get_param: CephMonKey}
1369 ceph_admin_key: {get_param: CephAdminKey}
1370 ceph_client_key: {get_param: CephClientKey}
1371 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1372 ceph_mon_names: {get_attr: [Controller, hostname]}
1373 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1375 ControllerClusterConfig:
1376 type: OS::Heat::StructuredConfig
1378 group: os-apply-config
1381 nodes: {get_attr: [Controller, corosync_node]}
1385 nodes: {get_attr: [Controller, hostname]}
1387 nodes: {get_attr: [Controller, corosync_node]}
1389 nodes: {get_attr: [Controller, corosync_node]}
1391 ControllerClusterDeployment:
1392 type: OS::Heat::StructuredDeployments
1394 name: ControllerClusterDeployment
1395 config: {get_resource: ControllerClusterConfig}
1396 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1398 ControllerAllNodesDeployment:
1399 type: OS::Heat::StructuredDeployments
1401 name: ControllerAllNodesDeployment
1402 config: {get_attr: [allNodesConfig, config_id]}
1403 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1405 ComputeAllNodesDeployment:
1406 type: OS::Heat::StructuredDeployments
1408 name: ComputeAllNodesDeployment
1409 config: {get_attr: [allNodesConfig, config_id]}
1410 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1412 BlockStorageAllNodesDeployment:
1413 type: OS::Heat::StructuredDeployments
1415 name: BlockStorageAllNodesDeployment
1416 config: {get_attr: [allNodesConfig, config_id]}
1417 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1419 ObjectStorageAllNodesDeployment:
1420 type: OS::Heat::StructuredDeployments
1422 name: ObjectStorageAllNodesDeployment
1423 config: {get_attr: [allNodesConfig, config_id]}
1424 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1426 CephStorageAllNodesDeployment:
1427 type: OS::Heat::StructuredDeployments
1429 name: CephStorageAllNodesDeployment
1430 config: {get_attr: [allNodesConfig, config_id]}
1431 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1433 # All Nodes Validations
1434 AllNodesValidationConfig:
1435 type: OS::TripleO::AllNodes::Validation
1440 - - {get_attr: [Controller, resource.0.external_ip_address]}
1441 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1442 - {get_attr: [Controller, resource.0.storage_ip_address]}
1443 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1444 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1446 ControllerAllNodesValidationDeployment:
1447 type: OS::Heat::StructuredDeployments
1448 depends_on: ControllerAllNodesDeployment
1450 name: ControllerAllNodesValidationDeployment
1451 config: {get_resource: AllNodesValidationConfig}
1452 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1454 ComputeAllNodesValidationDeployment:
1455 type: OS::Heat::StructuredDeployments
1456 depends_on: ComputeAllNodesDeployment
1458 name: ComputeAllNodesValidationDeployment
1459 config: {get_resource: AllNodesValidationConfig}
1460 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1462 BlockStorageAllNodesValidationDeployment:
1463 type: OS::Heat::StructuredDeployments
1464 depends_on: BlockStorageAllNodesDeployment
1466 name: BlockStorageAllNodesValidationDeployment
1467 config: {get_resource: AllNodesValidationConfig}
1468 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1470 ObjectStorageAllNodesValidationDeployment:
1471 type: OS::Heat::StructuredDeployments
1472 depends_on: ObjectStorageAllNodesDeployment
1474 name: ObjectStorageAllNodesValidationDeployment
1475 config: {get_resource: AllNodesValidationConfig}
1476 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1478 CephStorageAllNodesValidationDeployment:
1479 type: OS::Heat::StructuredDeployments
1480 depends_on: CephStorageAllNodesDeployment
1482 name: CephStorageAllNodesValidationDeployment
1483 config: {get_resource: AllNodesValidationConfig}
1484 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1486 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1487 # the nested template may configure each role differently (or not at all)
1488 AllNodesExtraConfig:
1489 type: OS::TripleO::AllNodesExtraConfig
1491 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1492 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1493 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1494 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1495 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1497 # Nested stack deployment runs after all other controller deployments
1498 ControllerNodesPostDeployment:
1499 type: OS::TripleO::ControllerPostDeployment
1500 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1502 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1503 NodeConfigIdentifiers:
1504 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1505 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1506 deployment_identifier: {get_param: DeployIdentifier}
1508 ComputeNodesPostDeployment:
1509 type: OS::TripleO::ComputePostDeployment
1510 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1512 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1513 NodeConfigIdentifiers:
1514 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1515 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1516 deployment_identifier: {get_param: DeployIdentifier}
1518 ObjectStorageNodesPostDeployment:
1519 type: OS::TripleO::ObjectStoragePostDeployment
1520 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1522 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1523 NodeConfigIdentifiers:
1524 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1525 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1526 deployment_identifier: {get_param: DeployIdentifier}
1528 BlockStorageNodesPostDeployment:
1529 type: OS::TripleO::BlockStoragePostDeployment
1530 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1532 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1533 NodeConfigIdentifiers:
1534 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1535 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1536 deployment_identifier: {get_param: DeployIdentifier}
1538 CephStorageNodesPostDeployment:
1539 type: OS::TripleO::CephStoragePostDeployment
1540 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1542 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1543 NodeConfigIdentifiers:
1544 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1545 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1546 deployment_identifier: {get_param: DeployIdentifier}
1550 description: URL for the Overcloud Keystone service
1551 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1553 description: Keystone Admin VIP endpoint
1554 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1556 description: Controller VIP for public API endpoints
1557 value: {get_attr: [VipMap, net_ip_map, external]}
1558 CeilometerInternalVip:
1559 description: VIP for Ceilometer API internal endpoint
1560 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1562 description: VIP for Cinder API internal endpoint
1563 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1565 description: VIP for Glance API internal endpoint
1566 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1568 description: VIP for Heat API internal endpoint
1569 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1570 KeystoneInternalVip:
1571 description: VIP for Keystone API internal endpoint
1572 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1574 description: VIP for Neutron API internal endpoint
1575 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1577 description: VIP for Nova API internal endpoint
1578 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1580 description: VIP for Sahara API internal endpoint
1581 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1583 description: VIP for Swift Proxy internal endpoint
1584 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1587 The content that should be appended to your /etc/hosts if you want to get
1588 hostname-based access to the deployed nodes (useful for testing without
1590 value: {get_attr: [allNodesConfig, hosts_entries]}