1 heat_template_version: 2015-04-30
4 Deploy an OpenStack environment, consisting of several node types (roles),
5 Controller, Compute, BlockStorage, SwiftStorage and CephStorage. The Storage
6 roles enable independent scaling of the storage components, but the minimal
7 deployment is one Controller and one Compute node.
10 # TODO(shadower): we should probably use the parameter groups to put
14 # Common parameters (not specific to a role)
16 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
21 description: The ceilometer backend type.
23 CeilometerMeteringSecret:
24 description: Secret shared by the ceilometer services.
28 description: The password for the ceilometer service account.
31 # This has to be an UUID so for now we generate it outside the template
35 description: The Ceph cluster FSID. Must be a UUID.
38 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
43 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
46 CinderEnableNfsBackend:
48 description: Whether to enable or not the NFS backend for Cinder
52 description: The Ceph client key. Can be created with ceph-authtool --gen-print-key. Currently only used for external Ceph deployments to create the openstack user keyring.
58 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
59 CinderEnableIscsiBackend:
61 description: Whether to enable or not the Iscsi backend for Cinder
63 CinderEnableRbdBackend:
65 description: Whether to enable or not the Rbd backend for Cinder
69 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
73 description: Should be used for arbitrary ips.
77 description: Set to True to enable debugging on all services.
81 description: Syslog address where HAproxy will send its log
85 description: A list of IP/Hostname allowed to connect to horizon
86 type: comma_delimited_list
88 default: 'REBUILD_PRESERVE_EPHEMERAL'
89 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
93 description: Name of an existing Nova key pair to enable SSH access to the instances
96 - custom_constraint: nova.keypair
97 NeutronExternalNetworkBridge:
98 description: Name of bridge used for external network traffic.
101 NeutronBridgeMappings:
103 The OVS logical->physical bridge mappings to use. See the Neutron
104 documentation for details. Defaults to mapping br-ex - the external
105 bridge on hosts - to a physical name 'datacentre' which can be used
106 to create provider networks (and we use this for the default floating
107 network) - if changing this either use different post-install network
108 scripts or be sure to keep 'datacentre' as a mapping network name.
109 type: comma_delimited_list
110 default: "datacentre:br-ex"
111 NeutronControlPlaneID:
114 description: Neutron ID or name for ctlplane network.
115 NeutronEnableIsolatedMetadata:
117 description: If True, DHCP provide metadata route to VM.
119 NeutronEnableTunnelling:
125 Enable/disable the L2 population feature in the Neutron agents.
128 type: comma_delimited_list
129 default: 'datacentre'
131 If set, flat networks to configure in neutron plugins. Defaults to
132 'datacentre' to permit external network creation.
135 description: The tenant network type for Neutron.
136 type: comma_delimited_list
138 description: The password for the neutron service account, used by neutron agents.
141 NeutronPublicInterface:
143 description: What interface to bridge onto br-ex for network nodes.
145 NeutronPublicInterfaceTag:
148 VLAN tag for creating a public VLAN. The tag will be used to
149 create an access port on the exterior bridge for each control plane node,
150 and that port will be given the IP address returned by neutron from the
151 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
152 overcloud.yaml to include the deployment of VLAN ports to the control
155 NeutronComputeAgentMode:
157 description: Agent mode for the neutron-l3-agent on the compute hosts
161 description: Agent mode for the neutron-l3-agent on the controller hosts
165 description: Whether to configure Neutron Distributed Virtual Routers
167 NeutronMetadataProxySharedSecret:
168 description: Shared secret to prevent spoofing
174 The tunnel types for the Neutron tenant network.
175 type: comma_delimited_list
176 NeutronTunnelIdRanges:
178 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
179 of GRE tunnel IDs that are available for tenant network allocation
180 default: ["1:1000", ]
181 type: comma_delimited_list
184 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
185 of VXLAN VNI IDs that are available for tenant network allocation
186 default: ["1:1000", ]
187 type: comma_delimited_list
191 The core plugin for Neutron. The value should be the entrypoint to be loaded
192 from neutron.core_plugins namespace.
194 NeutronServicePlugins:
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 NeutronAllowL3AgentFailover:
212 description: Allow automatic l3-agent failover
216 description: Whether to enable l3-agent HA
218 NeutronDhcpAgentsPerNetwork:
221 description: The number of neutron dhcp agents to schedule per network
223 description: The password for the nova service account, used by nova-api.
228 description: Comma-separated list of ntp servers
229 type: comma_delimited_list
232 description: Should MongoDb journaling be disabled
234 PublicVirtualFixedIPs:
237 Control the IP allocation for the PublicVirtualInterface port. E.g.
238 [{'ip_address':'1.2.3.4'}]
243 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
244 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
247 description: The username for RabbitMQ
251 description: The password for RabbitMQ
257 Rabbit client subscriber parameter to specify
258 an SSL connection to the RabbitMQ host.
262 description: Set rabbit subscriber port, change this if using SSL
264 # We need to set this as string because 'unlimited' is a valid setting
267 description: Configures RabbitMQ FD limit
269 SnmpdReadonlyUserName:
270 default: ro_snmp_user
271 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
273 SnmpdReadonlyUserPassword:
274 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
279 description: The timezone to be set on nodes.
282 default: 'localdomain'
285 The DNS domain used for the hosts. This should match the dhcp_domain
286 configured in the Undercloud neutron. Defaults to localdomain.
290 Extra properties or metadata passed to Nova for the created nodes in
291 the overcloud. It's accessible via the Nova metadata API.
294 # Controller-specific params
296 description: The keystone auth secret.
299 CinderLVMLoopDeviceSize:
301 description: The size of the loopback file used by the cinder LVM driver.
303 CinderNfsMountOptions:
306 Mount options for NFS mounts used by Cinder NFS backend. Effective
307 when CinderEnableNfsBackend is true.
312 NFS servers used by Cinder NFS backend. Effective when
313 CinderEnableNfsBackend is true.
314 type: comma_delimited_list
316 description: The password for the cinder service account, used by cinder-api.
321 description: The iSCSI helper to use with cinder.
328 controllerExtraConfig:
331 Controller specific configuration to inject into the cluster. Same
332 structure as ExtraConfig.
336 default: overcloud-control
338 - custom_constraint: glance.image
339 OvercloudControlFlavor:
340 description: Flavor for control nodes to request when deploying.
343 - custom_constraint: nova.flavor
344 ControlVirtualInterface:
346 description: Interface where virtual ip will be assigned.
350 description: Whether to enable fencing in Pacemaker or not.
354 description: Whether to use Galera instead of regular MariaDB.
356 ControllerEnableCephStorage:
358 description: Whether to deploy Ceph Storage (OSD) on the Controller
360 ControllerEnableSwiftStorage:
362 description: Whether to enable Swift Storage on the Controller
364 ControllerSchedulerHints:
366 description: Optional scheduler hints to pass to nova
371 Additional configuration to inject into the cluster. The format required
372 may be implementation specific, e.g puppet hieradata. Any role specific
373 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
378 Pacemaker fencing configuration. The JSON should have
379 the following structure:
383 "agent": "AGENT_NAME",
384 "host_mac": "HOST_MAC_ADDRESS",
385 "params": {"PARAM_NAME": "PARAM_VALUE"}
393 "agent": "fence_xvm",
394 "host_mac": "52:54:00:aa:bb:cc",
396 "multicast_address": "225.0.0.12",
397 "port": "baremetal_0",
399 "manage_key_file": true,
400 "key_file": "/etc/fence_xvm.key",
401 "key_file_password": "abcdef"
408 description: The filepath of the file to use for logging messages from Glance.
411 GlanceNotifierStrategy:
412 description: Strategy to use for Glance notification queue
416 description: The password for the glance service account, used by the glance services.
421 description: The short name of the Glance backend to use. Should be one
422 of swift, rbd or file
425 - allowed_values: ['swift', 'file', 'rbd']
427 description: The password for the Heat service account, used by the Heat services.
430 HeatStackDomainAdminPassword:
431 description: Password for heat_domain_admin user.
434 InstanceNameTemplate:
435 default: 'instance-%08x'
436 description: Template string to be used to generate instance names
438 KeystoneCACertificate:
440 description: Keystone self-signed certificate authority certificate.
442 KeystoneSigningCertificate:
444 description: Keystone certificate for verifying token validity.
448 description: Keystone key for signing tokens.
451 KeystoneSSLCertificate:
453 description: Keystone certificate for verifying token validity.
455 KeystoneSSLCertificateKey:
457 description: Keystone key for signing tokens.
460 KeystoneNotificationDriver:
461 description: Comma-separated list of Oslo notification drivers used by Keystone
462 default: ['messaging']
463 type: comma_delimited_list
464 KeystoneNotificationFormat:
465 description: The Keystone notification format
469 - allowed_values: [ 'basic', 'cadf' ]
472 description: Whether to manage IPtables rules.
476 description: Whether IPtables rules should be purged before setting up the ones.
478 MysqlInnodbBufferPoolSize:
480 Specifies the size of the buffer pool in megabytes. Setting to
481 zero should be interpreted as "no value" and will defer to the
486 description: Configures MySQL max_connections config setting
489 NeutronDnsmasqOptions:
490 default: 'dhcp-option-force=26,1400'
491 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
493 NeutronPublicInterfaceDefaultRoute:
495 description: A custom default route for the NeutronPublicInterface.
497 NeutronPublicInterfaceIP:
499 description: A custom IP address to put onto the NeutronPublicInterface.
501 NeutronPublicInterfaceRawDevice:
503 description: If set, the public interface is a vlan with this device as the raw device.
505 PublicVirtualInterface:
508 Specifies the interface where the public-facing virtual ip will be assigned.
509 This should be int_public when a VLAN is being used.
512 description: A random string to be used as a salt when hashing to determine mappings in the ring.
516 description: The password for the swift service account, used by the swift proxy services.
521 description: Value of mount_check in Swift account/container/object -server.conf
526 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
529 description: Partition Power to use when building Swift rings
534 description: How many replicas to use in the swift rings.
536 # Compute-specific params
537 CeilometerComputeAgent:
538 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
542 - allowed_values: ['', Present]
546 HypervisorNeutronPhysicalBridge:
549 An OVS bridge to create on each hypervisor. This defaults to br-ex the
550 same as the control plane nodes, as we have a uniform configuration of
551 the openvswitch agent. Typically should not need to be changed.
553 HypervisorNeutronPublicInterface:
555 description: What interface to add to the HypervisorNeutronPhysicalBridge.
557 NeutronNetworkVLANRanges:
558 default: 'datacentre'
560 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
561 Neutron documentation for permitted values. Defaults to permitting any
562 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
563 type: comma_delimited_list
566 default: libvirt.LibvirtDriver
567 NovaComputeExtraConfig:
570 NovaCompute specific configuration to inject into the cluster. Same
571 structure as ExtraConfig.
573 NovaComputeLibvirtType:
576 NovaComputeLibvirtVifDriver:
578 description: Libvirt VIF driver configuration for the network
580 NovaComputeSchedulerHints:
582 description: Optional scheduler hints to pass to nova
584 NovaEnableRbdBackend:
586 description: Whether to enable or not the Rbd backend for Nova
590 default: overcloud-compute
592 - custom_constraint: glance.image
595 description: Name of integration bridge used by Open vSwitch
597 NovaSecurityGroupAPI:
599 description: The full class name of the security API class
601 OvercloudComputeFlavor:
602 description: Use this flavor
605 - custom_constraint: nova.flavor
608 NeutronTenantNetwork: tenant
609 CeilometerApiNetwork: internal_api
610 MongoDbNetwork: internal_api
611 CinderApiNetwork: internal_api
612 CinderIscsiNetwork: storage
613 GlanceApiNetwork: storage
614 GlanceRegistryNetwork: internal_api
615 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
616 KeystonePublicApiNetwork: internal_api
617 NeutronApiNetwork: internal_api
618 HeatApiNetwork: internal_api
619 NovaApiNetwork: internal_api
620 NovaMetadataNetwork: internal_api
621 NovaVncProxyNetwork: internal_api
622 SwiftMgmtNetwork: storage_mgmt
623 SwiftProxyNetwork: storage
624 HorizonNetwork: internal_api
625 MemcachedNetwork: internal_api
626 RabbitMqNetwork: internal_api
627 RedisNetwork: internal_api
628 MysqlNetwork: internal_api
629 CephClusterNetwork: storage_mgmt
630 CephPublicNetwork: storage
631 ControllerHostnameResolveNetwork: internal_api
632 ComputeHostnameResolveNetwork: internal_api
633 BlockStorageHostnameResolveNetwork: internal_api
634 ObjectStorageHostnameResolveNetwork: internal_api
635 CephStorageHostnameResolveNetwork: storage
636 description: Mapping of service_name -> network name. Typically set
637 via parameter_defaults in the resource registry.
640 # Block storage specific parameters
645 default: overcloud-cinder-volume
647 OvercloudBlockStorageFlavor:
648 description: Flavor for block storage nodes to request when deploying.
651 - custom_constraint: nova.flavor
652 BlockStorageExtraConfig:
655 BlockStorage specific configuration to inject into the cluster. Same
656 structure as ExtraConfig.
658 BlockStorageSchedulerHints:
660 description: Optional scheduler hints to pass to nova
664 # Object storage specific parameters
668 OvercloudSwiftStorageFlavor:
669 description: Flavor for Swift storage nodes to request when deploying.
672 - custom_constraint: nova.flavor
674 default: overcloud-swift-storage
676 ObjectStorageExtraConfig:
679 ObjectStorage specific configuration to inject into the cluster. Same
680 structure as ExtraConfig.
682 ObjectStorageSchedulerHints:
684 description: Optional scheduler hints to pass to nova
687 # Ceph storage specific parameters
692 default: overcloud-ceph-storage
694 OvercloudCephStorageFlavor:
696 description: Flavor for Ceph storage nodes to request when deploying.
699 - custom_constraint: nova.flavor
700 CephStorageExtraConfig:
703 CephStorage specific configuration to inject into the cluster. Same
704 structure as ExtraConfig.
706 CephStorageSchedulerHints:
708 description: Optional scheduler hints to pass to nova
712 # Hostname format for each role
713 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
714 # and %stackname% is replaced with OS::stack_name in the template below.
715 # If you want to use the heat generated names, pass '' (empty string).
716 ControllerHostnameFormat:
718 description: Format for Controller node hostnames
719 default: '%stackname%-controller-%index%'
720 ComputeHostnameFormat:
722 description: Format for Compute node hostnames
723 default: '%stackname%-novacompute-%index%'
724 BlockStorageHostnameFormat:
726 description: Format for BlockStorage node hostnames
727 default: '%stackname%-blockstorage-%index%'
728 ObjectStorageHostnameFormat:
730 description: Format for SwiftStorage node hostnames
731 default: '%stackname%-objectstorage-%index%'
732 CephStorageHostnameFormat:
734 description: Format for CephStorage node hostnames
735 default: '%stackname%-cephstorage-%index%'
737 # Identifiers to trigger tasks on nodes
742 Setting to a previously unused value during stack-update will trigger
743 package update on all nodes
748 Setting this to a unique value will re-run any deployment tasks which
749 perform configuration on a Heat stack-update.
751 # If you want to remove a specific node from a resource group, you can pass
752 # the node name or id as a <Group>RemovalPolicies parameter, for example:
753 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
754 ControllerRemovalPolicies:
758 List of resources to be removed from ControllerResourceGroup when
759 doing an update which requires removal of specific resources.
760 ComputeRemovalPolicies:
764 List of resources to be removed from ComputeResourceGroup when
765 doing an update which requires removal of specific resources.
766 BlockStorageRemovalPolicies:
770 List of resources to be removed from BlockStorageResourceGroup when
771 doing an update which requires removal of specific resources.
772 ObjectStorageRemovalPolicies:
776 List of resources to be removed from ObjectStorageResourceGroup when
777 doing an update which requires removal of specific resources.
778 CephStorageRemovalPolicies:
782 List of resources to be removed from CephStorageResourceGroup when
783 doing an update which requires removal of specific resources.
788 HeatAuthEncryptionKey:
789 type: OS::Heat::RandomString
792 type: OS::Heat::RandomString
797 type: OS::Heat::RandomString
802 type: OS::TripleO::EndpointMap
804 CloudName: {get_param: CloudName}
805 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
806 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
807 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
808 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
809 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
810 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
811 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
812 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
813 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
814 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
815 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
816 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
819 type: OS::Heat::ResourceGroup
822 count: {get_param: ControllerCount}
823 removal_policies: {get_param: ControllerRemovalPolicies}
825 type: OS::TripleO::Controller
827 AdminPassword: {get_param: AdminPassword}
828 AdminToken: {get_param: AdminToken}
829 CeilometerBackend: {get_param: CeilometerBackend}
830 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
831 CeilometerPassword: {get_param: CeilometerPassword}
832 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
833 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
834 CinderNfsServers: {get_param: CinderNfsServers}
835 CinderPassword: {get_param: CinderPassword}
836 CinderISCSIHelper: {get_param: CinderISCSIHelper}
837 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
838 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
839 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
840 CloudName: {get_param: CloudName}
841 CloudDomain: {get_param: CloudDomain}
842 ControlVirtualInterface: {get_param: ControlVirtualInterface}
843 ControllerExtraConfig: {get_param: controllerExtraConfig}
844 Debug: {get_param: Debug}
845 EnableFencing: {get_param: EnableFencing}
846 ManageFirewall: {get_param: ManageFirewall}
847 PurgeFirewallRules: {get_param: PurgeFirewallRules}
848 EnableGalera: {get_param: EnableGalera}
849 EnableCephStorage: {get_param: ControllerEnableCephStorage}
850 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
851 ExtraConfig: {get_param: ExtraConfig}
852 FencingConfig: {get_param: FencingConfig}
853 Flavor: {get_param: OvercloudControlFlavor}
854 GlancePassword: {get_param: GlancePassword}
855 GlanceBackend: {get_param: GlanceBackend}
856 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
857 GlanceLogFile: {get_param: GlanceLogFile}
858 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
859 HeatPassword: {get_param: HeatPassword}
860 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
861 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
862 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
863 HorizonSecret: {get_resource: HorizonSecret}
864 Image: {get_param: controllerImage}
865 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
866 InstanceNameTemplate: {get_param: InstanceNameTemplate}
867 KeyName: {get_param: KeyName}
868 KeystoneCACertificate: {get_param: KeystoneCACertificate}
869 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
870 KeystoneSigningKey: {get_param: KeystoneSigningKey}
871 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
872 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
873 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
874 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
875 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
876 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
877 MysqlMaxConnections: {get_param: MysqlMaxConnections}
878 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
879 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
880 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
881 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
882 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
883 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
884 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
885 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
886 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
887 NeutronPublicInterface: {get_param: NeutronPublicInterface}
888 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
889 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
890 NeutronPassword: {get_param: NeutronPassword}
891 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
892 NeutronDVR: {get_param: NeutronDVR}
893 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
894 NeutronAgentMode: {get_param: NeutronAgentMode}
895 NeutronCorePlugin: {get_param: NeutronCorePlugin}
896 NeutronServicePlugins: {get_param: NeutronServicePlugins}
897 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
898 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
899 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
900 NeutronL3HA: {get_param: NeutronL3HA}
901 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
902 NeutronNetworkType: {get_param: NeutronNetworkType}
903 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
904 NovaPassword: {get_param: NovaPassword}
905 NtpServer: {get_param: NtpServer}
906 MongoDbNoJournal: {get_param: MongoDbNoJournal}
907 PcsdPassword: {get_resource: PcsdPassword}
908 PublicVirtualInterface: {get_param: PublicVirtualInterface}
909 RabbitPassword: {get_param: RabbitPassword}
910 RabbitUserName: {get_param: RabbitUserName}
911 RabbitCookie: {get_attr: [RabbitCookie, value]}
912 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
913 RabbitClientPort: {get_param: RabbitClientPort}
914 RabbitFDLimit: {get_param: RabbitFDLimit}
915 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
916 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
917 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
918 SwiftHashSuffix: {get_param: SwiftHashSuffix}
919 SwiftMountCheck: {get_param: SwiftMountCheck}
920 SwiftMinPartHours: {get_param: SwiftMinPartHours}
921 SwiftPartPower: {get_param: SwiftPartPower}
922 SwiftPassword: {get_param: SwiftPassword}
923 SwiftReplicas: { get_param: SwiftReplicas}
924 TimeZone: {get_param: TimeZone}
925 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
926 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
927 ServiceNetMap: {get_param: ServiceNetMap}
928 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
929 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
930 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
931 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
932 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
933 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
934 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
935 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
936 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
937 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
938 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
939 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
940 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
941 UpdateIdentifier: {get_param: UpdateIdentifier}
944 template: {get_param: ControllerHostnameFormat}
946 '%stackname%': {get_param: 'OS::stack_name'}
948 ServerMetadata: {get_param: ServerMetadata}
949 SchedulerHints: {get_param: ControllerSchedulerHints}
952 type: OS::Heat::ResourceGroup
955 count: {get_param: ComputeCount}
956 removal_policies: {get_param: ComputeRemovalPolicies}
958 type: OS::TripleO::Compute
960 AdminPassword: {get_param: AdminPassword}
961 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
962 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
963 CeilometerPassword: {get_param: CeilometerPassword}
964 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
965 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
966 Debug: {get_param: Debug}
967 ExtraConfig: {get_param: ExtraConfig}
968 Flavor: {get_param: OvercloudComputeFlavor}
969 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
970 Image: {get_param: NovaImage}
971 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
972 KeyName: {get_param: KeyName}
973 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
974 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
975 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
976 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
977 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
978 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
979 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
980 NeutronNetworkType: {get_param: NeutronNetworkType}
981 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
982 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
983 NeutronPassword: {get_param: NeutronPassword}
984 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
985 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
986 NeutronDVR: {get_param: NeutronDVR}
987 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
988 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
989 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
990 NeutronCorePlugin: {get_param: NeutronCorePlugin}
991 NeutronServicePlugins: {get_param: NeutronServicePlugins}
992 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
993 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
994 # L3 HA and Failover is not relevant for Computes, should be removed
995 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
996 NeutronL3HA: {get_param: NeutronL3HA}
997 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
998 NovaComputeDriver: {get_param: NovaComputeDriver}
999 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1000 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1001 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1002 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1003 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1004 NovaPassword: {get_param: NovaPassword}
1005 NovaOVSBridge: {get_param: NovaOVSBridge}
1006 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1007 NtpServer: {get_param: NtpServer}
1008 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1009 RabbitPassword: {get_param: RabbitPassword}
1010 RabbitUserName: {get_param: RabbitUserName}
1011 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1012 RabbitClientPort: {get_param: RabbitClientPort}
1013 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1014 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1015 ServiceNetMap: {get_param: ServiceNetMap}
1016 TimeZone: {get_param: TimeZone}
1017 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1018 UpdateIdentifier: {get_param: UpdateIdentifier}
1021 template: {get_param: ComputeHostnameFormat}
1023 '%stackname%': {get_param: 'OS::stack_name'}
1024 CloudDomain: {get_param: CloudDomain}
1025 ServerMetadata: {get_param: ServerMetadata}
1026 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1029 type: OS::Heat::ResourceGroup
1030 depends_on: Networks
1032 count: {get_param: BlockStorageCount}
1033 removal_policies: {get_param: BlockStorageRemovalPolicies}
1035 type: OS::TripleO::BlockStorage
1037 Debug: {get_param: Debug}
1038 Image: {get_param: BlockStorageImage}
1039 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1040 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1041 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1042 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1043 CinderPassword: {get_param: CinderPassword}
1044 KeyName: {get_param: KeyName}
1045 Flavor: {get_param: OvercloudBlockStorageFlavor}
1046 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1047 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1048 RabbitPassword: {get_param: RabbitPassword}
1049 RabbitUserName: {get_param: RabbitUserName}
1050 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1051 RabbitClientPort: {get_param: RabbitClientPort}
1052 TimeZone: {get_param: TimeZone}
1053 NtpServer: {get_param: NtpServer}
1054 UpdateIdentifier: {get_param: UpdateIdentifier}
1057 template: {get_param: BlockStorageHostnameFormat}
1059 '%stackname%': {get_param: 'OS::stack_name'}
1060 ServiceNetMap: {get_param: ServiceNetMap}
1061 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1062 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1063 ExtraConfig: {get_param: ExtraConfig}
1064 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1065 CloudDomain: {get_param: CloudDomain}
1066 ServerMetadata: {get_param: ServerMetadata}
1067 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1070 type: OS::Heat::ResourceGroup
1071 depends_on: Networks
1073 count: {get_param: ObjectStorageCount}
1074 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1076 type: OS::TripleO::ObjectStorage
1078 KeyName: {get_param: KeyName}
1079 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1080 HashSuffix: {get_param: SwiftHashSuffix}
1081 MountCheck: {get_param: SwiftMountCheck}
1082 MinPartHours: {get_param: SwiftMinPartHours}
1083 PartPower: {get_param: SwiftPartPower}
1084 Image: {get_param: SwiftStorageImage}
1085 Replicas: { get_param: SwiftReplicas}
1086 TimeZone: {get_param: TimeZone}
1087 NtpServer: {get_param: NtpServer}
1088 UpdateIdentifier: {get_param: UpdateIdentifier}
1089 ServiceNetMap: {get_param: ServiceNetMap}
1092 template: {get_param: ObjectStorageHostnameFormat}
1094 '%stackname%': {get_param: 'OS::stack_name'}
1095 ExtraConfig: {get_param: ExtraConfig}
1096 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1097 CloudDomain: {get_param: CloudDomain}
1098 ServerMetadata: {get_param: ServerMetadata}
1099 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1102 type: OS::Heat::ResourceGroup
1103 depends_on: Networks
1105 count: {get_param: CephStorageCount}
1106 removal_policies: {get_param: CephStorageRemovalPolicies}
1108 type: OS::TripleO::CephStorage
1110 Image: {get_param: CephStorageImage}
1111 KeyName: {get_param: KeyName}
1112 Flavor: {get_param: OvercloudCephStorageFlavor}
1113 NtpServer: {get_param: NtpServer}
1114 ServiceNetMap: {get_param: ServiceNetMap}
1115 TimeZone: {get_param: TimeZone}
1116 UpdateIdentifier: {get_param: UpdateIdentifier}
1119 template: {get_param: CephStorageHostnameFormat}
1121 '%stackname%': {get_param: 'OS::stack_name'}
1122 ExtraConfig: {get_param: ExtraConfig}
1123 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1124 CloudDomain: {get_param: CloudDomain}
1125 ServerMetadata: {get_param: ServerMetadata}
1126 SchedulerHints: {get_param: CephStorageSchedulerHints}
1128 ControllerIpListMap:
1129 type: OS::TripleO::Network::Ports::NetIpListMap
1131 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1132 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1133 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1134 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1135 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1136 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1137 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1140 type: OS::TripleO::AllNodes::SoftwareConfig
1142 compute_hosts: {get_attr: [Compute, hosts_entry]}
1143 controller_hosts: {get_attr: [Controller, hosts_entry]}
1144 controller_ips: {get_attr: [Controller, ip_address]}
1145 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1146 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1147 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1148 controller_names: {get_attr: [Controller, hostname]}
1149 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1150 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1151 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1152 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1153 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1154 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1155 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1156 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1157 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1158 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1159 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1160 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1161 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1162 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1163 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1164 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1165 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1166 DeployIdentifier: {get_param: DeployIdentifier}
1167 UpdateIdentifier: {get_param: UpdateIdentifier}
1170 type: OS::Heat::RandomString
1174 MysqlClusterUniquePart:
1175 type: OS::Heat::RandomString
1180 type: OS::Heat::RandomString
1183 salt: {get_param: RabbitCookieSalt}
1185 # creates the network architecture
1187 type: OS::TripleO::Network
1190 type: OS::Neutron::Port
1191 depends_on: Networks
1193 name: control_virtual_ip
1194 network: {get_param: NeutronControlPlaneID}
1195 fixed_ips: {get_param: ControlFixedIPs}
1196 replacement_policy: AUTO
1199 depends_on: Networks
1200 type: OS::TripleO::Network::Ports::RedisVipPort
1202 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1203 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1204 PortName: redis_virtual_ip
1205 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1208 # The public VIP is on the External net, falls back to ctlplane
1210 depends_on: Networks
1211 type: OS::TripleO::Network::Ports::ExternalVipPort
1213 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1214 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1215 PortName: public_virtual_ip
1216 FixedIPs: {get_param: PublicVirtualFixedIPs}
1218 InternalApiVirtualIP:
1219 depends_on: Networks
1220 type: OS::TripleO::Network::Ports::InternalApiVipPort
1222 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1223 PortName: internal_api_virtual_ip
1226 depends_on: Networks
1227 type: OS::TripleO::Network::Ports::StorageVipPort
1229 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1230 PortName: storage_virtual_ip
1232 StorageMgmtVirtualIP:
1233 depends_on: Networks
1234 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1236 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1237 PortName: storage_management_virtual_ip
1240 type: OS::TripleO::Network::Ports::NetVipMap
1242 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1243 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1244 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1245 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1246 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1247 # No tenant or management VIP required
1250 type: OS::TripleO::VipConfig
1253 type: OS::Heat::StructuredDeployments
1255 config: {get_resource: VipConfig}
1256 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1258 # service VIP mappings
1259 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1260 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1261 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1262 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1263 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1264 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1265 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1266 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1267 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1268 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1269 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1270 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1271 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1272 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1273 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1274 # direct configuration of Virtual IPs for each network
1275 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1276 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1277 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1278 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1279 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1281 ControllerBootstrapNodeConfig:
1282 type: OS::TripleO::BootstrapNode::SoftwareConfig
1284 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1285 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1287 ControllerBootstrapNodeDeployment:
1288 type: OS::Heat::StructuredDeployments
1290 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1291 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1293 ControllerSwiftDeployment:
1294 type: OS::Heat::StructuredDeployments
1296 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1297 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1299 ObjectStorageSwiftDeployment:
1300 type: OS::Heat::StructuredDeployments
1302 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1303 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1305 SwiftDevicesAndProxyConfig:
1306 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1308 controller_swift_devices: {get_attr: [Controller, swift_device]}
1309 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1310 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1312 ComputeCephDeployment:
1313 type: OS::Heat::StructuredDeployments
1315 config: {get_attr: [CephClusterConfig, config_id]}
1316 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1318 ControllerCephDeployment:
1319 type: OS::Heat::StructuredDeployments
1321 config: {get_attr: [CephClusterConfig, config_id]}
1322 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1324 CephStorageCephDeployment:
1325 type: OS::Heat::StructuredDeployments
1327 config: {get_attr: [CephClusterConfig, config_id]}
1328 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1331 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1333 ceph_storage_count: {get_param: CephStorageCount}
1334 ceph_fsid: {get_param: CephClusterFSID}
1335 ceph_mon_key: {get_param: CephMonKey}
1336 ceph_admin_key: {get_param: CephAdminKey}
1337 ceph_client_key: {get_param: CephClientKey}
1338 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1339 ceph_mon_names: {get_attr: [Controller, hostname]}
1340 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1342 ControllerClusterConfig:
1343 type: OS::Heat::StructuredConfig
1345 group: os-apply-config
1348 nodes: {get_attr: [Controller, corosync_node]}
1352 nodes: {get_attr: [Controller, hostname]}
1354 nodes: {get_attr: [Controller, corosync_node]}
1356 nodes: {get_attr: [Controller, corosync_node]}
1358 ControllerClusterDeployment:
1359 type: OS::Heat::StructuredDeployments
1361 config: {get_resource: ControllerClusterConfig}
1362 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1364 ControllerAllNodesDeployment:
1365 type: OS::Heat::StructuredDeployments
1367 config: {get_attr: [allNodesConfig, config_id]}
1368 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1370 ComputeAllNodesDeployment:
1371 type: OS::Heat::StructuredDeployments
1373 config: {get_attr: [allNodesConfig, config_id]}
1374 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1376 BlockStorageAllNodesDeployment:
1377 type: OS::Heat::StructuredDeployments
1379 config: {get_attr: [allNodesConfig, config_id]}
1380 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1382 ObjectStorageAllNodesDeployment:
1383 type: OS::Heat::StructuredDeployments
1385 config: {get_attr: [allNodesConfig, config_id]}
1386 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1388 CephStorageAllNodesDeployment:
1389 type: OS::Heat::StructuredDeployments
1391 config: {get_attr: [allNodesConfig, config_id]}
1392 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1394 # All Nodes Validations
1395 AllNodesValidationConfig:
1396 type: OS::TripleO::AllNodes::Validation
1401 - - {get_attr: [Controller, resource.0.external_ip_address]}
1402 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1403 - {get_attr: [Controller, resource.0.storage_ip_address]}
1404 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1405 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1407 ControllerAllNodesValidationDeployment:
1408 type: OS::Heat::StructuredDeployments
1409 depends_on: ControllerAllNodesDeployment
1411 config: {get_resource: AllNodesValidationConfig}
1412 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1414 ComputeAllNodesValidationDeployment:
1415 type: OS::Heat::StructuredDeployments
1416 depends_on: ComputeAllNodesDeployment
1418 config: {get_resource: AllNodesValidationConfig}
1419 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1421 BlockStorageAllNodesValidationDeployment:
1422 type: OS::Heat::StructuredDeployments
1423 depends_on: BlockStorageAllNodesDeployment
1425 config: {get_resource: AllNodesValidationConfig}
1426 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1428 ObjectStorageAllNodesValidationDeployment:
1429 type: OS::Heat::StructuredDeployments
1430 depends_on: ObjectStorageAllNodesDeployment
1432 config: {get_resource: AllNodesValidationConfig}
1433 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1435 CephStorageAllNodesValidationDeployment:
1436 type: OS::Heat::StructuredDeployments
1437 depends_on: CephStorageAllNodesDeployment
1439 config: {get_resource: AllNodesValidationConfig}
1440 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1442 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1443 # the nested template may configure each role differently (or not at all)
1444 AllNodesExtraConfig:
1445 type: OS::TripleO::AllNodesExtraConfig
1447 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1448 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1449 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1450 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1451 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1453 # Nested stack deployment runs after all other controller deployments
1454 ControllerNodesPostDeployment:
1455 type: OS::TripleO::ControllerPostDeployment
1456 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1458 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1459 NodeConfigIdentifiers:
1460 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1461 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1462 deployment_identifier: {get_param: DeployIdentifier}
1464 ComputeNodesPostDeployment:
1465 type: OS::TripleO::ComputePostDeployment
1466 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1468 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1469 NodeConfigIdentifiers:
1470 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1471 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1472 deployment_identifier: {get_param: DeployIdentifier}
1474 ObjectStorageNodesPostDeployment:
1475 type: OS::TripleO::ObjectStoragePostDeployment
1476 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1478 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1479 NodeConfigIdentifiers:
1480 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1481 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1482 deployment_identifier: {get_param: DeployIdentifier}
1484 BlockStorageNodesPostDeployment:
1485 type: OS::TripleO::BlockStoragePostDeployment
1486 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1488 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1489 NodeConfigIdentifiers:
1490 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1491 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1492 deployment_identifier: {get_param: DeployIdentifier}
1494 CephStorageNodesPostDeployment:
1495 type: OS::TripleO::CephStoragePostDeployment
1496 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1498 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1499 NodeConfigIdentifiers:
1500 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1501 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1502 deployment_identifier: {get_param: DeployIdentifier}
1506 description: URL for the Overcloud Keystone service
1507 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1509 description: Keystone Admin VIP endpoint
1510 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1512 description: Controller VIP for public API endpoints
1513 value: {get_attr: [VipMap, net_ip_map, external]}
1514 CeilometerInternalVip:
1515 description: VIP for Ceilometer API internal endpoint
1516 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1518 description: VIP for Cinder API internal endpoint
1519 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1521 description: VIP for Glance API internal endpoint
1522 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1524 description: VIP for Heat API internal endpoint
1525 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1526 KeystoneInternalVip:
1527 description: VIP for Keystone API internal endpoint
1528 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1530 description: VIP for Neutron API internal endpoint
1531 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1533 description: VIP for Nova API internal endpoint
1534 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1536 description: VIP for Swift Proxy internal endpoint
1537 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1540 The content that should be appended to your /etc/hosts if you want to get
1541 hostname-based access to the deployed nodes (useful for testing without
1543 value: {get_attr: [allNodesConfig, hosts_entries]}