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.
548 # TODO(egafford): Remove default on merge of https://review.openstack.org/#/c/221418/ (added to avoid circular dep)
553 # Compute-specific params
554 CeilometerComputeAgent:
555 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
559 - allowed_values: ['', Present]
563 HypervisorNeutronPhysicalBridge:
566 An OVS bridge to create on each hypervisor. This defaults to br-ex the
567 same as the control plane nodes, as we have a uniform configuration of
568 the openvswitch agent. Typically should not need to be changed.
570 HypervisorNeutronPublicInterface:
572 description: What interface to add to the HypervisorNeutronPhysicalBridge.
574 NeutronNetworkVLANRanges:
575 default: 'datacentre:1:1000'
577 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
578 Neutron documentation for permitted values. Defaults to permitting any
579 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
580 type: comma_delimited_list
583 default: libvirt.LibvirtDriver
584 NovaComputeExtraConfig:
587 NovaCompute specific configuration to inject into the cluster. Same
588 structure as ExtraConfig.
590 NovaComputeLibvirtType:
593 NovaComputeLibvirtVifDriver:
595 description: Libvirt VIF driver configuration for the network
597 NovaComputeSchedulerHints:
599 description: Optional scheduler hints to pass to nova
601 NovaEnableRbdBackend:
603 description: Whether to enable or not the Rbd backend for Nova
607 default: overcloud-full
609 - custom_constraint: glance.image
612 description: Name of integration bridge used by Open vSwitch
614 NovaSecurityGroupAPI:
616 description: The full class name of the security API class
618 OvercloudComputeFlavor:
619 description: Use this flavor
623 - custom_constraint: nova.flavor
626 NeutronTenantNetwork: tenant
627 CeilometerApiNetwork: internal_api
628 MongoDbNetwork: internal_api
629 CinderApiNetwork: internal_api
630 CinderIscsiNetwork: storage
631 GlanceApiNetwork: storage
632 GlanceRegistryNetwork: internal_api
633 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
634 KeystonePublicApiNetwork: internal_api
635 NeutronApiNetwork: internal_api
636 HeatApiNetwork: internal_api
637 NovaApiNetwork: internal_api
638 NovaMetadataNetwork: internal_api
639 NovaVncProxyNetwork: internal_api
640 SwiftMgmtNetwork: storage_mgmt
641 SwiftProxyNetwork: storage
642 SaharaApiNetwork: internal_api
643 HorizonNetwork: internal_api
644 MemcachedNetwork: internal_api
645 RabbitMqNetwork: internal_api
646 RedisNetwork: internal_api
647 MysqlNetwork: internal_api
648 CephClusterNetwork: storage_mgmt
649 CephPublicNetwork: storage
650 ControllerHostnameResolveNetwork: internal_api
651 ComputeHostnameResolveNetwork: internal_api
652 BlockStorageHostnameResolveNetwork: internal_api
653 ObjectStorageHostnameResolveNetwork: internal_api
654 CephStorageHostnameResolveNetwork: storage
655 description: Mapping of service_name -> network name. Typically set
656 via parameter_defaults in the resource registry.
659 # Block storage specific parameters
664 default: overcloud-full
666 OvercloudBlockStorageFlavor:
667 description: Flavor for block storage nodes to request when deploying.
671 - custom_constraint: nova.flavor
672 BlockStorageExtraConfig:
675 BlockStorage specific configuration to inject into the cluster. Same
676 structure as ExtraConfig.
678 BlockStorageSchedulerHints:
680 description: Optional scheduler hints to pass to nova
684 # Object storage specific parameters
688 OvercloudSwiftStorageFlavor:
689 description: Flavor for Swift storage nodes to request when deploying.
693 - custom_constraint: nova.flavor
695 default: overcloud-full
697 ObjectStorageExtraConfig:
700 ObjectStorage specific configuration to inject into the cluster. Same
701 structure as ExtraConfig.
703 ObjectStorageSchedulerHints:
705 description: Optional scheduler hints to pass to nova
708 # Ceph storage specific parameters
713 default: overcloud-full
715 OvercloudCephStorageFlavor:
717 description: Flavor for Ceph storage nodes to request when deploying.
720 - custom_constraint: nova.flavor
721 CephStorageExtraConfig:
724 CephStorage specific configuration to inject into the cluster. Same
725 structure as ExtraConfig.
727 CephStorageSchedulerHints:
729 description: Optional scheduler hints to pass to nova
733 # Hostname format for each role
734 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
735 # and %stackname% is replaced with OS::stack_name in the template below.
736 # If you want to use the heat generated names, pass '' (empty string).
737 ControllerHostnameFormat:
739 description: Format for Controller node hostnames
740 default: '%stackname%-controller-%index%'
741 ComputeHostnameFormat:
743 description: Format for Compute node hostnames
744 default: '%stackname%-novacompute-%index%'
745 BlockStorageHostnameFormat:
747 description: Format for BlockStorage node hostnames
748 default: '%stackname%-blockstorage-%index%'
749 ObjectStorageHostnameFormat:
751 description: Format for SwiftStorage node hostnames
752 default: '%stackname%-objectstorage-%index%'
753 CephStorageHostnameFormat:
755 description: Format for CephStorage node hostnames
756 default: '%stackname%-cephstorage-%index%'
758 # Identifiers to trigger tasks on nodes
763 Setting to a previously unused value during stack-update will trigger
764 package update on all nodes
769 Setting this to a unique value will re-run any deployment tasks which
770 perform configuration on a Heat stack-update.
772 # If you want to remove a specific node from a resource group, you can pass
773 # the node name or id as a <Group>RemovalPolicies parameter, for example:
774 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
775 ControllerRemovalPolicies:
779 List of resources to be removed from ControllerResourceGroup when
780 doing an update which requires removal of specific resources.
781 ComputeRemovalPolicies:
785 List of resources to be removed from ComputeResourceGroup when
786 doing an update which requires removal of specific resources.
787 BlockStorageRemovalPolicies:
791 List of resources to be removed from BlockStorageResourceGroup when
792 doing an update which requires removal of specific resources.
793 ObjectStorageRemovalPolicies:
797 List of resources to be removed from ObjectStorageResourceGroup when
798 doing an update which requires removal of specific resources.
799 CephStorageRemovalPolicies:
803 List of resources to be removed from CephStorageResourceGroup when
804 doing an update which requires removal of specific resources.
809 HeatAuthEncryptionKey:
810 type: OS::Heat::RandomString
813 type: OS::Heat::RandomString
818 type: OS::Heat::RandomString
823 type: OS::TripleO::EndpointMap
825 CloudName: {get_param: CloudName}
826 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
827 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
828 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
829 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
830 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
831 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
832 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
833 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
834 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
835 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
836 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
837 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
838 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
841 type: OS::Heat::ResourceGroup
844 count: {get_param: ControllerCount}
845 removal_policies: {get_param: ControllerRemovalPolicies}
847 type: OS::TripleO::Controller
849 AdminPassword: {get_param: AdminPassword}
850 AdminToken: {get_param: AdminToken}
851 CeilometerBackend: {get_param: CeilometerBackend}
852 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
853 CeilometerPassword: {get_param: CeilometerPassword}
854 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
855 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
856 CinderNfsServers: {get_param: CinderNfsServers}
857 CinderPassword: {get_param: CinderPassword}
858 CinderISCSIHelper: {get_param: CinderISCSIHelper}
859 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
860 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
861 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
862 CloudDomain: {get_param: CloudDomain}
863 ControlVirtualInterface: {get_param: ControlVirtualInterface}
864 ControllerExtraConfig: {get_param: controllerExtraConfig}
865 Debug: {get_param: Debug}
866 EnableFencing: {get_param: EnableFencing}
867 ManageFirewall: {get_param: ManageFirewall}
868 PurgeFirewallRules: {get_param: PurgeFirewallRules}
869 EnableGalera: {get_param: EnableGalera}
870 EnableCephStorage: {get_param: ControllerEnableCephStorage}
871 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
872 ExtraConfig: {get_param: ExtraConfig}
873 FencingConfig: {get_param: FencingConfig}
874 Flavor: {get_param: OvercloudControlFlavor}
875 GlancePassword: {get_param: GlancePassword}
876 GlanceBackend: {get_param: GlanceBackend}
877 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
878 GlanceLogFile: {get_param: GlanceLogFile}
879 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
880 HeatPassword: {get_param: HeatPassword}
881 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
882 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
883 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
884 HorizonSecret: {get_resource: HorizonSecret}
885 Image: {get_param: controllerImage}
886 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
887 InstanceNameTemplate: {get_param: InstanceNameTemplate}
888 KeyName: {get_param: KeyName}
889 KeystoneCACertificate: {get_param: KeystoneCACertificate}
890 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
891 KeystoneSigningKey: {get_param: KeystoneSigningKey}
892 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
893 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
894 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
895 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
896 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
897 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
898 MysqlMaxConnections: {get_param: MysqlMaxConnections}
899 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
900 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
901 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
902 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
903 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
904 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
905 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
906 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
907 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
908 NeutronPublicInterface: {get_param: NeutronPublicInterface}
909 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
910 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
911 NeutronPassword: {get_param: NeutronPassword}
912 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
913 NeutronDVR: {get_param: NeutronDVR}
914 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
915 NeutronAgentMode: {get_param: NeutronAgentMode}
916 NeutronCorePlugin: {get_param: NeutronCorePlugin}
917 NeutronServicePlugins: {get_param: NeutronServicePlugins}
918 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
919 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
920 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
921 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
922 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
923 NeutronL3HA: {get_param: NeutronL3HA}
924 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
925 NeutronNetworkType: {get_param: NeutronNetworkType}
926 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
927 NovaPassword: {get_param: NovaPassword}
928 NtpServer: {get_param: NtpServer}
929 MongoDbNoJournal: {get_param: MongoDbNoJournal}
930 PcsdPassword: {get_resource: PcsdPassword}
931 PublicVirtualInterface: {get_param: PublicVirtualInterface}
932 RabbitPassword: {get_param: RabbitPassword}
933 RabbitUserName: {get_param: RabbitUserName}
934 RabbitCookie: {get_attr: [RabbitCookie, value]}
935 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
936 RabbitClientPort: {get_param: RabbitClientPort}
937 RabbitFDLimit: {get_param: RabbitFDLimit}
938 SaharaPassword: {get_param: SaharaPassword}
939 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
940 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
941 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
942 SwiftHashSuffix: {get_param: SwiftHashSuffix}
943 SwiftMountCheck: {get_param: SwiftMountCheck}
944 SwiftMinPartHours: {get_param: SwiftMinPartHours}
945 SwiftPartPower: {get_param: SwiftPartPower}
946 SwiftPassword: {get_param: SwiftPassword}
947 SwiftReplicas: { get_param: SwiftReplicas}
948 TimeZone: {get_param: TimeZone}
949 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
950 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
951 ServiceNetMap: {get_param: ServiceNetMap}
952 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
953 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
954 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
955 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
956 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
957 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
958 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
959 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
960 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
961 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
962 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
963 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
964 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
965 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
966 UpdateIdentifier: {get_param: UpdateIdentifier}
969 template: {get_param: ControllerHostnameFormat}
971 '%stackname%': {get_param: 'OS::stack_name'}
973 ServerMetadata: {get_param: ServerMetadata}
974 SchedulerHints: {get_param: ControllerSchedulerHints}
977 type: OS::Heat::ResourceGroup
980 count: {get_param: ComputeCount}
981 removal_policies: {get_param: ComputeRemovalPolicies}
983 type: OS::TripleO::Compute
985 AdminPassword: {get_param: AdminPassword}
986 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
987 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
988 CeilometerPassword: {get_param: CeilometerPassword}
989 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
990 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
991 Debug: {get_param: Debug}
992 ExtraConfig: {get_param: ExtraConfig}
993 Flavor: {get_param: OvercloudComputeFlavor}
994 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
995 Image: {get_param: NovaImage}
996 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
997 KeyName: {get_param: KeyName}
998 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
999 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1000 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1001 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1002 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1003 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1004 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1005 NeutronNetworkType: {get_param: NeutronNetworkType}
1006 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1007 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1008 NeutronPassword: {get_param: NeutronPassword}
1009 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1010 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1011 NeutronDVR: {get_param: NeutronDVR}
1012 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1013 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1014 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1015 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1016 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1017 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1018 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1019 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1020 # L3 HA and Failover is not relevant for Computes, should be removed
1021 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1022 NeutronL3HA: {get_param: NeutronL3HA}
1023 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1024 NovaComputeDriver: {get_param: NovaComputeDriver}
1025 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1026 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1027 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1028 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1029 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1030 NovaPassword: {get_param: NovaPassword}
1031 NovaOVSBridge: {get_param: NovaOVSBridge}
1032 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1033 NtpServer: {get_param: NtpServer}
1034 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1035 RabbitPassword: {get_param: RabbitPassword}
1036 RabbitUserName: {get_param: RabbitUserName}
1037 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1038 RabbitClientPort: {get_param: RabbitClientPort}
1039 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1040 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1041 ServiceNetMap: {get_param: ServiceNetMap}
1042 TimeZone: {get_param: TimeZone}
1043 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1044 UpdateIdentifier: {get_param: UpdateIdentifier}
1047 template: {get_param: ComputeHostnameFormat}
1049 '%stackname%': {get_param: 'OS::stack_name'}
1050 CloudDomain: {get_param: CloudDomain}
1051 ServerMetadata: {get_param: ServerMetadata}
1052 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1055 type: OS::Heat::ResourceGroup
1056 depends_on: Networks
1058 count: {get_param: BlockStorageCount}
1059 removal_policies: {get_param: BlockStorageRemovalPolicies}
1061 type: OS::TripleO::BlockStorage
1063 Debug: {get_param: Debug}
1064 Image: {get_param: BlockStorageImage}
1065 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1066 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1067 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1068 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1069 CinderPassword: {get_param: CinderPassword}
1070 KeyName: {get_param: KeyName}
1071 Flavor: {get_param: OvercloudBlockStorageFlavor}
1072 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1073 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1074 RabbitPassword: {get_param: RabbitPassword}
1075 RabbitUserName: {get_param: RabbitUserName}
1076 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1077 RabbitClientPort: {get_param: RabbitClientPort}
1078 TimeZone: {get_param: TimeZone}
1079 NtpServer: {get_param: NtpServer}
1080 UpdateIdentifier: {get_param: UpdateIdentifier}
1083 template: {get_param: BlockStorageHostnameFormat}
1085 '%stackname%': {get_param: 'OS::stack_name'}
1086 ServiceNetMap: {get_param: ServiceNetMap}
1087 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1088 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1089 ExtraConfig: {get_param: ExtraConfig}
1090 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1091 CloudDomain: {get_param: CloudDomain}
1092 ServerMetadata: {get_param: ServerMetadata}
1093 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1096 type: OS::Heat::ResourceGroup
1097 depends_on: Networks
1099 count: {get_param: ObjectStorageCount}
1100 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1102 type: OS::TripleO::ObjectStorage
1104 KeyName: {get_param: KeyName}
1105 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1106 HashSuffix: {get_param: SwiftHashSuffix}
1107 MountCheck: {get_param: SwiftMountCheck}
1108 MinPartHours: {get_param: SwiftMinPartHours}
1109 PartPower: {get_param: SwiftPartPower}
1110 Image: {get_param: SwiftStorageImage}
1111 Replicas: { get_param: SwiftReplicas}
1112 TimeZone: {get_param: TimeZone}
1113 NtpServer: {get_param: NtpServer}
1114 UpdateIdentifier: {get_param: UpdateIdentifier}
1115 ServiceNetMap: {get_param: ServiceNetMap}
1118 template: {get_param: ObjectStorageHostnameFormat}
1120 '%stackname%': {get_param: 'OS::stack_name'}
1121 ExtraConfig: {get_param: ExtraConfig}
1122 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1123 CloudDomain: {get_param: CloudDomain}
1124 ServerMetadata: {get_param: ServerMetadata}
1125 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1128 type: OS::Heat::ResourceGroup
1129 depends_on: Networks
1131 count: {get_param: CephStorageCount}
1132 removal_policies: {get_param: CephStorageRemovalPolicies}
1134 type: OS::TripleO::CephStorage
1136 Image: {get_param: CephStorageImage}
1137 KeyName: {get_param: KeyName}
1138 Flavor: {get_param: OvercloudCephStorageFlavor}
1139 NtpServer: {get_param: NtpServer}
1140 ServiceNetMap: {get_param: ServiceNetMap}
1141 TimeZone: {get_param: TimeZone}
1142 UpdateIdentifier: {get_param: UpdateIdentifier}
1145 template: {get_param: CephStorageHostnameFormat}
1147 '%stackname%': {get_param: 'OS::stack_name'}
1148 ExtraConfig: {get_param: ExtraConfig}
1149 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1150 CloudDomain: {get_param: CloudDomain}
1151 ServerMetadata: {get_param: ServerMetadata}
1152 SchedulerHints: {get_param: CephStorageSchedulerHints}
1154 ControllerIpListMap:
1155 type: OS::TripleO::Network::Ports::NetIpListMap
1157 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1158 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1159 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1160 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1161 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1162 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1163 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1166 type: OS::TripleO::AllNodes::SoftwareConfig
1168 compute_hosts: {get_attr: [Compute, hosts_entry]}
1169 controller_hosts: {get_attr: [Controller, hosts_entry]}
1170 controller_ips: {get_attr: [Controller, ip_address]}
1171 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1172 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1173 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1174 controller_names: {get_attr: [Controller, hostname]}
1175 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1176 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1177 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1178 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1179 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1180 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1181 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1182 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1183 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1184 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1185 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1186 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1187 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1188 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1189 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1190 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1191 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1192 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1193 DeployIdentifier: {get_param: DeployIdentifier}
1194 UpdateIdentifier: {get_param: UpdateIdentifier}
1197 type: OS::Heat::RandomString
1201 MysqlClusterUniquePart:
1202 type: OS::Heat::RandomString
1207 type: OS::Heat::RandomString
1210 salt: {get_param: RabbitCookieSalt}
1212 # creates the network architecture
1214 type: OS::TripleO::Network
1217 type: OS::Neutron::Port
1218 depends_on: Networks
1220 name: control_virtual_ip
1221 network: {get_param: NeutronControlPlaneID}
1222 fixed_ips: {get_param: ControlFixedIPs}
1223 replacement_policy: AUTO
1226 depends_on: Networks
1227 type: OS::TripleO::Network::Ports::RedisVipPort
1229 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1230 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1231 PortName: redis_virtual_ip
1232 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1235 # The public VIP is on the External net, falls back to ctlplane
1237 depends_on: Networks
1238 type: OS::TripleO::Network::Ports::ExternalVipPort
1240 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1241 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1242 PortName: public_virtual_ip
1243 FixedIPs: {get_param: PublicVirtualFixedIPs}
1245 InternalApiVirtualIP:
1246 depends_on: Networks
1247 type: OS::TripleO::Network::Ports::InternalApiVipPort
1249 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1250 PortName: internal_api_virtual_ip
1253 depends_on: Networks
1254 type: OS::TripleO::Network::Ports::StorageVipPort
1256 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1257 PortName: storage_virtual_ip
1259 StorageMgmtVirtualIP:
1260 depends_on: Networks
1261 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1263 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1264 PortName: storage_management_virtual_ip
1267 type: OS::TripleO::Network::Ports::NetVipMap
1269 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1270 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1271 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1272 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1273 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1274 # No tenant or management VIP required
1277 type: OS::TripleO::VipConfig
1280 type: OS::Heat::StructuredDeployments
1283 config: {get_resource: VipConfig}
1284 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1286 # service VIP mappings
1287 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1288 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1289 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1290 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1291 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1292 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1293 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1294 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1295 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1296 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1297 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1298 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1299 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1300 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1301 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1302 # direct configuration of Virtual IPs for each network
1303 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1304 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1305 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1306 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1307 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1308 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1310 ControllerBootstrapNodeConfig:
1311 type: OS::TripleO::BootstrapNode::SoftwareConfig
1313 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1314 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1316 ControllerBootstrapNodeDeployment:
1317 type: OS::Heat::StructuredDeployments
1319 name: ControllerBootstrapNodeDeployment
1320 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1321 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1323 ControllerSwiftDeployment:
1324 type: OS::Heat::StructuredDeployments
1326 name: ControllerSwiftDeployment
1327 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1328 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1330 ObjectStorageSwiftDeployment:
1331 type: OS::Heat::StructuredDeployments
1333 name: ObjectStorageSwiftDeployment
1334 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1335 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1337 SwiftDevicesAndProxyConfig:
1338 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1340 controller_swift_devices: {get_attr: [Controller, swift_device]}
1341 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1342 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1344 ComputeCephDeployment:
1345 type: OS::Heat::StructuredDeployments
1347 name: ComputeCephDeployment
1348 config: {get_attr: [CephClusterConfig, config_id]}
1349 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1351 ControllerCephDeployment:
1352 type: OS::Heat::StructuredDeployments
1354 name: ControllerCephDeployment
1355 config: {get_attr: [CephClusterConfig, config_id]}
1356 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1358 CephStorageCephDeployment:
1359 type: OS::Heat::StructuredDeployments
1361 name: CephStorageCephDeployment
1362 config: {get_attr: [CephClusterConfig, config_id]}
1363 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1366 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1368 ceph_storage_count: {get_param: CephStorageCount}
1369 ceph_fsid: {get_param: CephClusterFSID}
1370 ceph_mon_key: {get_param: CephMonKey}
1371 ceph_admin_key: {get_param: CephAdminKey}
1372 ceph_client_key: {get_param: CephClientKey}
1373 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1374 ceph_mon_names: {get_attr: [Controller, hostname]}
1375 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1377 ControllerClusterConfig:
1378 type: OS::Heat::StructuredConfig
1380 group: os-apply-config
1383 nodes: {get_attr: [Controller, corosync_node]}
1387 nodes: {get_attr: [Controller, hostname]}
1389 nodes: {get_attr: [Controller, corosync_node]}
1391 nodes: {get_attr: [Controller, corosync_node]}
1393 ControllerClusterDeployment:
1394 type: OS::Heat::StructuredDeployments
1396 name: ControllerClusterDeployment
1397 config: {get_resource: ControllerClusterConfig}
1398 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1400 ControllerAllNodesDeployment:
1401 type: OS::Heat::StructuredDeployments
1403 name: ControllerAllNodesDeployment
1404 config: {get_attr: [allNodesConfig, config_id]}
1405 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1407 ComputeAllNodesDeployment:
1408 type: OS::Heat::StructuredDeployments
1410 name: ComputeAllNodesDeployment
1411 config: {get_attr: [allNodesConfig, config_id]}
1412 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1414 BlockStorageAllNodesDeployment:
1415 type: OS::Heat::StructuredDeployments
1417 name: BlockStorageAllNodesDeployment
1418 config: {get_attr: [allNodesConfig, config_id]}
1419 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1421 ObjectStorageAllNodesDeployment:
1422 type: OS::Heat::StructuredDeployments
1424 name: ObjectStorageAllNodesDeployment
1425 config: {get_attr: [allNodesConfig, config_id]}
1426 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1428 CephStorageAllNodesDeployment:
1429 type: OS::Heat::StructuredDeployments
1431 name: CephStorageAllNodesDeployment
1432 config: {get_attr: [allNodesConfig, config_id]}
1433 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1435 # All Nodes Validations
1436 AllNodesValidationConfig:
1437 type: OS::TripleO::AllNodes::Validation
1442 - - {get_attr: [Controller, resource.0.external_ip_address]}
1443 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1444 - {get_attr: [Controller, resource.0.storage_ip_address]}
1445 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1446 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1448 ControllerAllNodesValidationDeployment:
1449 type: OS::Heat::StructuredDeployments
1450 depends_on: ControllerAllNodesDeployment
1452 name: ControllerAllNodesValidationDeployment
1453 config: {get_resource: AllNodesValidationConfig}
1454 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1456 ComputeAllNodesValidationDeployment:
1457 type: OS::Heat::StructuredDeployments
1458 depends_on: ComputeAllNodesDeployment
1460 name: ComputeAllNodesValidationDeployment
1461 config: {get_resource: AllNodesValidationConfig}
1462 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1464 BlockStorageAllNodesValidationDeployment:
1465 type: OS::Heat::StructuredDeployments
1466 depends_on: BlockStorageAllNodesDeployment
1468 name: BlockStorageAllNodesValidationDeployment
1469 config: {get_resource: AllNodesValidationConfig}
1470 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1472 ObjectStorageAllNodesValidationDeployment:
1473 type: OS::Heat::StructuredDeployments
1474 depends_on: ObjectStorageAllNodesDeployment
1476 name: ObjectStorageAllNodesValidationDeployment
1477 config: {get_resource: AllNodesValidationConfig}
1478 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1480 CephStorageAllNodesValidationDeployment:
1481 type: OS::Heat::StructuredDeployments
1482 depends_on: CephStorageAllNodesDeployment
1484 name: CephStorageAllNodesValidationDeployment
1485 config: {get_resource: AllNodesValidationConfig}
1486 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1488 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1489 # the nested template may configure each role differently (or not at all)
1490 AllNodesExtraConfig:
1491 type: OS::TripleO::AllNodesExtraConfig
1493 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1494 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1495 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1496 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1497 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1499 # Nested stack deployment runs after all other controller deployments
1500 ControllerNodesPostDeployment:
1501 type: OS::TripleO::ControllerPostDeployment
1502 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1504 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1505 NodeConfigIdentifiers:
1506 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1507 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1508 deployment_identifier: {get_param: DeployIdentifier}
1510 ComputeNodesPostDeployment:
1511 type: OS::TripleO::ComputePostDeployment
1512 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1514 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1515 NodeConfigIdentifiers:
1516 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1517 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1518 deployment_identifier: {get_param: DeployIdentifier}
1520 ObjectStorageNodesPostDeployment:
1521 type: OS::TripleO::ObjectStoragePostDeployment
1522 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1524 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1525 NodeConfigIdentifiers:
1526 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1527 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1528 deployment_identifier: {get_param: DeployIdentifier}
1530 BlockStorageNodesPostDeployment:
1531 type: OS::TripleO::BlockStoragePostDeployment
1532 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1534 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1535 NodeConfigIdentifiers:
1536 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1537 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1538 deployment_identifier: {get_param: DeployIdentifier}
1540 CephStorageNodesPostDeployment:
1541 type: OS::TripleO::CephStoragePostDeployment
1542 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1544 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1545 NodeConfigIdentifiers:
1546 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1547 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1548 deployment_identifier: {get_param: DeployIdentifier}
1552 description: URL for the Overcloud Keystone service
1553 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1555 description: Keystone Admin VIP endpoint
1556 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1558 description: Controller VIP for public API endpoints
1559 value: {get_attr: [VipMap, net_ip_map, external]}
1560 CeilometerInternalVip:
1561 description: VIP for Ceilometer API internal endpoint
1562 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1564 description: VIP for Cinder API internal endpoint
1565 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1567 description: VIP for Glance API internal endpoint
1568 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1570 description: VIP for Heat API internal endpoint
1571 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1572 KeystoneInternalVip:
1573 description: VIP for Keystone API internal endpoint
1574 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1576 description: VIP for Neutron API internal endpoint
1577 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1579 description: VIP for Nova API internal endpoint
1580 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1582 description: VIP for Sahara API internal endpoint
1583 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1585 description: VIP for Swift Proxy internal endpoint
1586 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1589 The content that should be appended to your /etc/hosts if you want to get
1590 hostname-based access to the deployed nodes (useful for testing without
1592 value: {get_attr: [allNodesConfig, hosts_entries]}