1 heat_template_version: 2016-04-08
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.
20 description: The password for the aodh services.
25 description: The ceilometer backend type.
27 CeilometerMeteringSecret:
28 description: Secret shared by the ceilometer services.
32 description: The password for the ceilometer service account.
35 # This has to be an UUID so for now we generate it outside the template
39 description: The Ceph cluster FSID. Must be a UUID.
42 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
47 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
50 CinderEnableNfsBackend:
52 description: Whether to enable or not the NFS backend for Cinder
56 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.
62 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
63 CinderEnableIscsiBackend:
65 description: Whether to enable or not the Iscsi backend for Cinder
67 CinderEnableRbdBackend:
69 description: Whether to enable or not the Rbd backend for Cinder
73 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
77 description: Should be used for arbitrary ips.
81 description: Enable IPv6 in Corosync
85 description: Set to True to enable debugging on all services.
89 description: Syslog address where HAproxy will send its log
93 description: A list of IP/Hostname allowed to connect to horizon
94 type: comma_delimited_list
96 default: 'REBUILD_PRESERVE_EPHEMERAL'
97 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
99 InternalApiVirtualFixedIPs:
102 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
103 [{'ip_address':'1.2.3.4'}]
107 description: Name of an existing Nova key pair to enable SSH access to the instances
110 - custom_constraint: nova.keypair
113 description: Enable IPv6 features in Memcached.
115 NeutronExternalNetworkBridge:
116 description: Name of bridge used for external network traffic.
119 NeutronBridgeMappings:
121 The OVS logical->physical bridge mappings to use. See the Neutron
122 documentation for details. Defaults to mapping br-ex - the external
123 bridge on hosts - to a physical name 'datacentre' which can be used
124 to create provider networks (and we use this for the default floating
125 network) - if changing this either use different post-install network
126 scripts or be sure to keep 'datacentre' as a mapping network name.
127 type: comma_delimited_list
128 default: "datacentre:br-ex"
129 NeutronControlPlaneID:
132 description: Neutron ID or name for ctlplane network.
133 NeutronEnableIsolatedMetadata:
135 description: If True, DHCP provide metadata route to VM.
137 NeutronEnableTunnelling:
143 Enable/disable the L2 population feature in the Neutron agents.
146 type: comma_delimited_list
147 default: 'datacentre'
149 If set, flat networks to configure in neutron plugins. Defaults to
150 'datacentre' to permit external network creation.
153 description: The tenant network type for Neutron.
154 type: comma_delimited_list
156 description: The password for the neutron service account, used by neutron agents.
159 NeutronPublicInterface:
161 description: What interface to bridge onto br-ex for network nodes.
163 NeutronPublicInterfaceTag:
166 VLAN tag for creating a public VLAN. The tag will be used to
167 create an access port on the exterior bridge for each control plane node,
168 and that port will be given the IP address returned by neutron from the
169 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
170 overcloud.yaml to include the deployment of VLAN ports to the control
173 NeutronComputeAgentMode:
175 description: Agent mode for the neutron-l3-agent on the compute hosts
179 description: Agent mode for the neutron-l3-agent on the controller hosts
183 description: Whether to configure Neutron Distributed Virtual Routers
185 NeutronMetadataProxySharedSecret:
186 description: Shared secret to prevent spoofing
191 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
192 be at least 50 bytes smaller than the MTU on the physical network. This
193 value will be used to set the MTU on the virtual Ethernet device.
194 This value will be used to construct the NeutronDnsmasqOptions, since that
195 will determine the MTU that is assigned to the VM host through DHCP.
201 The tunnel types for the Neutron tenant network.
202 type: comma_delimited_list
203 NeutronTunnelIdRanges:
205 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
206 of GRE tunnel IDs that are available for tenant network allocation
207 default: ["1:4094", ]
208 type: comma_delimited_list
211 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
212 of VXLAN VNI IDs that are available for tenant network allocation
213 default: ["1:4094", ]
214 type: comma_delimited_list
218 The core plugin for Neutron. The value should be the entrypoint to be loaded
219 from neutron.core_plugins namespace.
221 NeutronServicePlugins:
222 default: "router,qos"
224 Comma-separated list of service plugin entrypoints to be loaded from the
225 neutron.service_plugins namespace.
226 type: comma_delimited_list
228 default: "vxlan,vlan,flat,gre"
230 Comma-separated list of network type driver entrypoints to be loaded.
231 type: comma_delimited_list
232 NeutronMechanismDrivers:
233 default: 'openvswitch'
235 The mechanism drivers for the Neutron tenant network.
236 type: comma_delimited_list
237 NeutronPluginExtensions:
238 default: "qos,port_security"
240 Comma-separated list of extensions enabled for the Neutron plugin.
241 type: comma_delimited_list
242 NeutronAgentExtensions:
245 Comma-separated list of extensions enabled for the Neutron agents.
246 type: comma_delimited_list
247 NeutronAllowL3AgentFailover:
249 description: Allow automatic l3-agent failover
253 description: Whether to enable l3-agent HA
255 NeutronDhcpAgentsPerNetwork:
258 description: The number of neutron dhcp agents to schedule per network
261 description: Enable IPv6 features in Nova
264 description: The password for the nova service account, used by nova-api.
269 description: Comma-separated list of ntp servers
270 type: comma_delimited_list
273 description: Should MongoDb journaling be disabled
277 description: Enable IPv6 if MongoDB VIP is IPv6
279 PublicVirtualFixedIPs:
282 Control the IP allocation for the PublicVirtualInterface port. E.g.
283 [{'ip_address':'1.2.3.4'}]
288 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
291 description: The username for RabbitMQ
294 description: The password for RabbitMQ
300 Rabbit client subscriber parameter to specify
301 an SSL connection to the RabbitMQ host.
305 description: Set rabbit subscriber port, change this if using SSL
307 # We need to set this as string because 'unlimited' is a valid setting
310 description: Configures RabbitMQ FD limit
314 description: Enable IPv6 in RabbitMQ
317 description: The password for Redis
320 SnmpdReadonlyUserName:
321 default: ro_snmp_user
322 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
324 SnmpdReadonlyUserPassword:
325 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
328 StorageVirtualFixedIPs:
331 Control the IP allocation for the StorageVirtualInterface port. E.g.
332 [{'ip_address':'1.2.3.4'}]
334 StorageMgmtVirtualFixedIPs:
337 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
338 [{'ip_address':'1.2.3.4'}]
342 description: The timezone to be set on nodes.
345 default: 'localdomain'
348 The DNS domain used for the hosts. This should match the dhcp_domain
349 configured in the Undercloud neutron. Defaults to localdomain.
353 Extra properties or metadata passed to Nova for the created nodes in
354 the overcloud. It's accessible via the Nova metadata API.
357 # Controller-specific params
359 description: The keystone auth secret.
362 CinderLVMLoopDeviceSize:
364 description: The size of the loopback file used by the cinder LVM driver.
366 CinderNfsMountOptions:
369 Mount options for NFS mounts used by Cinder NFS backend. Effective
370 when CinderEnableNfsBackend is true.
375 NFS servers used by Cinder NFS backend. Effective when
376 CinderEnableNfsBackend is true.
377 type: comma_delimited_list
379 description: The password for the cinder service account, used by cinder-api.
384 description: The iSCSI helper to use with cinder.
391 controllerExtraConfig:
394 Controller specific configuration to inject into the cluster. Same
395 structure as ExtraConfig.
399 default: overcloud-full
401 - custom_constraint: glance.image
402 OvercloudControlFlavor:
403 description: Flavor for control nodes to request when deploying.
407 - custom_constraint: nova.flavor
408 ControlVirtualInterface:
410 description: Interface where virtual ip will be assigned.
414 description: Whether to enable fencing in Pacemaker or not.
418 description: Whether to use Galera instead of regular MariaDB.
420 ControllerEnableCephStorage:
422 description: Whether to deploy Ceph Storage (OSD) on the Controller
424 ControllerEnableSwiftStorage:
426 description: Whether to enable Swift Storage on the Controller
428 ControllerSchedulerHints:
430 description: Optional scheduler hints to pass to nova
435 Additional configuration to inject into the cluster. The format required
436 may be implementation specific, e.g puppet hieradata. Any role specific
437 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
442 Pacemaker fencing configuration. The JSON should have
443 the following structure:
447 "agent": "AGENT_NAME",
448 "host_mac": "HOST_MAC_ADDRESS",
449 "params": {"PARAM_NAME": "PARAM_VALUE"}
457 "agent": "fence_xvm",
458 "host_mac": "52:54:00:aa:bb:cc",
460 "multicast_address": "225.0.0.12",
461 "port": "baremetal_0",
463 "manage_key_file": true,
464 "key_file": "/etc/fence_xvm.key",
465 "key_file_password": "abcdef"
472 description: The filepath of the file to use for logging messages from Glance.
475 GlanceNotifierStrategy:
476 description: Strategy to use for Glance notification queue
480 description: The password for the glance service account, used by the glance services.
485 description: The short name of the Glance backend to use. Should be one
486 of swift, rbd or file
489 - allowed_values: ['swift', 'file', 'rbd']
491 description: The password for the Heat service account, used by the Heat services.
494 HeatStackDomainAdminPassword:
495 description: Password for heat_stack_domain_admin user.
498 InstanceNameTemplate:
499 default: 'instance-%08x'
500 description: Template string to be used to generate instance names
502 KeystoneCACertificate:
504 description: Keystone self-signed certificate authority certificate.
506 KeystoneSigningCertificate:
508 description: Keystone certificate for verifying token validity.
512 description: Keystone key for signing tokens.
515 KeystoneSSLCertificate:
517 description: Keystone certificate for verifying token validity.
519 KeystoneSSLCertificateKey:
521 description: Keystone key for signing tokens.
524 KeystoneNotificationDriver:
525 description: Comma-separated list of Oslo notification drivers used by Keystone
526 default: ['messaging']
527 type: comma_delimited_list
528 KeystoneNotificationFormat:
529 description: The Keystone notification format
533 - allowed_values: [ 'basic', 'cadf' ]
536 description: Whether to manage IPtables rules.
540 description: Whether IPtables rules should be purged before setting up the ones.
542 MysqlInnodbBufferPoolSize:
544 Specifies the size of the buffer pool in megabytes. Setting to
545 zero should be interpreted as "no value" and will defer to the
550 description: Configures MySQL max_connections config setting
553 NeutronDnsmasqOptions:
554 default: 'dhcp-option-force=26,%MTU%'
556 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
557 to be set to the value of NeutronTenantMtu, which should be set to account
560 NeutronPublicInterfaceDefaultRoute:
562 description: A custom default route for the NeutronPublicInterface.
564 NeutronPublicInterfaceIP:
566 description: A custom IP address to put onto the NeutronPublicInterface.
568 NeutronPublicInterfaceRawDevice:
570 description: If set, the public interface is a vlan with this device as the raw device.
572 PublicVirtualInterface:
575 Specifies the interface where the public-facing virtual ip will be assigned.
576 This should be int_public when a VLAN is being used.
579 description: A random string to be used as a salt when hashing to determine mappings in the ring.
583 description: The password for the swift service account, used by the swift proxy services.
588 description: Value of mount_check in Swift account/container/object -server.conf
593 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
596 description: Partition Power to use when building Swift rings
601 description: How many replicas to use in the swift rings.
603 description: The password for the sahara service account.
607 # Compute-specific params
608 CeilometerComputeAgent:
609 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
613 - allowed_values: ['', Present]
617 HypervisorNeutronPhysicalBridge:
620 An OVS bridge to create on each hypervisor. This defaults to br-ex the
621 same as the control plane nodes, as we have a uniform configuration of
622 the openvswitch agent. Typically should not need to be changed.
624 HypervisorNeutronPublicInterface:
626 description: What interface to add to the HypervisorNeutronPhysicalBridge.
628 NeutronNetworkVLANRanges:
629 default: 'datacentre:1:1000'
631 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
632 Neutron documentation for permitted values. Defaults to permitting any
633 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
634 type: comma_delimited_list
637 default: libvirt.LibvirtDriver
638 NovaComputeExtraConfig:
641 NovaCompute specific configuration to inject into the cluster. Same
642 structure as ExtraConfig.
644 NovaComputeLibvirtType:
647 NovaComputeLibvirtVifDriver:
649 description: Libvirt VIF driver configuration for the network
651 NovaComputeSchedulerHints:
653 description: Optional scheduler hints to pass to nova
655 NovaEnableRbdBackend:
657 description: Whether to enable or not the Rbd backend for Nova
661 default: overcloud-full
663 - custom_constraint: glance.image
666 description: Name of integration bridge used by Open vSwitch
668 NovaSecurityGroupAPI:
670 description: The full class name of the security API class
672 OvercloudComputeFlavor:
673 description: Use this flavor
677 - custom_constraint: nova.flavor
680 NeutronTenantNetwork: tenant
681 CeilometerApiNetwork: internal_api
682 AodhApiNetwork: internal_api
683 MongoDbNetwork: internal_api
684 CinderApiNetwork: internal_api
685 CinderIscsiNetwork: storage
686 GlanceApiNetwork: storage
687 GlanceRegistryNetwork: internal_api
688 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
689 KeystonePublicApiNetwork: internal_api
690 NeutronApiNetwork: internal_api
691 HeatApiNetwork: internal_api
692 NovaApiNetwork: internal_api
693 NovaMetadataNetwork: internal_api
694 NovaVncProxyNetwork: internal_api
695 SwiftMgmtNetwork: storage_mgmt
696 SwiftProxyNetwork: storage
697 SaharaApiNetwork: internal_api
698 HorizonNetwork: internal_api
699 MemcachedNetwork: internal_api
700 RabbitMqNetwork: internal_api
701 RedisNetwork: internal_api
702 MysqlNetwork: internal_api
703 CephClusterNetwork: storage_mgmt
704 CephPublicNetwork: storage
705 ControllerHostnameResolveNetwork: internal_api
706 ComputeHostnameResolveNetwork: internal_api
707 BlockStorageHostnameResolveNetwork: internal_api
708 ObjectStorageHostnameResolveNetwork: internal_api
709 CephStorageHostnameResolveNetwork: storage
710 description: Mapping of service_name -> network name. Typically set
711 via parameter_defaults in the resource registry.
716 description: A list of service resources (configured in the Heat
717 resource_registry) which represent nested stacks
718 for each service that should get installed on the Controllers.
719 type: comma_delimited_list
721 # Block storage specific parameters
726 default: overcloud-full
728 OvercloudBlockStorageFlavor:
729 description: Flavor for block storage nodes to request when deploying.
733 - custom_constraint: nova.flavor
734 BlockStorageExtraConfig:
737 BlockStorage specific configuration to inject into the cluster. Same
738 structure as ExtraConfig.
740 BlockStorageSchedulerHints:
742 description: Optional scheduler hints to pass to nova
746 # Object storage specific parameters
750 OvercloudSwiftStorageFlavor:
751 description: Flavor for Swift storage nodes to request when deploying.
755 - custom_constraint: nova.flavor
757 default: overcloud-full
759 ObjectStorageExtraConfig:
762 ObjectStorage specific configuration to inject into the cluster. Same
763 structure as ExtraConfig.
765 ObjectStorageSchedulerHints:
767 description: Optional scheduler hints to pass to nova
770 # Ceph storage specific parameters
775 default: overcloud-full
777 OvercloudCephStorageFlavor:
779 description: Flavor for Ceph storage nodes to request when deploying.
782 - custom_constraint: nova.flavor
783 CephStorageExtraConfig:
786 CephStorage specific configuration to inject into the cluster. Same
787 structure as ExtraConfig.
789 CephStorageSchedulerHints:
791 description: Optional scheduler hints to pass to nova
795 # Hostname format for each role
796 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
797 # and %stackname% is replaced with OS::stack_name in the template below.
798 # If you want to use the heat generated names, pass '' (empty string).
799 ControllerHostnameFormat:
801 description: Format for Controller node hostnames
802 default: '%stackname%-controller-%index%'
803 ComputeHostnameFormat:
805 description: Format for Compute node hostnames
806 default: '%stackname%-novacompute-%index%'
807 BlockStorageHostnameFormat:
809 description: Format for BlockStorage node hostnames
810 default: '%stackname%-blockstorage-%index%'
811 ObjectStorageHostnameFormat:
813 description: Format for SwiftStorage node hostnames
814 default: '%stackname%-objectstorage-%index%'
815 CephStorageHostnameFormat:
817 description: Format for CephStorage node hostnames
818 default: '%stackname%-cephstorage-%index%'
820 # Identifiers to trigger tasks on nodes
825 Setting to a previously unused value during stack-update will trigger
826 package update on all nodes
831 Setting this to a unique value will re-run any deployment tasks which
832 perform configuration on a Heat stack-update.
834 # If you want to remove a specific node from a resource group, you can pass
835 # the node name or id as a <Group>RemovalPolicies parameter, for example:
836 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
837 ControllerRemovalPolicies:
841 List of resources to be removed from ControllerResourceGroup when
842 doing an update which requires removal of specific resources.
843 ComputeRemovalPolicies:
847 List of resources to be removed from ComputeResourceGroup when
848 doing an update which requires removal of specific resources.
849 BlockStorageRemovalPolicies:
853 List of resources to be removed from BlockStorageResourceGroup when
854 doing an update which requires removal of specific resources.
855 ObjectStorageRemovalPolicies:
859 List of resources to be removed from ObjectStorageResourceGroup when
860 doing an update which requires removal of specific resources.
861 CephStorageRemovalPolicies:
865 List of resources to be removed from CephStorageResourceGroup when
866 doing an update which requires removal of specific resources.
871 HeatAuthEncryptionKey:
872 type: OS::Heat::RandomString
875 type: OS::Heat::RandomString
880 type: OS::Heat::RandomString
885 type: OS::TripleO::EndpointMap
887 CloudName: {get_param: CloudName}
888 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
889 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
890 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
891 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
892 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
893 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
894 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
895 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
896 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
897 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
898 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
899 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
900 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
902 ControllerServiceChain:
903 type: OS::TripleO::Services
905 Services: {get_param: ControllerServices}
906 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
907 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
910 type: OS::Heat::ResourceGroup
913 count: {get_param: ControllerCount}
914 removal_policies: {get_param: ControllerRemovalPolicies}
916 type: OS::TripleO::Controller
918 AdminPassword: {get_param: AdminPassword}
919 AdminToken: {get_param: AdminToken}
920 AodhPassword: {get_param: AodhPassword}
921 CeilometerBackend: {get_param: CeilometerBackend}
922 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
923 CeilometerPassword: {get_param: CeilometerPassword}
924 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
925 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
926 CinderNfsServers: {get_param: CinderNfsServers}
927 CinderPassword: {get_param: CinderPassword}
928 CinderISCSIHelper: {get_param: CinderISCSIHelper}
929 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
930 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
931 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
932 CloudDomain: {get_param: CloudDomain}
933 ControlVirtualInterface: {get_param: ControlVirtualInterface}
934 ControllerExtraConfig: {get_param: controllerExtraConfig}
935 CorosyncIPv6: {get_param: CorosyncIPv6}
936 Debug: {get_param: Debug}
937 EnableFencing: {get_param: EnableFencing}
938 ManageFirewall: {get_param: ManageFirewall}
939 PurgeFirewallRules: {get_param: PurgeFirewallRules}
940 EnableGalera: {get_param: EnableGalera}
941 EnableCephStorage: {get_param: ControllerEnableCephStorage}
942 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
943 ExtraConfig: {get_param: ExtraConfig}
944 FencingConfig: {get_param: FencingConfig}
945 Flavor: {get_param: OvercloudControlFlavor}
946 GlancePassword: {get_param: GlancePassword}
947 GlanceBackend: {get_param: GlanceBackend}
948 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
949 GlanceLogFile: {get_param: GlanceLogFile}
950 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
951 HeatPassword: {get_param: HeatPassword}
952 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
953 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
954 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
955 HorizonSecret: {get_resource: HorizonSecret}
956 Image: {get_param: controllerImage}
957 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
958 InstanceNameTemplate: {get_param: InstanceNameTemplate}
959 KeyName: {get_param: KeyName}
960 KeystoneCACertificate: {get_param: KeystoneCACertificate}
961 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
962 KeystoneSigningKey: {get_param: KeystoneSigningKey}
963 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
964 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
965 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
966 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
967 MemcachedIPv6: {get_param: MemcachedIPv6}
968 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
969 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
970 MysqlMaxConnections: {get_param: MysqlMaxConnections}
971 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
972 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
973 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
974 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
975 NeutronTenantMtu: {get_param: NeutronTenantMtu}
976 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
977 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
978 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
979 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
980 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
981 NeutronPublicInterface: {get_param: NeutronPublicInterface}
982 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
983 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
984 NeutronPassword: {get_param: NeutronPassword}
985 NeutronDnsmasqOptions:
987 template: {get_param: NeutronDnsmasqOptions}
989 '%MTU%': {get_param: NeutronTenantMtu}
990 NeutronDVR: {get_param: NeutronDVR}
991 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
992 NeutronAgentMode: {get_param: NeutronAgentMode}
993 NeutronCorePlugin: {get_param: NeutronCorePlugin}
994 NeutronServicePlugins: {get_param: NeutronServicePlugins}
995 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
996 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
997 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
998 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
999 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1000 NeutronL3HA: {get_param: NeutronL3HA}
1001 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
1002 NeutronNetworkType: {get_param: NeutronNetworkType}
1003 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1004 NovaIPv6: {get_param: NovaIPv6}
1005 NovaPassword: {get_param: NovaPassword}
1006 NtpServer: {get_param: NtpServer}
1007 MongoDbNoJournal: {get_param: MongoDbNoJournal}
1008 MongoDbIPv6: {get_param: MongoDbIPv6}
1009 PcsdPassword: {get_resource: PcsdPassword}
1010 PublicVirtualInterface: {get_param: PublicVirtualInterface}
1011 RabbitPassword: {get_param: RabbitPassword}
1012 RabbitUserName: {get_param: RabbitUserName}
1013 RabbitCookie: {get_attr: [RabbitCookie, value]}
1014 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1015 RabbitClientPort: {get_param: RabbitClientPort}
1016 RabbitFDLimit: {get_param: RabbitFDLimit}
1017 RabbitIPv6: {get_param: RabbitIPv6}
1018 RedisPassword: {get_param: RedisPassword}
1019 SaharaPassword: {get_param: SaharaPassword}
1020 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1021 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1022 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
1023 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
1024 SwiftHashSuffix: {get_param: SwiftHashSuffix}
1025 SwiftMountCheck: {get_param: SwiftMountCheck}
1026 SwiftMinPartHours: {get_param: SwiftMinPartHours}
1027 SwiftPartPower: {get_param: SwiftPartPower}
1028 SwiftPassword: {get_param: SwiftPassword}
1029 SwiftReplicas: { get_param: SwiftReplicas}
1030 TimeZone: {get_param: TimeZone}
1031 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
1032 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
1033 ServiceNetMap: {get_param: ServiceNetMap}
1034 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1035 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1036 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1037 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1038 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1039 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1040 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1041 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1042 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1043 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1044 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1045 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1046 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1047 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1048 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1049 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1050 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1051 UpdateIdentifier: {get_param: UpdateIdentifier}
1054 template: {get_param: ControllerHostnameFormat}
1056 '%stackname%': {get_param: 'OS::stack_name'}
1057 NodeIndex: '%index%'
1058 ServerMetadata: {get_param: ServerMetadata}
1059 SchedulerHints: {get_param: ControllerSchedulerHints}
1060 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
1063 type: OS::Heat::ResourceGroup
1064 depends_on: Networks
1066 count: {get_param: ComputeCount}
1067 removal_policies: {get_param: ComputeRemovalPolicies}
1069 type: OS::TripleO::Compute
1071 AdminPassword: {get_param: AdminPassword}
1072 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1073 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1074 CeilometerPassword: {get_param: CeilometerPassword}
1075 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1076 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1077 Debug: {get_param: Debug}
1078 ExtraConfig: {get_param: ExtraConfig}
1079 Flavor: {get_param: OvercloudComputeFlavor}
1080 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1081 Image: {get_param: NovaImage}
1082 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1083 KeyName: {get_param: KeyName}
1084 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1085 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1086 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1087 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1088 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1089 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1090 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1091 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1092 NeutronNetworkType: {get_param: NeutronNetworkType}
1093 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1094 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1095 NeutronPassword: {get_param: NeutronPassword}
1096 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1097 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1098 NeutronDVR: {get_param: NeutronDVR}
1099 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1100 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1101 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1102 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1103 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1104 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1105 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1106 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1107 # L3 HA and Failover is not relevant for Computes, should be removed
1108 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1109 NeutronL3HA: {get_param: NeutronL3HA}
1110 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1111 NovaComputeDriver: {get_param: NovaComputeDriver}
1112 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1113 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1114 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1115 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1116 NovaIPv6: {get_param: NovaIPv6}
1117 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1118 NovaPassword: {get_param: NovaPassword}
1119 NovaOVSBridge: {get_param: NovaOVSBridge}
1120 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1121 NtpServer: {get_param: NtpServer}
1122 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1123 RabbitPassword: {get_param: RabbitPassword}
1124 RabbitUserName: {get_param: RabbitUserName}
1125 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1126 RabbitClientPort: {get_param: RabbitClientPort}
1127 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1128 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1129 ServiceNetMap: {get_param: ServiceNetMap}
1130 TimeZone: {get_param: TimeZone}
1131 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1132 UpdateIdentifier: {get_param: UpdateIdentifier}
1135 template: {get_param: ComputeHostnameFormat}
1137 '%stackname%': {get_param: 'OS::stack_name'}
1138 CloudDomain: {get_param: CloudDomain}
1139 ServerMetadata: {get_param: ServerMetadata}
1140 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1141 NodeIndex: '%index%'
1144 type: OS::Heat::ResourceGroup
1145 depends_on: Networks
1147 count: {get_param: BlockStorageCount}
1148 removal_policies: {get_param: BlockStorageRemovalPolicies}
1150 type: OS::TripleO::BlockStorage
1152 Debug: {get_param: Debug}
1153 Image: {get_param: BlockStorageImage}
1154 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1155 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1156 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1157 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1158 CinderPassword: {get_param: CinderPassword}
1159 KeyName: {get_param: KeyName}
1160 Flavor: {get_param: OvercloudBlockStorageFlavor}
1161 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1162 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1163 RabbitPassword: {get_param: RabbitPassword}
1164 RabbitUserName: {get_param: RabbitUserName}
1165 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1166 RabbitClientPort: {get_param: RabbitClientPort}
1167 TimeZone: {get_param: TimeZone}
1168 NtpServer: {get_param: NtpServer}
1169 UpdateIdentifier: {get_param: UpdateIdentifier}
1172 template: {get_param: BlockStorageHostnameFormat}
1174 '%stackname%': {get_param: 'OS::stack_name'}
1175 ServiceNetMap: {get_param: ServiceNetMap}
1176 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1177 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1178 ExtraConfig: {get_param: ExtraConfig}
1179 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1180 CloudDomain: {get_param: CloudDomain}
1181 ServerMetadata: {get_param: ServerMetadata}
1182 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1183 NodeIndex: '%index%'
1186 type: OS::Heat::ResourceGroup
1187 depends_on: Networks
1189 count: {get_param: ObjectStorageCount}
1190 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1192 type: OS::TripleO::ObjectStorage
1194 KeyName: {get_param: KeyName}
1195 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1196 HashSuffix: {get_param: SwiftHashSuffix}
1197 MountCheck: {get_param: SwiftMountCheck}
1198 MinPartHours: {get_param: SwiftMinPartHours}
1199 PartPower: {get_param: SwiftPartPower}
1200 Image: {get_param: SwiftStorageImage}
1201 Replicas: { get_param: SwiftReplicas}
1202 TimeZone: {get_param: TimeZone}
1203 NtpServer: {get_param: NtpServer}
1204 UpdateIdentifier: {get_param: UpdateIdentifier}
1205 ServiceNetMap: {get_param: ServiceNetMap}
1208 template: {get_param: ObjectStorageHostnameFormat}
1210 '%stackname%': {get_param: 'OS::stack_name'}
1211 ExtraConfig: {get_param: ExtraConfig}
1212 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1213 CloudDomain: {get_param: CloudDomain}
1214 ServerMetadata: {get_param: ServerMetadata}
1215 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1216 NodeIndex: '%index%'
1219 type: OS::Heat::ResourceGroup
1220 depends_on: Networks
1222 count: {get_param: CephStorageCount}
1223 removal_policies: {get_param: CephStorageRemovalPolicies}
1225 type: OS::TripleO::CephStorage
1227 Image: {get_param: CephStorageImage}
1228 KeyName: {get_param: KeyName}
1229 Flavor: {get_param: OvercloudCephStorageFlavor}
1230 NtpServer: {get_param: NtpServer}
1231 ServiceNetMap: {get_param: ServiceNetMap}
1232 TimeZone: {get_param: TimeZone}
1233 UpdateIdentifier: {get_param: UpdateIdentifier}
1236 template: {get_param: CephStorageHostnameFormat}
1238 '%stackname%': {get_param: 'OS::stack_name'}
1239 ExtraConfig: {get_param: ExtraConfig}
1240 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1241 CloudDomain: {get_param: CloudDomain}
1242 ServerMetadata: {get_param: ServerMetadata}
1243 SchedulerHints: {get_param: CephStorageSchedulerHints}
1244 NodeIndex: '%index%'
1246 ControllerIpListMap:
1247 type: OS::TripleO::Network::Ports::NetIpListMap
1249 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1250 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1251 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1252 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1253 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1254 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1255 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1258 type: OS::TripleO::AllNodes::SoftwareConfig
1260 compute_hosts: {get_attr: [Compute, hosts_entry]}
1261 controller_hosts: {get_attr: [Controller, hosts_entry]}
1262 controller_ips: {get_attr: [Controller, ip_address]}
1263 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1264 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1265 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1266 controller_names: {get_attr: [Controller, hostname]}
1267 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1268 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1269 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1270 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1271 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1272 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1273 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1274 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1275 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1276 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1277 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1278 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1279 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1280 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1281 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1282 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1283 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1284 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1285 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1286 DeployIdentifier: {get_param: DeployIdentifier}
1287 UpdateIdentifier: {get_param: UpdateIdentifier}
1290 type: OS::Heat::RandomString
1294 MysqlClusterUniquePart:
1295 type: OS::Heat::RandomString
1300 type: OS::Heat::RandomString
1303 salt: {get_param: RabbitCookieSalt}
1305 # creates the network architecture
1307 type: OS::TripleO::Network
1310 type: OS::Neutron::Port
1311 depends_on: Networks
1313 name: control_virtual_ip
1314 network: {get_param: NeutronControlPlaneID}
1315 fixed_ips: {get_param: ControlFixedIPs}
1316 replacement_policy: AUTO
1319 depends_on: Networks
1320 type: OS::TripleO::Network::Ports::RedisVipPort
1322 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1323 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1324 PortName: redis_virtual_ip
1325 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1328 # The public VIP is on the External net, falls back to ctlplane
1330 depends_on: Networks
1331 type: OS::TripleO::Network::Ports::ExternalVipPort
1333 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1334 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1335 PortName: public_virtual_ip
1336 FixedIPs: {get_param: PublicVirtualFixedIPs}
1338 InternalApiVirtualIP:
1339 depends_on: Networks
1340 type: OS::TripleO::Network::Ports::InternalApiVipPort
1342 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1343 PortName: internal_api_virtual_ip
1344 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1347 depends_on: Networks
1348 type: OS::TripleO::Network::Ports::StorageVipPort
1350 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1351 PortName: storage_virtual_ip
1352 FixedIPs: {get_param: StorageVirtualFixedIPs}
1354 StorageMgmtVirtualIP:
1355 depends_on: Networks
1356 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1358 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1359 PortName: storage_management_virtual_ip
1360 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1363 type: OS::TripleO::Network::Ports::NetVipMap
1365 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1366 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1367 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1368 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1369 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1370 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1371 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1372 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1373 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1374 # No tenant or management VIP required
1377 type: OS::TripleO::VipConfig
1380 type: OS::Heat::StructuredDeployments
1383 config: {get_resource: VipConfig}
1384 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1386 # service VIP mappings
1387 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1388 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1389 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1390 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1391 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1392 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1393 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1394 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1395 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1396 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1397 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1398 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1399 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1400 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1401 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1402 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1403 # direct configuration of Virtual IPs for each network
1404 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1405 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1406 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1407 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1408 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1409 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1411 ControllerBootstrapNodeConfig:
1412 type: OS::TripleO::BootstrapNode::SoftwareConfig
1414 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1415 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1417 ControllerBootstrapNodeDeployment:
1418 type: OS::Heat::StructuredDeployments
1420 name: ControllerBootstrapNodeDeployment
1421 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1422 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1424 ControllerSwiftDeployment:
1425 type: OS::Heat::StructuredDeployments
1427 name: ControllerSwiftDeployment
1428 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1429 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1431 ObjectStorageSwiftDeployment:
1432 type: OS::Heat::StructuredDeployments
1434 name: ObjectStorageSwiftDeployment
1435 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1436 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1438 SwiftDevicesAndProxyConfig:
1439 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1441 controller_swift_devices: {get_attr: [Controller, swift_device]}
1442 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1443 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1445 ComputeCephDeployment:
1446 type: OS::Heat::StructuredDeployments
1448 name: ComputeCephDeployment
1449 config: {get_attr: [CephClusterConfig, config_id]}
1450 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1452 ControllerCephDeployment:
1453 type: OS::Heat::StructuredDeployments
1455 name: ControllerCephDeployment
1456 config: {get_attr: [CephClusterConfig, config_id]}
1457 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1459 CephStorageCephDeployment:
1460 type: OS::Heat::StructuredDeployments
1462 name: CephStorageCephDeployment
1463 config: {get_attr: [CephClusterConfig, config_id]}
1464 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1467 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1469 ceph_storage_count: {get_param: CephStorageCount}
1470 ceph_fsid: {get_param: CephClusterFSID}
1471 ceph_mon_key: {get_param: CephMonKey}
1472 ceph_admin_key: {get_param: CephAdminKey}
1473 ceph_client_key: {get_param: CephClientKey}
1474 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1475 ceph_mon_names: {get_attr: [Controller, hostname]}
1476 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1478 ControllerClusterConfig:
1479 type: OS::Heat::StructuredConfig
1481 group: os-apply-config
1484 nodes: {get_attr: [Controller, corosync_node]}
1488 nodes: {get_attr: [Controller, hostname]}
1490 nodes: {get_attr: [Controller, corosync_node]}
1492 nodes: {get_attr: [Controller, corosync_node]}
1494 ControllerClusterDeployment:
1495 type: OS::Heat::StructuredDeployments
1497 name: ControllerClusterDeployment
1498 config: {get_resource: ControllerClusterConfig}
1499 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1501 ControllerAllNodesDeployment:
1502 type: OS::Heat::StructuredDeployments
1504 name: ControllerAllNodesDeployment
1505 config: {get_attr: [allNodesConfig, config_id]}
1506 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1508 ComputeAllNodesDeployment:
1509 type: OS::Heat::StructuredDeployments
1511 name: ComputeAllNodesDeployment
1512 config: {get_attr: [allNodesConfig, config_id]}
1513 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1515 BlockStorageAllNodesDeployment:
1516 type: OS::Heat::StructuredDeployments
1518 name: BlockStorageAllNodesDeployment
1519 config: {get_attr: [allNodesConfig, config_id]}
1520 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1522 ObjectStorageAllNodesDeployment:
1523 type: OS::Heat::StructuredDeployments
1525 name: ObjectStorageAllNodesDeployment
1526 config: {get_attr: [allNodesConfig, config_id]}
1527 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1529 CephStorageAllNodesDeployment:
1530 type: OS::Heat::StructuredDeployments
1532 name: CephStorageAllNodesDeployment
1533 config: {get_attr: [allNodesConfig, config_id]}
1534 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1536 # All Nodes Validations
1537 AllNodesValidationConfig:
1538 type: OS::TripleO::AllNodes::Validation
1543 - - {get_attr: [Controller, resource.0.external_ip_address]}
1544 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1545 - {get_attr: [Controller, resource.0.storage_ip_address]}
1546 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1547 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1549 ControllerAllNodesValidationDeployment:
1550 type: OS::Heat::StructuredDeployments
1551 depends_on: ControllerAllNodesDeployment
1553 name: ControllerAllNodesValidationDeployment
1554 config: {get_resource: AllNodesValidationConfig}
1555 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1557 ComputeAllNodesValidationDeployment:
1558 type: OS::Heat::StructuredDeployments
1559 depends_on: ComputeAllNodesDeployment
1561 name: ComputeAllNodesValidationDeployment
1562 config: {get_resource: AllNodesValidationConfig}
1563 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1565 BlockStorageAllNodesValidationDeployment:
1566 type: OS::Heat::StructuredDeployments
1567 depends_on: BlockStorageAllNodesDeployment
1569 name: BlockStorageAllNodesValidationDeployment
1570 config: {get_resource: AllNodesValidationConfig}
1571 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1573 ObjectStorageAllNodesValidationDeployment:
1574 type: OS::Heat::StructuredDeployments
1575 depends_on: ObjectStorageAllNodesDeployment
1577 name: ObjectStorageAllNodesValidationDeployment
1578 config: {get_resource: AllNodesValidationConfig}
1579 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1581 CephStorageAllNodesValidationDeployment:
1582 type: OS::Heat::StructuredDeployments
1583 depends_on: CephStorageAllNodesDeployment
1585 name: CephStorageAllNodesValidationDeployment
1586 config: {get_resource: AllNodesValidationConfig}
1587 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1590 type: OS::TripleO::Tasks::UpdateWorkflow
1592 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1593 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1594 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1595 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1596 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1598 deploy_identifier: {get_param: DeployIdentifier}
1599 update_identifier: {get_param: UpdateIdentifier}
1601 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1602 # the nested template may configure each role differently (or not at all)
1603 AllNodesExtraConfig:
1604 type: OS::TripleO::AllNodesExtraConfig
1607 - ComputeAllNodesValidationDeployment
1608 - BlockStorageAllNodesValidationDeployment
1609 - ObjectStorageAllNodesValidationDeployment
1610 - CephStorageAllNodesValidationDeployment
1611 - ControllerAllNodesValidationDeployment
1613 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1614 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1615 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1616 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1617 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1619 # Nested stack deployment runs after all other controller deployments
1620 ControllerNodesPostDeployment:
1621 type: OS::TripleO::ControllerPostDeployment
1622 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1624 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1625 NodeConfigIdentifiers:
1626 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1627 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1628 deployment_identifier: {get_param: DeployIdentifier}
1629 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1631 ComputeNodesPostDeployment:
1632 type: OS::TripleO::ComputePostDeployment
1633 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1635 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1636 NodeConfigIdentifiers:
1637 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1638 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1639 deployment_identifier: {get_param: DeployIdentifier}
1641 ObjectStorageNodesPostDeployment:
1642 type: OS::TripleO::ObjectStoragePostDeployment
1643 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1645 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1646 NodeConfigIdentifiers:
1647 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1648 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1649 deployment_identifier: {get_param: DeployIdentifier}
1651 BlockStorageNodesPostDeployment:
1652 type: OS::TripleO::BlockStoragePostDeployment
1653 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1655 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1656 NodeConfigIdentifiers:
1657 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1658 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1659 deployment_identifier: {get_param: DeployIdentifier}
1661 CephStorageNodesPostDeployment:
1662 type: OS::TripleO::CephStoragePostDeployment
1663 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1665 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1666 NodeConfigIdentifiers:
1667 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1668 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1669 deployment_identifier: {get_param: DeployIdentifier}
1673 description: URL for the Overcloud Keystone service
1674 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1676 description: Keystone Admin VIP endpoint
1677 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1679 description: Controller VIP for public API endpoints
1680 value: {get_attr: [VipMap, net_ip_map, external]}
1682 description: VIP for Aodh API internal endpoint
1683 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1684 CeilometerInternalVip:
1685 description: VIP for Ceilometer API internal endpoint
1686 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1688 description: VIP for Cinder API internal endpoint
1689 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1691 description: VIP for Glance API internal endpoint
1692 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1694 description: VIP for Heat API internal endpoint
1695 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1696 KeystoneInternalVip:
1697 description: VIP for Keystone API internal endpoint
1698 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1700 description: VIP for Neutron API internal endpoint
1701 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1703 description: VIP for Nova API internal endpoint
1704 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1706 description: VIP for Sahara API internal endpoint
1707 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1709 description: VIP for Swift Proxy internal endpoint
1710 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1713 The content that should be appended to your /etc/hosts if you want to get
1714 hostname-based access to the deployed nodes (useful for testing without
1716 value: {get_attr: [allNodesConfig, hosts_entries]}