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: Enable IPv6 in Corosync
81 description: Set to True to enable debugging on all services.
85 description: Syslog address where HAproxy will send its log
89 description: A list of IP/Hostname allowed to connect to horizon
90 type: comma_delimited_list
92 default: 'REBUILD_PRESERVE_EPHEMERAL'
93 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
95 InternalApiVirtualFixedIPs:
98 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
99 [{'ip_address':'1.2.3.4'}]
103 description: Name of an existing Nova key pair to enable SSH access to the instances
106 - custom_constraint: nova.keypair
109 description: Enable IPv6 features in Memcached.
111 NeutronExternalNetworkBridge:
112 description: Name of bridge used for external network traffic.
115 NeutronBridgeMappings:
117 The OVS logical->physical bridge mappings to use. See the Neutron
118 documentation for details. Defaults to mapping br-ex - the external
119 bridge on hosts - to a physical name 'datacentre' which can be used
120 to create provider networks (and we use this for the default floating
121 network) - if changing this either use different post-install network
122 scripts or be sure to keep 'datacentre' as a mapping network name.
123 type: comma_delimited_list
124 default: "datacentre:br-ex"
125 NeutronControlPlaneID:
128 description: Neutron ID or name for ctlplane network.
129 NeutronEnableIsolatedMetadata:
131 description: If True, DHCP provide metadata route to VM.
133 NeutronEnableTunnelling:
139 Enable/disable the L2 population feature in the Neutron agents.
142 type: comma_delimited_list
143 default: 'datacentre'
145 If set, flat networks to configure in neutron plugins. Defaults to
146 'datacentre' to permit external network creation.
149 description: The tenant network type for Neutron.
150 type: comma_delimited_list
152 description: The password for the neutron service account, used by neutron agents.
155 NeutronPublicInterface:
157 description: What interface to bridge onto br-ex for network nodes.
159 NeutronPublicInterfaceTag:
162 VLAN tag for creating a public VLAN. The tag will be used to
163 create an access port on the exterior bridge for each control plane node,
164 and that port will be given the IP address returned by neutron from the
165 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
166 overcloud.yaml to include the deployment of VLAN ports to the control
169 NeutronComputeAgentMode:
171 description: Agent mode for the neutron-l3-agent on the compute hosts
175 description: Agent mode for the neutron-l3-agent on the controller hosts
179 description: Whether to configure Neutron Distributed Virtual Routers
181 NeutronMetadataProxySharedSecret:
182 description: Shared secret to prevent spoofing
187 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
188 be at least 50 bytes smaller than the MTU on the physical network. This
189 value will be used to set the MTU on the virtual Ethernet device.
190 This value will be used to construct the NeutronDnsmasqOptions, since that
191 will determine the MTU that is assigned to the VM host through DHCP.
197 The tunnel types for the Neutron tenant network.
198 type: comma_delimited_list
199 NeutronTunnelIdRanges:
201 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
202 of GRE tunnel IDs that are available for tenant network allocation
203 default: ["1:4094", ]
204 type: comma_delimited_list
207 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
208 of VXLAN VNI IDs that are available for tenant network allocation
209 default: ["1:4094", ]
210 type: comma_delimited_list
214 The core plugin for Neutron. The value should be the entrypoint to be loaded
215 from neutron.core_plugins namespace.
217 NeutronServicePlugins:
218 default: "router,qos"
220 Comma-separated list of service plugin entrypoints to be loaded from the
221 neutron.service_plugins namespace.
222 type: comma_delimited_list
224 default: "vxlan,vlan,flat,gre"
226 Comma-separated list of network type driver entrypoints to be loaded.
227 type: comma_delimited_list
228 NeutronMechanismDrivers:
229 default: 'openvswitch'
231 The mechanism drivers for the Neutron tenant network.
232 type: comma_delimited_list
233 NeutronPluginExtensions:
234 default: "qos,port_security"
236 Comma-separated list of extensions enabled for the Neutron plugin.
237 type: comma_delimited_list
238 NeutronAgentExtensions:
241 Comma-separated list of extensions enabled for the Neutron agents.
242 type: comma_delimited_list
243 NeutronAllowL3AgentFailover:
245 description: Allow automatic l3-agent failover
249 description: Whether to enable l3-agent HA
251 NeutronDhcpAgentsPerNetwork:
254 description: The number of neutron dhcp agents to schedule per network
257 description: Enable IPv6 features in Nova
260 description: The password for the nova service account, used by nova-api.
265 description: Comma-separated list of ntp servers
266 type: comma_delimited_list
269 description: Should MongoDb journaling be disabled
273 description: Enable IPv6 if MongoDB VIP is IPv6
275 PublicVirtualFixedIPs:
278 Control the IP allocation for the PublicVirtualInterface port. E.g.
279 [{'ip_address':'1.2.3.4'}]
284 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
287 description: The username for RabbitMQ
290 description: The password for RabbitMQ
296 Rabbit client subscriber parameter to specify
297 an SSL connection to the RabbitMQ host.
301 description: Set rabbit subscriber port, change this if using SSL
303 # We need to set this as string because 'unlimited' is a valid setting
306 description: Configures RabbitMQ FD limit
310 description: Enable IPv6 in RabbitMQ
313 description: The password for Redis
316 SnmpdReadonlyUserName:
317 default: ro_snmp_user
318 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
320 SnmpdReadonlyUserPassword:
321 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
324 StorageVirtualFixedIPs:
327 Control the IP allocation for the StorageVirtualInterface port. E.g.
328 [{'ip_address':'1.2.3.4'}]
330 StorageMgmtVirtualFixedIPs:
333 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
334 [{'ip_address':'1.2.3.4'}]
338 description: The timezone to be set on nodes.
341 default: 'localdomain'
344 The DNS domain used for the hosts. This should match the dhcp_domain
345 configured in the Undercloud neutron. Defaults to localdomain.
349 Extra properties or metadata passed to Nova for the created nodes in
350 the overcloud. It's accessible via the Nova metadata API.
353 # Controller-specific params
355 description: The keystone auth secret.
358 CinderLVMLoopDeviceSize:
360 description: The size of the loopback file used by the cinder LVM driver.
362 CinderNfsMountOptions:
365 Mount options for NFS mounts used by Cinder NFS backend. Effective
366 when CinderEnableNfsBackend is true.
371 NFS servers used by Cinder NFS backend. Effective when
372 CinderEnableNfsBackend is true.
373 type: comma_delimited_list
375 description: The password for the cinder service account, used by cinder-api.
380 description: The iSCSI helper to use with cinder.
387 controllerExtraConfig:
390 Controller specific configuration to inject into the cluster. Same
391 structure as ExtraConfig.
395 default: overcloud-full
397 - custom_constraint: glance.image
398 OvercloudControlFlavor:
399 description: Flavor for control nodes to request when deploying.
403 - custom_constraint: nova.flavor
404 ControlVirtualInterface:
406 description: Interface where virtual ip will be assigned.
410 description: Whether to enable fencing in Pacemaker or not.
414 description: Whether to use Galera instead of regular MariaDB.
416 ControllerEnableCephStorage:
418 description: Whether to deploy Ceph Storage (OSD) on the Controller
420 ControllerEnableSwiftStorage:
422 description: Whether to enable Swift Storage on the Controller
424 ControllerSchedulerHints:
426 description: Optional scheduler hints to pass to nova
431 Additional configuration to inject into the cluster. The format required
432 may be implementation specific, e.g puppet hieradata. Any role specific
433 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
438 Pacemaker fencing configuration. The JSON should have
439 the following structure:
443 "agent": "AGENT_NAME",
444 "host_mac": "HOST_MAC_ADDRESS",
445 "params": {"PARAM_NAME": "PARAM_VALUE"}
453 "agent": "fence_xvm",
454 "host_mac": "52:54:00:aa:bb:cc",
456 "multicast_address": "225.0.0.12",
457 "port": "baremetal_0",
459 "manage_key_file": true,
460 "key_file": "/etc/fence_xvm.key",
461 "key_file_password": "abcdef"
468 description: The filepath of the file to use for logging messages from Glance.
471 GlanceNotifierStrategy:
472 description: Strategy to use for Glance notification queue
476 description: The password for the glance service account, used by the glance services.
481 description: The short name of the Glance backend to use. Should be one
482 of swift, rbd or file
485 - allowed_values: ['swift', 'file', 'rbd']
487 description: The password for the Heat service account, used by the Heat services.
490 HeatStackDomainAdminPassword:
491 description: Password for heat_stack_domain_admin user.
494 InstanceNameTemplate:
495 default: 'instance-%08x'
496 description: Template string to be used to generate instance names
498 KeystoneCACertificate:
500 description: Keystone self-signed certificate authority certificate.
502 KeystoneSigningCertificate:
504 description: Keystone certificate for verifying token validity.
508 description: Keystone key for signing tokens.
511 KeystoneSSLCertificate:
513 description: Keystone certificate for verifying token validity.
515 KeystoneSSLCertificateKey:
517 description: Keystone key for signing tokens.
520 KeystoneNotificationDriver:
521 description: Comma-separated list of Oslo notification drivers used by Keystone
522 default: ['messaging']
523 type: comma_delimited_list
524 KeystoneNotificationFormat:
525 description: The Keystone notification format
529 - allowed_values: [ 'basic', 'cadf' ]
532 description: Whether to manage IPtables rules.
536 description: Whether IPtables rules should be purged before setting up the ones.
538 MysqlInnodbBufferPoolSize:
540 Specifies the size of the buffer pool in megabytes. Setting to
541 zero should be interpreted as "no value" and will defer to the
546 description: Configures MySQL max_connections config setting
549 NeutronDnsmasqOptions:
550 default: 'dhcp-option-force=26,%MTU%'
552 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
553 to be set to the value of NeutronTenantMtu, which should be set to account
556 NeutronPublicInterfaceDefaultRoute:
558 description: A custom default route for the NeutronPublicInterface.
560 NeutronPublicInterfaceIP:
562 description: A custom IP address to put onto the NeutronPublicInterface.
564 NeutronPublicInterfaceRawDevice:
566 description: If set, the public interface is a vlan with this device as the raw device.
568 PublicVirtualInterface:
571 Specifies the interface where the public-facing virtual ip will be assigned.
572 This should be int_public when a VLAN is being used.
575 description: A random string to be used as a salt when hashing to determine mappings in the ring.
579 description: The password for the swift service account, used by the swift proxy services.
584 description: Value of mount_check in Swift account/container/object -server.conf
589 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
592 description: Partition Power to use when building Swift rings
597 description: How many replicas to use in the swift rings.
599 description: The password for the sahara service account.
603 # Compute-specific params
604 CeilometerComputeAgent:
605 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
609 - allowed_values: ['', Present]
613 HypervisorNeutronPhysicalBridge:
616 An OVS bridge to create on each hypervisor. This defaults to br-ex the
617 same as the control plane nodes, as we have a uniform configuration of
618 the openvswitch agent. Typically should not need to be changed.
620 HypervisorNeutronPublicInterface:
622 description: What interface to add to the HypervisorNeutronPhysicalBridge.
624 NeutronNetworkVLANRanges:
625 default: 'datacentre:1:1000'
627 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
628 Neutron documentation for permitted values. Defaults to permitting any
629 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
630 type: comma_delimited_list
633 default: libvirt.LibvirtDriver
634 NovaComputeExtraConfig:
637 NovaCompute specific configuration to inject into the cluster. Same
638 structure as ExtraConfig.
640 NovaComputeLibvirtType:
643 NovaComputeLibvirtVifDriver:
645 description: Libvirt VIF driver configuration for the network
647 NovaComputeSchedulerHints:
649 description: Optional scheduler hints to pass to nova
651 NovaEnableRbdBackend:
653 description: Whether to enable or not the Rbd backend for Nova
657 default: overcloud-full
659 - custom_constraint: glance.image
662 description: Name of integration bridge used by Open vSwitch
664 NovaSecurityGroupAPI:
666 description: The full class name of the security API class
668 OvercloudComputeFlavor:
669 description: Use this flavor
673 - custom_constraint: nova.flavor
676 NeutronTenantNetwork: tenant
677 CeilometerApiNetwork: internal_api
678 MongoDbNetwork: internal_api
679 CinderApiNetwork: internal_api
680 CinderIscsiNetwork: storage
681 GlanceApiNetwork: storage
682 GlanceRegistryNetwork: internal_api
683 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
684 KeystonePublicApiNetwork: internal_api
685 NeutronApiNetwork: internal_api
686 HeatApiNetwork: internal_api
687 NovaApiNetwork: internal_api
688 NovaMetadataNetwork: internal_api
689 NovaVncProxyNetwork: internal_api
690 SwiftMgmtNetwork: storage_mgmt
691 SwiftProxyNetwork: storage
692 SaharaApiNetwork: internal_api
693 HorizonNetwork: internal_api
694 MemcachedNetwork: internal_api
695 RabbitMqNetwork: internal_api
696 RedisNetwork: internal_api
697 MysqlNetwork: internal_api
698 CephClusterNetwork: storage_mgmt
699 CephPublicNetwork: storage
700 ControllerHostnameResolveNetwork: internal_api
701 ComputeHostnameResolveNetwork: internal_api
702 BlockStorageHostnameResolveNetwork: internal_api
703 ObjectStorageHostnameResolveNetwork: internal_api
704 CephStorageHostnameResolveNetwork: storage
705 description: Mapping of service_name -> network name. Typically set
706 via parameter_defaults in the resource registry.
709 # Block storage specific parameters
714 default: overcloud-full
716 OvercloudBlockStorageFlavor:
717 description: Flavor for block storage nodes to request when deploying.
721 - custom_constraint: nova.flavor
722 BlockStorageExtraConfig:
725 BlockStorage specific configuration to inject into the cluster. Same
726 structure as ExtraConfig.
728 BlockStorageSchedulerHints:
730 description: Optional scheduler hints to pass to nova
734 # Object storage specific parameters
738 OvercloudSwiftStorageFlavor:
739 description: Flavor for Swift storage nodes to request when deploying.
743 - custom_constraint: nova.flavor
745 default: overcloud-full
747 ObjectStorageExtraConfig:
750 ObjectStorage specific configuration to inject into the cluster. Same
751 structure as ExtraConfig.
753 ObjectStorageSchedulerHints:
755 description: Optional scheduler hints to pass to nova
758 # Ceph storage specific parameters
763 default: overcloud-full
765 OvercloudCephStorageFlavor:
767 description: Flavor for Ceph storage nodes to request when deploying.
770 - custom_constraint: nova.flavor
771 CephStorageExtraConfig:
774 CephStorage specific configuration to inject into the cluster. Same
775 structure as ExtraConfig.
777 CephStorageSchedulerHints:
779 description: Optional scheduler hints to pass to nova
783 # Hostname format for each role
784 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
785 # and %stackname% is replaced with OS::stack_name in the template below.
786 # If you want to use the heat generated names, pass '' (empty string).
787 ControllerHostnameFormat:
789 description: Format for Controller node hostnames
790 default: '%stackname%-controller-%index%'
791 ComputeHostnameFormat:
793 description: Format for Compute node hostnames
794 default: '%stackname%-novacompute-%index%'
795 BlockStorageHostnameFormat:
797 description: Format for BlockStorage node hostnames
798 default: '%stackname%-blockstorage-%index%'
799 ObjectStorageHostnameFormat:
801 description: Format for SwiftStorage node hostnames
802 default: '%stackname%-objectstorage-%index%'
803 CephStorageHostnameFormat:
805 description: Format for CephStorage node hostnames
806 default: '%stackname%-cephstorage-%index%'
808 # Identifiers to trigger tasks on nodes
813 Setting to a previously unused value during stack-update will trigger
814 package update on all nodes
819 Setting this to a unique value will re-run any deployment tasks which
820 perform configuration on a Heat stack-update.
822 # If you want to remove a specific node from a resource group, you can pass
823 # the node name or id as a <Group>RemovalPolicies parameter, for example:
824 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
825 ControllerRemovalPolicies:
829 List of resources to be removed from ControllerResourceGroup when
830 doing an update which requires removal of specific resources.
831 ComputeRemovalPolicies:
835 List of resources to be removed from ComputeResourceGroup when
836 doing an update which requires removal of specific resources.
837 BlockStorageRemovalPolicies:
841 List of resources to be removed from BlockStorageResourceGroup when
842 doing an update which requires removal of specific resources.
843 ObjectStorageRemovalPolicies:
847 List of resources to be removed from ObjectStorageResourceGroup when
848 doing an update which requires removal of specific resources.
849 CephStorageRemovalPolicies:
853 List of resources to be removed from CephStorageResourceGroup when
854 doing an update which requires removal of specific resources.
859 HeatAuthEncryptionKey:
860 type: OS::Heat::RandomString
863 type: OS::Heat::RandomString
868 type: OS::Heat::RandomString
873 type: OS::TripleO::EndpointMap
875 CloudName: {get_param: CloudName}
876 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
877 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
878 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
879 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
880 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
881 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
882 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
883 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
884 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
885 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
886 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
887 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
890 type: OS::Heat::ResourceGroup
893 count: {get_param: ControllerCount}
894 removal_policies: {get_param: ControllerRemovalPolicies}
896 type: OS::TripleO::Controller
898 AdminPassword: {get_param: AdminPassword}
899 AdminToken: {get_param: AdminToken}
900 CeilometerBackend: {get_param: CeilometerBackend}
901 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
902 CeilometerPassword: {get_param: CeilometerPassword}
903 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
904 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
905 CinderNfsServers: {get_param: CinderNfsServers}
906 CinderPassword: {get_param: CinderPassword}
907 CinderISCSIHelper: {get_param: CinderISCSIHelper}
908 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
909 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
910 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
911 CloudDomain: {get_param: CloudDomain}
912 ControlVirtualInterface: {get_param: ControlVirtualInterface}
913 ControllerExtraConfig: {get_param: controllerExtraConfig}
914 CorosyncIPv6: {get_param: CorosyncIPv6}
915 Debug: {get_param: Debug}
916 EnableFencing: {get_param: EnableFencing}
917 ManageFirewall: {get_param: ManageFirewall}
918 PurgeFirewallRules: {get_param: PurgeFirewallRules}
919 EnableGalera: {get_param: EnableGalera}
920 EnableCephStorage: {get_param: ControllerEnableCephStorage}
921 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
922 ExtraConfig: {get_param: ExtraConfig}
923 FencingConfig: {get_param: FencingConfig}
924 Flavor: {get_param: OvercloudControlFlavor}
925 GlancePassword: {get_param: GlancePassword}
926 GlanceBackend: {get_param: GlanceBackend}
927 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
928 GlanceLogFile: {get_param: GlanceLogFile}
929 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
930 HeatPassword: {get_param: HeatPassword}
931 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
932 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
933 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
934 HorizonSecret: {get_resource: HorizonSecret}
935 Image: {get_param: controllerImage}
936 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
937 InstanceNameTemplate: {get_param: InstanceNameTemplate}
938 KeyName: {get_param: KeyName}
939 KeystoneCACertificate: {get_param: KeystoneCACertificate}
940 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
941 KeystoneSigningKey: {get_param: KeystoneSigningKey}
942 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
943 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
944 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
945 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
946 MemcachedIPv6: {get_param: MemcachedIPv6}
947 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
948 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
949 MysqlMaxConnections: {get_param: MysqlMaxConnections}
950 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
951 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
952 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
953 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
954 NeutronTenantMtu: {get_param: NeutronTenantMtu}
955 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
956 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
957 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
958 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
959 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
960 NeutronPublicInterface: {get_param: NeutronPublicInterface}
961 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
962 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
963 NeutronPassword: {get_param: NeutronPassword}
964 NeutronDnsmasqOptions:
966 template: {get_param: NeutronDnsmasqOptions}
968 '%MTU%': {get_param: NeutronTenantMtu}
969 NeutronDVR: {get_param: NeutronDVR}
970 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
971 NeutronAgentMode: {get_param: NeutronAgentMode}
972 NeutronCorePlugin: {get_param: NeutronCorePlugin}
973 NeutronServicePlugins: {get_param: NeutronServicePlugins}
974 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
975 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
976 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
977 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
978 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
979 NeutronL3HA: {get_param: NeutronL3HA}
980 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
981 NeutronNetworkType: {get_param: NeutronNetworkType}
982 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
983 NovaIPv6: {get_param: NovaIPv6}
984 NovaPassword: {get_param: NovaPassword}
985 NtpServer: {get_param: NtpServer}
986 MongoDbNoJournal: {get_param: MongoDbNoJournal}
987 MongoDbIPv6: {get_param: MongoDbIPv6}
988 PcsdPassword: {get_resource: PcsdPassword}
989 PublicVirtualInterface: {get_param: PublicVirtualInterface}
990 RabbitPassword: {get_param: RabbitPassword}
991 RabbitUserName: {get_param: RabbitUserName}
992 RabbitCookie: {get_attr: [RabbitCookie, value]}
993 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
994 RabbitClientPort: {get_param: RabbitClientPort}
995 RabbitFDLimit: {get_param: RabbitFDLimit}
996 RabbitIPv6: {get_param: RabbitIPv6}
997 RedisPassword: {get_param: RedisPassword}
998 SaharaPassword: {get_param: SaharaPassword}
999 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1000 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1001 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
1002 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
1003 SwiftHashSuffix: {get_param: SwiftHashSuffix}
1004 SwiftMountCheck: {get_param: SwiftMountCheck}
1005 SwiftMinPartHours: {get_param: SwiftMinPartHours}
1006 SwiftPartPower: {get_param: SwiftPartPower}
1007 SwiftPassword: {get_param: SwiftPassword}
1008 SwiftReplicas: { get_param: SwiftReplicas}
1009 TimeZone: {get_param: TimeZone}
1010 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
1011 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
1012 ServiceNetMap: {get_param: ServiceNetMap}
1013 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1014 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1015 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1016 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1017 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1018 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1019 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1020 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1021 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1022 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1023 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1024 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1025 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1026 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1027 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1028 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1029 UpdateIdentifier: {get_param: UpdateIdentifier}
1032 template: {get_param: ControllerHostnameFormat}
1034 '%stackname%': {get_param: 'OS::stack_name'}
1035 NodeIndex: '%index%'
1036 ServerMetadata: {get_param: ServerMetadata}
1037 SchedulerHints: {get_param: ControllerSchedulerHints}
1040 type: OS::Heat::ResourceGroup
1041 depends_on: Networks
1043 count: {get_param: ComputeCount}
1044 removal_policies: {get_param: ComputeRemovalPolicies}
1046 type: OS::TripleO::Compute
1048 AdminPassword: {get_param: AdminPassword}
1049 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1050 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1051 CeilometerPassword: {get_param: CeilometerPassword}
1052 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1053 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1054 Debug: {get_param: Debug}
1055 ExtraConfig: {get_param: ExtraConfig}
1056 Flavor: {get_param: OvercloudComputeFlavor}
1057 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1058 Image: {get_param: NovaImage}
1059 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1060 KeyName: {get_param: KeyName}
1061 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1062 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1063 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1064 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1065 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1066 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1067 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1068 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1069 NeutronNetworkType: {get_param: NeutronNetworkType}
1070 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1071 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1072 NeutronPassword: {get_param: NeutronPassword}
1073 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1074 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1075 NeutronDVR: {get_param: NeutronDVR}
1076 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1077 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1078 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1079 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1080 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1081 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1082 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1083 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1084 # L3 HA and Failover is not relevant for Computes, should be removed
1085 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1086 NeutronL3HA: {get_param: NeutronL3HA}
1087 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1088 NovaComputeDriver: {get_param: NovaComputeDriver}
1089 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1090 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1091 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1092 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1093 NovaIPv6: {get_param: NovaIPv6}
1094 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1095 NovaPassword: {get_param: NovaPassword}
1096 NovaOVSBridge: {get_param: NovaOVSBridge}
1097 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1098 NtpServer: {get_param: NtpServer}
1099 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1100 RabbitPassword: {get_param: RabbitPassword}
1101 RabbitUserName: {get_param: RabbitUserName}
1102 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1103 RabbitClientPort: {get_param: RabbitClientPort}
1104 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1105 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1106 ServiceNetMap: {get_param: ServiceNetMap}
1107 TimeZone: {get_param: TimeZone}
1108 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1109 UpdateIdentifier: {get_param: UpdateIdentifier}
1112 template: {get_param: ComputeHostnameFormat}
1114 '%stackname%': {get_param: 'OS::stack_name'}
1115 CloudDomain: {get_param: CloudDomain}
1116 ServerMetadata: {get_param: ServerMetadata}
1117 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1118 NodeIndex: '%index%'
1121 type: OS::Heat::ResourceGroup
1122 depends_on: Networks
1124 count: {get_param: BlockStorageCount}
1125 removal_policies: {get_param: BlockStorageRemovalPolicies}
1127 type: OS::TripleO::BlockStorage
1129 Debug: {get_param: Debug}
1130 Image: {get_param: BlockStorageImage}
1131 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1132 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1133 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1134 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1135 CinderPassword: {get_param: CinderPassword}
1136 KeyName: {get_param: KeyName}
1137 Flavor: {get_param: OvercloudBlockStorageFlavor}
1138 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1139 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1140 RabbitPassword: {get_param: RabbitPassword}
1141 RabbitUserName: {get_param: RabbitUserName}
1142 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1143 RabbitClientPort: {get_param: RabbitClientPort}
1144 TimeZone: {get_param: TimeZone}
1145 NtpServer: {get_param: NtpServer}
1146 UpdateIdentifier: {get_param: UpdateIdentifier}
1149 template: {get_param: BlockStorageHostnameFormat}
1151 '%stackname%': {get_param: 'OS::stack_name'}
1152 ServiceNetMap: {get_param: ServiceNetMap}
1153 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1154 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1155 ExtraConfig: {get_param: ExtraConfig}
1156 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1157 CloudDomain: {get_param: CloudDomain}
1158 ServerMetadata: {get_param: ServerMetadata}
1159 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1160 NodeIndex: '%index%'
1163 type: OS::Heat::ResourceGroup
1164 depends_on: Networks
1166 count: {get_param: ObjectStorageCount}
1167 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1169 type: OS::TripleO::ObjectStorage
1171 KeyName: {get_param: KeyName}
1172 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1173 HashSuffix: {get_param: SwiftHashSuffix}
1174 MountCheck: {get_param: SwiftMountCheck}
1175 MinPartHours: {get_param: SwiftMinPartHours}
1176 PartPower: {get_param: SwiftPartPower}
1177 Image: {get_param: SwiftStorageImage}
1178 Replicas: { get_param: SwiftReplicas}
1179 TimeZone: {get_param: TimeZone}
1180 NtpServer: {get_param: NtpServer}
1181 UpdateIdentifier: {get_param: UpdateIdentifier}
1182 ServiceNetMap: {get_param: ServiceNetMap}
1185 template: {get_param: ObjectStorageHostnameFormat}
1187 '%stackname%': {get_param: 'OS::stack_name'}
1188 ExtraConfig: {get_param: ExtraConfig}
1189 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1190 CloudDomain: {get_param: CloudDomain}
1191 ServerMetadata: {get_param: ServerMetadata}
1192 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1193 NodeIndex: '%index%'
1196 type: OS::Heat::ResourceGroup
1197 depends_on: Networks
1199 count: {get_param: CephStorageCount}
1200 removal_policies: {get_param: CephStorageRemovalPolicies}
1202 type: OS::TripleO::CephStorage
1204 Image: {get_param: CephStorageImage}
1205 KeyName: {get_param: KeyName}
1206 Flavor: {get_param: OvercloudCephStorageFlavor}
1207 NtpServer: {get_param: NtpServer}
1208 ServiceNetMap: {get_param: ServiceNetMap}
1209 TimeZone: {get_param: TimeZone}
1210 UpdateIdentifier: {get_param: UpdateIdentifier}
1213 template: {get_param: CephStorageHostnameFormat}
1215 '%stackname%': {get_param: 'OS::stack_name'}
1216 ExtraConfig: {get_param: ExtraConfig}
1217 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1218 CloudDomain: {get_param: CloudDomain}
1219 ServerMetadata: {get_param: ServerMetadata}
1220 SchedulerHints: {get_param: CephStorageSchedulerHints}
1221 NodeIndex: '%index%'
1223 ControllerIpListMap:
1224 type: OS::TripleO::Network::Ports::NetIpListMap
1226 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1227 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1228 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1229 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1230 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1231 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1232 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1235 type: OS::TripleO::AllNodes::SoftwareConfig
1237 compute_hosts: {get_attr: [Compute, hosts_entry]}
1238 controller_hosts: {get_attr: [Controller, hosts_entry]}
1239 controller_ips: {get_attr: [Controller, ip_address]}
1240 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1241 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1242 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1243 controller_names: {get_attr: [Controller, hostname]}
1244 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1245 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1246 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1247 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1248 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1249 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1250 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1251 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1252 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1253 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1254 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1255 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1256 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1257 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1258 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1259 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1260 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1261 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1262 DeployIdentifier: {get_param: DeployIdentifier}
1263 UpdateIdentifier: {get_param: UpdateIdentifier}
1266 type: OS::Heat::RandomString
1270 MysqlClusterUniquePart:
1271 type: OS::Heat::RandomString
1276 type: OS::Heat::RandomString
1279 salt: {get_param: RabbitCookieSalt}
1281 # creates the network architecture
1283 type: OS::TripleO::Network
1286 type: OS::Neutron::Port
1287 depends_on: Networks
1289 name: control_virtual_ip
1290 network: {get_param: NeutronControlPlaneID}
1291 fixed_ips: {get_param: ControlFixedIPs}
1292 replacement_policy: AUTO
1295 depends_on: Networks
1296 type: OS::TripleO::Network::Ports::RedisVipPort
1298 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1299 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1300 PortName: redis_virtual_ip
1301 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1304 # The public VIP is on the External net, falls back to ctlplane
1306 depends_on: Networks
1307 type: OS::TripleO::Network::Ports::ExternalVipPort
1309 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1310 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1311 PortName: public_virtual_ip
1312 FixedIPs: {get_param: PublicVirtualFixedIPs}
1314 InternalApiVirtualIP:
1315 depends_on: Networks
1316 type: OS::TripleO::Network::Ports::InternalApiVipPort
1318 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1319 PortName: internal_api_virtual_ip
1320 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1323 depends_on: Networks
1324 type: OS::TripleO::Network::Ports::StorageVipPort
1326 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1327 PortName: storage_virtual_ip
1328 FixedIPs: {get_param: StorageVirtualFixedIPs}
1330 StorageMgmtVirtualIP:
1331 depends_on: Networks
1332 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1334 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1335 PortName: storage_management_virtual_ip
1336 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1339 type: OS::TripleO::Network::Ports::NetVipMap
1341 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1342 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1343 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1344 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1345 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1346 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1347 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1348 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1349 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1350 # No tenant or management VIP required
1353 type: OS::TripleO::VipConfig
1356 type: OS::Heat::StructuredDeployments
1359 config: {get_resource: VipConfig}
1360 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1362 # service VIP mappings
1363 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1364 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1365 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1366 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1367 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1368 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1369 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1370 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1371 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1372 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1373 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1374 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1375 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1376 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1377 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1378 # direct configuration of Virtual IPs for each network
1379 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1380 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1381 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1382 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1383 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1384 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1386 ControllerBootstrapNodeConfig:
1387 type: OS::TripleO::BootstrapNode::SoftwareConfig
1389 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1390 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1392 ControllerBootstrapNodeDeployment:
1393 type: OS::Heat::StructuredDeployments
1395 name: ControllerBootstrapNodeDeployment
1396 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1397 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1399 ControllerSwiftDeployment:
1400 type: OS::Heat::StructuredDeployments
1402 name: ControllerSwiftDeployment
1403 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1404 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1406 ObjectStorageSwiftDeployment:
1407 type: OS::Heat::StructuredDeployments
1409 name: ObjectStorageSwiftDeployment
1410 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1411 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1413 SwiftDevicesAndProxyConfig:
1414 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1416 controller_swift_devices: {get_attr: [Controller, swift_device]}
1417 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1418 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1420 ComputeCephDeployment:
1421 type: OS::Heat::StructuredDeployments
1423 name: ComputeCephDeployment
1424 config: {get_attr: [CephClusterConfig, config_id]}
1425 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1427 ControllerCephDeployment:
1428 type: OS::Heat::StructuredDeployments
1430 name: ControllerCephDeployment
1431 config: {get_attr: [CephClusterConfig, config_id]}
1432 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1434 CephStorageCephDeployment:
1435 type: OS::Heat::StructuredDeployments
1437 name: CephStorageCephDeployment
1438 config: {get_attr: [CephClusterConfig, config_id]}
1439 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1442 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1444 ceph_storage_count: {get_param: CephStorageCount}
1445 ceph_fsid: {get_param: CephClusterFSID}
1446 ceph_mon_key: {get_param: CephMonKey}
1447 ceph_admin_key: {get_param: CephAdminKey}
1448 ceph_client_key: {get_param: CephClientKey}
1449 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1450 ceph_mon_names: {get_attr: [Controller, hostname]}
1451 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1453 ControllerClusterConfig:
1454 type: OS::Heat::StructuredConfig
1456 group: os-apply-config
1459 nodes: {get_attr: [Controller, corosync_node]}
1463 nodes: {get_attr: [Controller, hostname]}
1465 nodes: {get_attr: [Controller, corosync_node]}
1467 nodes: {get_attr: [Controller, corosync_node]}
1469 ControllerClusterDeployment:
1470 type: OS::Heat::StructuredDeployments
1472 name: ControllerClusterDeployment
1473 config: {get_resource: ControllerClusterConfig}
1474 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1476 ControllerAllNodesDeployment:
1477 type: OS::Heat::StructuredDeployments
1479 name: ControllerAllNodesDeployment
1480 config: {get_attr: [allNodesConfig, config_id]}
1481 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1483 ComputeAllNodesDeployment:
1484 type: OS::Heat::StructuredDeployments
1486 name: ComputeAllNodesDeployment
1487 config: {get_attr: [allNodesConfig, config_id]}
1488 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1490 BlockStorageAllNodesDeployment:
1491 type: OS::Heat::StructuredDeployments
1493 name: BlockStorageAllNodesDeployment
1494 config: {get_attr: [allNodesConfig, config_id]}
1495 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1497 ObjectStorageAllNodesDeployment:
1498 type: OS::Heat::StructuredDeployments
1500 name: ObjectStorageAllNodesDeployment
1501 config: {get_attr: [allNodesConfig, config_id]}
1502 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1504 CephStorageAllNodesDeployment:
1505 type: OS::Heat::StructuredDeployments
1507 name: CephStorageAllNodesDeployment
1508 config: {get_attr: [allNodesConfig, config_id]}
1509 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1511 # All Nodes Validations
1512 AllNodesValidationConfig:
1513 type: OS::TripleO::AllNodes::Validation
1518 - - {get_attr: [Controller, resource.0.external_ip_address]}
1519 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1520 - {get_attr: [Controller, resource.0.storage_ip_address]}
1521 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1522 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1524 ControllerAllNodesValidationDeployment:
1525 type: OS::Heat::StructuredDeployments
1526 depends_on: ControllerAllNodesDeployment
1528 name: ControllerAllNodesValidationDeployment
1529 config: {get_resource: AllNodesValidationConfig}
1530 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1532 ComputeAllNodesValidationDeployment:
1533 type: OS::Heat::StructuredDeployments
1534 depends_on: ComputeAllNodesDeployment
1536 name: ComputeAllNodesValidationDeployment
1537 config: {get_resource: AllNodesValidationConfig}
1538 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1540 BlockStorageAllNodesValidationDeployment:
1541 type: OS::Heat::StructuredDeployments
1542 depends_on: BlockStorageAllNodesDeployment
1544 name: BlockStorageAllNodesValidationDeployment
1545 config: {get_resource: AllNodesValidationConfig}
1546 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1548 ObjectStorageAllNodesValidationDeployment:
1549 type: OS::Heat::StructuredDeployments
1550 depends_on: ObjectStorageAllNodesDeployment
1552 name: ObjectStorageAllNodesValidationDeployment
1553 config: {get_resource: AllNodesValidationConfig}
1554 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1556 CephStorageAllNodesValidationDeployment:
1557 type: OS::Heat::StructuredDeployments
1558 depends_on: CephStorageAllNodesDeployment
1560 name: CephStorageAllNodesValidationDeployment
1561 config: {get_resource: AllNodesValidationConfig}
1562 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1565 type: OS::TripleO::Tasks::UpdateWorkflow
1567 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1568 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1569 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1570 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1571 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1573 deploy_identifier: {get_param: DeployIdentifier}
1574 update_identifier: {get_param: UpdateIdentifier}
1576 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1577 # the nested template may configure each role differently (or not at all)
1578 AllNodesExtraConfig:
1579 type: OS::TripleO::AllNodesExtraConfig
1582 - ComputeAllNodesValidationDeployment
1583 - BlockStorageAllNodesValidationDeployment
1584 - ObjectStorageAllNodesValidationDeployment
1585 - CephStorageAllNodesValidationDeployment
1586 - ControllerAllNodesValidationDeployment
1588 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1589 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1590 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1591 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1592 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1594 # Nested stack deployment runs after all other controller deployments
1595 ControllerNodesPostDeployment:
1596 type: OS::TripleO::ControllerPostDeployment
1597 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1599 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1600 NodeConfigIdentifiers:
1601 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1602 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1603 deployment_identifier: {get_param: DeployIdentifier}
1605 ComputeNodesPostDeployment:
1606 type: OS::TripleO::ComputePostDeployment
1607 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1609 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1610 NodeConfigIdentifiers:
1611 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1612 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1613 deployment_identifier: {get_param: DeployIdentifier}
1615 ObjectStorageNodesPostDeployment:
1616 type: OS::TripleO::ObjectStoragePostDeployment
1617 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1619 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1620 NodeConfigIdentifiers:
1621 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1622 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1623 deployment_identifier: {get_param: DeployIdentifier}
1625 BlockStorageNodesPostDeployment:
1626 type: OS::TripleO::BlockStoragePostDeployment
1627 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1629 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1630 NodeConfigIdentifiers:
1631 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1632 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1633 deployment_identifier: {get_param: DeployIdentifier}
1635 CephStorageNodesPostDeployment:
1636 type: OS::TripleO::CephStoragePostDeployment
1637 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1639 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1640 NodeConfigIdentifiers:
1641 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1642 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1643 deployment_identifier: {get_param: DeployIdentifier}
1647 description: URL for the Overcloud Keystone service
1648 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1650 description: Keystone Admin VIP endpoint
1651 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1653 description: Controller VIP for public API endpoints
1654 value: {get_attr: [VipMap, net_ip_map, external]}
1655 CeilometerInternalVip:
1656 description: VIP for Ceilometer API internal endpoint
1657 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1659 description: VIP for Cinder API internal endpoint
1660 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1662 description: VIP for Glance API internal endpoint
1663 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1665 description: VIP for Heat API internal endpoint
1666 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1667 KeystoneInternalVip:
1668 description: VIP for Keystone API internal endpoint
1669 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1671 description: VIP for Neutron API internal endpoint
1672 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1674 description: VIP for Nova API internal endpoint
1675 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1677 description: VIP for Sahara API internal endpoint
1678 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1680 description: VIP for Swift Proxy internal endpoint
1681 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1684 The content that should be appended to your /etc/hosts if you want to get
1685 hostname-based access to the deployed nodes (useful for testing without
1687 value: {get_attr: [allNodesConfig, hosts_entries]}