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 CeilometerMeterDispatcher:
37 description: Dispatcher to process meter data
40 - allowed_values: ['gnocchi', 'database']
41 # This has to be an UUID so for now we generate it outside the template
45 description: The Ceph cluster FSID. Must be a UUID.
48 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
53 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
56 CinderEnableNfsBackend:
58 description: Whether to enable or not the NFS backend for Cinder
62 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.
68 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
69 CinderEnableIscsiBackend:
71 description: Whether to enable or not the Iscsi backend for Cinder
73 CinderEnableRbdBackend:
75 description: Whether to enable or not the Rbd backend for Cinder
79 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
83 description: Should be used for arbitrary ips.
87 description: Enable IPv6 in Corosync
91 description: Set to True to enable debugging on all services.
95 description: Syslog address where HAproxy will send its log
99 description: A list of IP/Hostname allowed to connect to horizon
100 type: comma_delimited_list
102 default: 'REBUILD_PRESERVE_EPHEMERAL'
103 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
105 InternalApiVirtualFixedIPs:
108 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
109 [{'ip_address':'1.2.3.4'}]
113 description: Name of an existing Nova key pair to enable SSH access to the instances
116 - custom_constraint: nova.keypair
119 description: Enable IPv6 features in Memcached.
121 NeutronBridgeMappings:
123 The OVS logical->physical bridge mappings to use. See the Neutron
124 documentation for details. Defaults to mapping br-ex - the external
125 bridge on hosts - to a physical name 'datacentre' which can be used
126 to create provider networks (and we use this for the default floating
127 network) - if changing this either use different post-install network
128 scripts or be sure to keep 'datacentre' as a mapping network name.
129 type: comma_delimited_list
130 default: "datacentre:br-ex"
131 NeutronControlPlaneID:
134 description: Neutron ID or name for ctlplane network.
135 NeutronEnableTunnelling:
141 Enable/disable the L2 population feature in the Neutron agents.
144 type: comma_delimited_list
145 default: 'datacentre'
147 If set, flat networks to configure in neutron plugins. Defaults to
148 'datacentre' to permit external network creation.
151 description: The tenant network type for Neutron.
152 type: comma_delimited_list
154 description: The password for the neutron service account, used by neutron agents.
157 NeutronPublicInterface:
159 description: What interface to bridge onto br-ex for network nodes.
161 NeutronPublicInterfaceTag:
164 VLAN tag for creating a public VLAN. The tag will be used to
165 create an access port on the exterior bridge for each control plane node,
166 and that port will be given the IP address returned by neutron from the
167 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
168 overcloud.yaml to include the deployment of VLAN ports to the control
171 NeutronComputeAgentMode:
173 description: Agent mode for the neutron-l3-agent on the compute hosts
177 description: Agent mode for the neutron-l3-agent on the controller hosts
181 description: Whether to configure Neutron Distributed Virtual Routers
183 NeutronMetadataProxySharedSecret:
184 description: Shared secret to prevent spoofing
189 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
190 be at least 50 bytes smaller than the MTU on the physical network. This
191 value will be used to set the MTU on the virtual Ethernet device.
192 This value will be used to construct the NeutronDnsmasqOptions, since that
193 will determine the MTU that is assigned to the VM host through DHCP.
199 The tunnel types for the Neutron tenant network.
200 type: comma_delimited_list
201 NeutronTunnelIdRanges:
203 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
204 of GRE tunnel IDs that are available for tenant network allocation
205 default: ["1:4094", ]
206 type: comma_delimited_list
209 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
210 of VXLAN VNI IDs that are available for tenant network allocation
211 default: ["1:4094", ]
212 type: comma_delimited_list
216 The core plugin for Neutron. The value should be the entrypoint to be loaded
217 from neutron.core_plugins namespace.
219 NeutronServicePlugins:
220 default: "router,qos"
222 Comma-separated list of service plugin entrypoints to be loaded from the
223 neutron.service_plugins namespace.
224 type: comma_delimited_list
226 default: "vxlan,vlan,flat,gre"
228 Comma-separated list of network type driver entrypoints to be loaded.
229 type: comma_delimited_list
230 NeutronMechanismDrivers:
231 default: 'openvswitch'
233 The mechanism drivers for the Neutron tenant network.
234 type: comma_delimited_list
235 NeutronPluginExtensions:
236 default: "qos,port_security"
238 Comma-separated list of extensions enabled for the Neutron plugin.
239 type: comma_delimited_list
240 NeutronAgentExtensions:
243 Comma-separated list of extensions enabled for the Neutron agents.
244 type: comma_delimited_list
245 NeutronAllowL3AgentFailover:
247 description: Allow automatic l3-agent failover
251 description: Whether to enable l3-agent HA
255 description: Enable IPv6 features in Nova
258 description: The password for the nova service account, used by nova-api.
263 description: Comma-separated list of ntp servers
264 type: comma_delimited_list
267 description: Should MongoDb journaling be disabled
271 description: Enable IPv6 if MongoDB VIP is IPv6
273 PublicVirtualFixedIPs:
276 Control the IP allocation for the PublicVirtualInterface port. E.g.
277 [{'ip_address':'1.2.3.4'}]
282 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
285 description: The username for RabbitMQ
288 description: The password for RabbitMQ
294 Rabbit client subscriber parameter to specify
295 an SSL connection to the RabbitMQ host.
299 description: Set rabbit subscriber port, change this if using SSL
302 description: The password for Redis
305 SnmpdReadonlyUserName:
306 default: ro_snmp_user
307 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
309 SnmpdReadonlyUserPassword:
310 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
313 StorageVirtualFixedIPs:
316 Control the IP allocation for the StorageVirtualInterface port. E.g.
317 [{'ip_address':'1.2.3.4'}]
319 StorageMgmtVirtualFixedIPs:
322 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
323 [{'ip_address':'1.2.3.4'}]
327 description: The timezone to be set on nodes.
330 default: 'localdomain'
333 The DNS domain used for the hosts. This should match the dhcp_domain
334 configured in the Undercloud neutron. Defaults to localdomain.
338 Extra properties or metadata passed to Nova for the created nodes in
339 the overcloud. It's accessible via the Nova metadata API.
342 # Controller-specific params
343 CinderLVMLoopDeviceSize:
345 description: The size of the loopback file used by the cinder LVM driver.
348 description: The password for the cinder service account, used by cinder-api.
353 description: The iSCSI helper to use with cinder.
360 controllerExtraConfig:
363 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
367 default: overcloud-full
369 - custom_constraint: glance.image
370 OvercloudControlFlavor:
371 description: Flavor for control nodes to request when deploying.
375 - custom_constraint: nova.flavor
376 ControlVirtualInterface:
378 description: Interface where virtual ip will be assigned.
382 description: Whether to enable fencing in Pacemaker or not.
386 description: Whether to use Galera instead of regular MariaDB.
388 ControllerEnableCephStorage:
390 description: Whether to deploy Ceph Storage (OSD) on the Controller
392 ControllerEnableSwiftStorage:
394 description: Whether to enable Swift Storage on the Controller
396 ControllerSchedulerHints:
398 description: Optional scheduler hints to pass to nova
403 Additional configuration to inject into the cluster. The format required
404 may be implementation specific, e.g puppet hieradata. Any role specific
405 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
410 Pacemaker fencing configuration. The JSON should have
411 the following structure:
415 "agent": "AGENT_NAME",
416 "host_mac": "HOST_MAC_ADDRESS",
417 "params": {"PARAM_NAME": "PARAM_VALUE"}
425 "agent": "fence_xvm",
426 "host_mac": "52:54:00:aa:bb:cc",
428 "multicast_address": "225.0.0.12",
429 "port": "baremetal_0",
431 "manage_key_file": true,
432 "key_file": "/etc/fence_xvm.key",
433 "key_file_password": "abcdef"
441 description: The short name of the Gnocchi backend to use. Should be one
442 of swift, rbd or file
445 - allowed_values: ['swift', 'file', 'rbd']
446 GnocchiIndexerBackend:
448 description: The short name of the Gnocchi indexer backend to use.
451 description: The password for the gnocchi service account.
454 InstanceNameTemplate:
455 default: 'instance-%08x'
456 description: Template string to be used to generate instance names
460 description: Whether to manage IPtables rules.
464 description: Whether IPtables rules should be purged before setting up the ones.
466 MysqlInnodbBufferPoolSize:
468 Specifies the size of the buffer pool in megabytes. Setting to
469 zero should be interpreted as "no value" and will defer to the
474 description: Configures MySQL max_connections config setting
477 NeutronPublicInterfaceDefaultRoute:
479 description: A custom default route for the NeutronPublicInterface.
481 NeutronPublicInterfaceIP:
483 description: A custom IP address to put onto the NeutronPublicInterface.
485 NeutronPublicInterfaceRawDevice:
487 description: If set, the public interface is a vlan with this device as the raw device.
489 PublicVirtualInterface:
492 Specifies the interface where the public-facing virtual ip will be assigned.
493 This should be int_public when a VLAN is being used.
496 description: A random string to be used as a salt when hashing to determine mappings in the ring.
501 description: Value of mount_check in Swift account/container/object -server.conf
506 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
509 description: Partition Power to use when building Swift rings
514 description: How many replicas to use in the swift rings.
516 # Compute-specific params
517 CeilometerComputeAgent:
518 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
522 - allowed_values: ['', Present]
526 HypervisorNeutronPhysicalBridge:
529 An OVS bridge to create on each hypervisor. This defaults to br-ex the
530 same as the control plane nodes, as we have a uniform configuration of
531 the openvswitch agent. Typically should not need to be changed.
533 HypervisorNeutronPublicInterface:
535 description: What interface to add to the HypervisorNeutronPhysicalBridge.
537 NeutronNetworkVLANRanges:
538 default: 'datacentre:1:1000'
540 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
541 Neutron documentation for permitted values. Defaults to permitting any
542 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
543 type: comma_delimited_list
546 default: libvirt.LibvirtDriver
547 NovaComputeExtraConfig:
550 NovaCompute specific configuration to inject into the cluster. Same
551 structure as ExtraConfig.
553 NovaComputeLibvirtType:
556 NovaComputeLibvirtVifDriver:
558 description: Libvirt VIF driver configuration for the network
560 NovaComputeSchedulerHints:
562 description: Optional scheduler hints to pass to nova
564 NovaEnableRbdBackend:
566 description: Whether to enable or not the Rbd backend for Nova
570 default: overcloud-full
572 - custom_constraint: glance.image
575 description: Name of integration bridge used by Open vSwitch
577 NovaSecurityGroupAPI:
579 description: The full class name of the security API class
581 OvercloudComputeFlavor:
582 description: Use this flavor
586 - custom_constraint: nova.flavor
589 NeutronTenantNetwork: tenant
590 CeilometerApiNetwork: internal_api
591 AodhApiNetwork: internal_api
592 GnocchiApiNetwork: internal_api
593 MongoDbNetwork: internal_api
594 CinderApiNetwork: internal_api
595 CinderIscsiNetwork: storage
596 GlanceApiNetwork: storage
597 GlanceRegistryNetwork: internal_api
598 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
599 KeystonePublicApiNetwork: internal_api
600 NeutronApiNetwork: internal_api
601 HeatApiNetwork: internal_api
602 NovaApiNetwork: internal_api
603 NovaMetadataNetwork: internal_api
604 NovaVncProxyNetwork: internal_api
605 SwiftMgmtNetwork: storage_mgmt
606 SwiftProxyNetwork: storage
607 SaharaApiNetwork: internal_api
608 HorizonNetwork: internal_api
609 MemcachedNetwork: internal_api
610 RabbitMqNetwork: internal_api
611 RedisNetwork: internal_api
612 MysqlNetwork: internal_api
613 CephClusterNetwork: storage_mgmt
614 CephPublicNetwork: storage
615 ControllerHostnameResolveNetwork: internal_api
616 ComputeHostnameResolveNetwork: internal_api
617 BlockStorageHostnameResolveNetwork: internal_api
618 ObjectStorageHostnameResolveNetwork: internal_api
619 CephStorageHostnameResolveNetwork: storage
620 description: Mapping of service_name -> network name. Typically set
621 via parameter_defaults in the resource registry.
626 - OS::TripleO::Services::CinderApi
627 - OS::TripleO::Services::CinderScheduler
628 - OS::TripleO::Services::CinderVolume
629 - OS::TripleO::Services::Keystone
630 - OS::TripleO::Services::GlanceApi
631 - OS::TripleO::Services::GlanceRegistry
632 - OS::TripleO::Services::HeatApi
633 - OS::TripleO::Services::HeatApiCfn
634 - OS::TripleO::Services::HeatApiCloudwatch
635 - OS::TripleO::Services::HeatEngine
636 - OS::TripleO::Services::NeutronDhcpAgent
637 - OS::TripleO::Services::NeutronL3Agent
638 - OS::TripleO::Services::NeutronMetadataAgent
639 - OS::TripleO::Services::RabbitMQ
640 - OS::TripleO::Services::HAproxy
641 - OS::TripleO::Services::Keepalived
642 - OS::TripleO::Services::Memcached
643 - OS::TripleO::Services::SwiftProxy
644 - OS::TripleO::Services::Redis
645 description: A list of service resources (configured in the Heat
646 resource_registry) which represent nested stacks
647 for each service that should get installed on the Controllers.
648 type: comma_delimited_list
652 description: A list of service resources (configured in the Heat
653 resource_registry) which represent nested stacks
654 for each service that should get installed on the Compute Nodes.
655 type: comma_delimited_list
657 # Block storage specific parameters
662 default: overcloud-full
664 OvercloudBlockStorageFlavor:
665 description: Flavor for block storage nodes to request when deploying.
669 - custom_constraint: nova.flavor
670 BlockStorageExtraConfig:
673 BlockStorage specific configuration to inject into the cluster. Same
674 structure as ExtraConfig.
676 BlockStorageSchedulerHints:
678 description: Optional scheduler hints to pass to nova
682 # Object storage specific parameters
686 OvercloudSwiftStorageFlavor:
687 description: Flavor for Swift storage nodes to request when deploying.
691 - custom_constraint: nova.flavor
693 default: overcloud-full
695 ObjectStorageExtraConfig:
698 ObjectStorage specific configuration to inject into the cluster. Same
699 structure as ExtraConfig.
701 ObjectStorageSchedulerHints:
703 description: Optional scheduler hints to pass to nova
705 ObjectStorageServices:
707 description: A list of service resources (configured in the Heat
708 resource_registry) which represent nested stacks
709 for each service that should get installed on the ObjectStorage nodes.
710 Note this role currently only supports steps 2, 3 and 4 configuration.
711 type: comma_delimited_list
714 # Ceph storage specific parameters
719 default: overcloud-full
721 OvercloudCephStorageFlavor:
723 description: Flavor for Ceph storage nodes to request when deploying.
726 - custom_constraint: nova.flavor
727 CephStorageExtraConfig:
730 CephStorage specific configuration to inject into the cluster. Same
731 structure as ExtraConfig.
733 CephStorageSchedulerHints:
735 description: Optional scheduler hints to pass to nova
739 description: A list of service resources (configured in the Heat
740 resource_registry) which represent nested stacks
741 for each service that should get installed on the CephStorage nodes.
742 type: comma_delimited_list
744 # Hostname format for each role
745 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
746 # and %stackname% is replaced with OS::stack_name in the template below.
747 # If you want to use the heat generated names, pass '' (empty string).
748 ControllerHostnameFormat:
750 description: Format for Controller node hostnames
751 default: '%stackname%-controller-%index%'
752 ComputeHostnameFormat:
754 description: Format for Compute node hostnames
755 default: '%stackname%-novacompute-%index%'
756 BlockStorageHostnameFormat:
758 description: Format for BlockStorage node hostnames
759 default: '%stackname%-blockstorage-%index%'
760 ObjectStorageHostnameFormat:
762 description: Format for SwiftStorage node hostnames
763 default: '%stackname%-objectstorage-%index%'
764 CephStorageHostnameFormat:
766 description: Format for CephStorage node hostnames
767 default: '%stackname%-cephstorage-%index%'
769 # Identifiers to trigger tasks on nodes
774 Setting to a previously unused value during stack-update will trigger
775 package update on all nodes
780 Setting this to a unique value will re-run any deployment tasks which
781 perform configuration on a Heat stack-update.
783 # If you want to remove a specific node from a resource group, you can pass
784 # the node name or id as a <Group>RemovalPolicies parameter, for example:
785 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
786 ControllerRemovalPolicies:
790 List of resources to be removed from ControllerResourceGroup when
791 doing an update which requires removal of specific resources.
792 ComputeRemovalPolicies:
796 List of resources to be removed from ComputeResourceGroup when
797 doing an update which requires removal of specific resources.
798 BlockStorageRemovalPolicies:
802 List of resources to be removed from BlockStorageResourceGroup when
803 doing an update which requires removal of specific resources.
804 ObjectStorageRemovalPolicies:
808 List of resources to be removed from ObjectStorageResourceGroup when
809 doing an update which requires removal of specific resources.
810 CephStorageRemovalPolicies:
814 List of resources to be removed from CephStorageResourceGroup when
815 doing an update which requires removal of specific resources.
819 description: Do not use deprecated params, they will be removed.
821 - controllerExtraConfig
826 HeatAuthEncryptionKey:
827 type: OS::Heat::RandomString
830 type: OS::Heat::RandomString
835 type: OS::Heat::RandomString
840 type: OS::TripleO::EndpointMap
842 CloudName: {get_param: CloudName}
843 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
844 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
845 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
846 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
847 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
848 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
849 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
850 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
851 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
852 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
853 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
854 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
855 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
856 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
857 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
859 ControllerServiceChain:
860 type: OS::TripleO::Services
863 Services: {get_param: ControllerServices}
864 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
867 type: OS::Heat::ResourceGroup
870 count: {get_param: ControllerCount}
871 removal_policies: {get_param: ControllerRemovalPolicies}
873 type: OS::TripleO::Controller
875 AdminPassword: {get_param: AdminPassword}
876 AodhPassword: {get_param: AodhPassword}
877 CeilometerBackend: {get_param: CeilometerBackend}
878 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
879 CeilometerPassword: {get_param: CeilometerPassword}
880 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
881 CloudDomain: {get_param: CloudDomain}
882 ControlVirtualInterface: {get_param: ControlVirtualInterface}
883 controllerExtraConfig: {get_param: controllerExtraConfig}
884 CorosyncIPv6: {get_param: CorosyncIPv6}
885 Debug: {get_param: Debug}
886 EnableFencing: {get_param: EnableFencing}
887 ManageFirewall: {get_param: ManageFirewall}
888 PurgeFirewallRules: {get_param: PurgeFirewallRules}
889 EnableGalera: {get_param: EnableGalera}
890 EnableCephStorage: {get_param: ControllerEnableCephStorage}
891 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
892 ExtraConfig: {get_param: ExtraConfig}
893 FencingConfig: {get_param: FencingConfig}
894 Flavor: {get_param: OvercloudControlFlavor}
895 GnocchiPassword: {get_param: GnocchiPassword}
896 GnocchiBackend: {get_param: GnocchiBackend}
897 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
898 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
899 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
900 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
901 HorizonSecret: {get_resource: HorizonSecret}
902 Image: {get_param: controllerImage}
903 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
904 InstanceNameTemplate: {get_param: InstanceNameTemplate}
905 KeyName: {get_param: KeyName}
906 MemcachedIPv6: {get_param: MemcachedIPv6}
907 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
908 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
909 MysqlMaxConnections: {get_param: MysqlMaxConnections}
910 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
911 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
912 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
913 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
914 NeutronTenantMtu: {get_param: NeutronTenantMtu}
915 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
916 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
917 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
918 NeutronPublicInterface: {get_param: NeutronPublicInterface}
919 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
920 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
921 NeutronPassword: {get_param: NeutronPassword}
922 NeutronDVR: {get_param: NeutronDVR}
923 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
924 NeutronAgentMode: {get_param: NeutronAgentMode}
925 NeutronCorePlugin: {get_param: NeutronCorePlugin}
926 NeutronServicePlugins: {get_param: NeutronServicePlugins}
927 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
928 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
929 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
930 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
931 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
932 NeutronL3HA: {get_param: NeutronL3HA}
933 NeutronNetworkType: {get_param: NeutronNetworkType}
934 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
935 NovaIPv6: {get_param: NovaIPv6}
936 NovaPassword: {get_param: NovaPassword}
937 NtpServer: {get_param: NtpServer}
938 MongoDbNoJournal: {get_param: MongoDbNoJournal}
939 MongoDbIPv6: {get_param: MongoDbIPv6}
940 PcsdPassword: {get_resource: PcsdPassword}
941 PublicVirtualInterface: {get_param: PublicVirtualInterface}
942 RabbitPassword: {get_param: RabbitPassword}
943 RabbitUserName: {get_param: RabbitUserName}
944 RabbitCookie: {get_attr: [RabbitCookie, value]}
945 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
946 RabbitClientPort: {get_param: RabbitClientPort}
947 RedisPassword: {get_param: RedisPassword}
948 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
949 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
950 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
951 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
952 SwiftHashSuffix: {get_param: SwiftHashSuffix}
953 SwiftMountCheck: {get_param: SwiftMountCheck}
954 SwiftMinPartHours: {get_param: SwiftMinPartHours}
955 SwiftPartPower: {get_param: SwiftPartPower}
956 SwiftReplicas: { get_param: SwiftReplicas}
957 TimeZone: {get_param: TimeZone}
958 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
959 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
960 ServiceNetMap: {get_param: ServiceNetMap}
961 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
962 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
963 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
964 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
965 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
966 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
967 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
968 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
969 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
970 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
971 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
972 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
973 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
974 UpdateIdentifier: {get_param: UpdateIdentifier}
977 template: {get_param: ControllerHostnameFormat}
979 '%stackname%': {get_param: 'OS::stack_name'}
981 ServerMetadata: {get_param: ServerMetadata}
982 SchedulerHints: {get_param: ControllerSchedulerHints}
983 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
986 type: OS::TripleO::Services
988 Services: {get_param: ComputeServices}
989 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
992 type: OS::Heat::ResourceGroup
995 count: {get_param: ComputeCount}
996 removal_policies: {get_param: ComputeRemovalPolicies}
998 type: OS::TripleO::Compute
1000 AdminPassword: {get_param: AdminPassword}
1001 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1002 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1003 CeilometerPassword: {get_param: CeilometerPassword}
1004 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1005 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1006 Debug: {get_param: Debug}
1007 ExtraConfig: {get_param: ExtraConfig}
1008 Flavor: {get_param: OvercloudComputeFlavor}
1009 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1010 Image: {get_param: NovaImage}
1011 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1012 KeyName: {get_param: KeyName}
1013 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1014 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1015 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1016 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1017 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1018 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1019 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1020 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1021 NeutronNetworkType: {get_param: NeutronNetworkType}
1022 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1023 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1024 NeutronPassword: {get_param: NeutronPassword}
1025 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1026 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1027 NeutronDVR: {get_param: NeutronDVR}
1028 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1029 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1030 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1031 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1032 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1033 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1034 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1035 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1036 # L3 HA and Failover is not relevant for Computes, should be removed
1037 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1038 NeutronL3HA: {get_param: NeutronL3HA}
1039 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1040 NovaComputeDriver: {get_param: NovaComputeDriver}
1041 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1042 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1043 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1044 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1045 NovaIPv6: {get_param: NovaIPv6}
1046 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1047 NovaPassword: {get_param: NovaPassword}
1048 NovaOVSBridge: {get_param: NovaOVSBridge}
1049 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1050 NtpServer: {get_param: NtpServer}
1051 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1052 RabbitPassword: {get_param: RabbitPassword}
1053 RabbitUserName: {get_param: RabbitUserName}
1054 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1055 RabbitClientPort: {get_param: RabbitClientPort}
1056 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1057 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1058 ServiceNetMap: {get_param: ServiceNetMap}
1059 TimeZone: {get_param: TimeZone}
1060 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1061 UpdateIdentifier: {get_param: UpdateIdentifier}
1064 template: {get_param: ComputeHostnameFormat}
1066 '%stackname%': {get_param: 'OS::stack_name'}
1067 CloudDomain: {get_param: CloudDomain}
1068 ServerMetadata: {get_param: ServerMetadata}
1069 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1070 NodeIndex: '%index%'
1071 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
1075 type: OS::Heat::ResourceGroup
1076 depends_on: Networks
1078 count: {get_param: BlockStorageCount}
1079 removal_policies: {get_param: BlockStorageRemovalPolicies}
1081 type: OS::TripleO::BlockStorage
1083 Debug: {get_param: Debug}
1084 Image: {get_param: BlockStorageImage}
1085 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1086 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1087 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1088 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1089 CinderPassword: {get_param: CinderPassword}
1090 KeyName: {get_param: KeyName}
1091 Flavor: {get_param: OvercloudBlockStorageFlavor}
1092 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1093 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1094 RabbitPassword: {get_param: RabbitPassword}
1095 RabbitUserName: {get_param: RabbitUserName}
1096 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1097 RabbitClientPort: {get_param: RabbitClientPort}
1098 TimeZone: {get_param: TimeZone}
1099 NtpServer: {get_param: NtpServer}
1100 UpdateIdentifier: {get_param: UpdateIdentifier}
1103 template: {get_param: BlockStorageHostnameFormat}
1105 '%stackname%': {get_param: 'OS::stack_name'}
1106 ServiceNetMap: {get_param: ServiceNetMap}
1107 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1108 ExtraConfig: {get_param: ExtraConfig}
1109 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1110 CloudDomain: {get_param: CloudDomain}
1111 ServerMetadata: {get_param: ServerMetadata}
1112 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1113 NodeIndex: '%index%'
1115 ObjectStorageServiceChain:
1116 type: OS::TripleO::Services
1118 Services: {get_param: ObjectStorageServices}
1119 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1122 type: OS::Heat::ResourceGroup
1123 depends_on: Networks
1125 count: {get_param: ObjectStorageCount}
1126 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1128 type: OS::TripleO::ObjectStorage
1130 KeyName: {get_param: KeyName}
1131 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1132 HashSuffix: {get_param: SwiftHashSuffix}
1133 MountCheck: {get_param: SwiftMountCheck}
1134 MinPartHours: {get_param: SwiftMinPartHours}
1135 PartPower: {get_param: SwiftPartPower}
1136 Image: {get_param: SwiftStorageImage}
1137 Replicas: { get_param: SwiftReplicas}
1138 TimeZone: {get_param: TimeZone}
1139 NtpServer: {get_param: NtpServer}
1140 UpdateIdentifier: {get_param: UpdateIdentifier}
1141 ServiceNetMap: {get_param: ServiceNetMap}
1144 template: {get_param: ObjectStorageHostnameFormat}
1146 '%stackname%': {get_param: 'OS::stack_name'}
1147 ExtraConfig: {get_param: ExtraConfig}
1148 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1149 CloudDomain: {get_param: CloudDomain}
1150 ServerMetadata: {get_param: ServerMetadata}
1151 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1152 NodeIndex: '%index%'
1153 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1155 CephStorageServiceChain:
1156 type: OS::TripleO::Services
1158 Services: {get_param: CephStorageServices}
1159 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1162 type: OS::Heat::ResourceGroup
1163 depends_on: Networks
1165 count: {get_param: CephStorageCount}
1166 removal_policies: {get_param: CephStorageRemovalPolicies}
1168 type: OS::TripleO::CephStorage
1170 Image: {get_param: CephStorageImage}
1171 KeyName: {get_param: KeyName}
1172 Flavor: {get_param: OvercloudCephStorageFlavor}
1173 NtpServer: {get_param: NtpServer}
1174 ServiceNetMap: {get_param: ServiceNetMap}
1175 TimeZone: {get_param: TimeZone}
1176 UpdateIdentifier: {get_param: UpdateIdentifier}
1179 template: {get_param: CephStorageHostnameFormat}
1181 '%stackname%': {get_param: 'OS::stack_name'}
1182 ExtraConfig: {get_param: ExtraConfig}
1183 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1184 CloudDomain: {get_param: CloudDomain}
1185 ServerMetadata: {get_param: ServerMetadata}
1186 SchedulerHints: {get_param: CephStorageSchedulerHints}
1187 NodeIndex: '%index%'
1188 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1190 ControllerIpListMap:
1191 type: OS::TripleO::Network::Ports::NetIpListMap
1193 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1194 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1195 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1196 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1197 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1198 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1199 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1202 type: OS::TripleO::AllNodes::SoftwareConfig
1204 compute_hosts: {get_attr: [Compute, hosts_entry]}
1205 controller_hosts: {get_attr: [Controller, hosts_entry]}
1206 controller_ips: {get_attr: [Controller, ip_address]}
1207 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1208 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1209 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1210 controller_names: {get_attr: [Controller, hostname]}
1211 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1212 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1213 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1214 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1215 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1216 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1217 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1218 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1219 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1220 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1221 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1222 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1223 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1224 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1225 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1226 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1227 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1228 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1229 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1230 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1231 DeployIdentifier: {get_param: DeployIdentifier}
1232 UpdateIdentifier: {get_param: UpdateIdentifier}
1235 type: OS::Heat::RandomString
1239 MysqlClusterUniquePart:
1240 type: OS::Heat::RandomString
1245 type: OS::Heat::RandomString
1248 salt: {get_param: RabbitCookieSalt}
1250 # creates the network architecture
1252 type: OS::TripleO::Network
1255 type: OS::Neutron::Port
1256 depends_on: Networks
1258 name: control_virtual_ip
1259 network: {get_param: NeutronControlPlaneID}
1260 fixed_ips: {get_param: ControlFixedIPs}
1261 replacement_policy: AUTO
1264 depends_on: Networks
1265 type: OS::TripleO::Network::Ports::RedisVipPort
1267 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1268 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1269 PortName: redis_virtual_ip
1270 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1273 # The public VIP is on the External net, falls back to ctlplane
1275 depends_on: Networks
1276 type: OS::TripleO::Network::Ports::ExternalVipPort
1278 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1279 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1280 PortName: public_virtual_ip
1281 FixedIPs: {get_param: PublicVirtualFixedIPs}
1283 InternalApiVirtualIP:
1284 depends_on: Networks
1285 type: OS::TripleO::Network::Ports::InternalApiVipPort
1287 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1288 PortName: internal_api_virtual_ip
1289 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1292 depends_on: Networks
1293 type: OS::TripleO::Network::Ports::StorageVipPort
1295 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1296 PortName: storage_virtual_ip
1297 FixedIPs: {get_param: StorageVirtualFixedIPs}
1299 StorageMgmtVirtualIP:
1300 depends_on: Networks
1301 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1303 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1304 PortName: storage_management_virtual_ip
1305 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1308 type: OS::TripleO::Network::Ports::NetVipMap
1310 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1311 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1312 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1313 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1314 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1315 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1316 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1317 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1318 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1319 # No tenant or management VIP required
1322 type: OS::TripleO::VipConfig
1325 type: OS::Heat::StructuredDeployments
1328 config: {get_resource: VipConfig}
1329 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1331 # service VIP mappings
1332 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1333 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1334 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1335 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1336 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1337 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1338 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1339 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1340 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1341 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1342 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1343 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1344 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1345 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1346 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1347 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1348 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1349 # direct configuration of Virtual IPs for each network
1350 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1351 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1352 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1353 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1354 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1355 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1357 ControllerBootstrapNodeConfig:
1358 type: OS::TripleO::BootstrapNode::SoftwareConfig
1360 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1361 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1363 ControllerBootstrapNodeDeployment:
1364 type: OS::Heat::StructuredDeployments
1366 name: ControllerBootstrapNodeDeployment
1367 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1368 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1370 ControllerSwiftDeployment:
1371 type: OS::Heat::StructuredDeployments
1373 name: ControllerSwiftDeployment
1374 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1375 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1377 ObjectStorageSwiftDeployment:
1378 type: OS::Heat::StructuredDeployments
1380 name: ObjectStorageSwiftDeployment
1381 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1382 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1384 SwiftDevicesAndProxyConfig:
1385 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1387 controller_swift_devices: {get_attr: [Controller, swift_device]}
1388 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1389 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1391 ComputeCephDeployment:
1392 type: OS::Heat::StructuredDeployments
1394 name: ComputeCephDeployment
1395 config: {get_attr: [CephClusterConfig, config_id]}
1396 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1398 ControllerCephDeployment:
1399 type: OS::Heat::StructuredDeployments
1401 name: ControllerCephDeployment
1402 config: {get_attr: [CephClusterConfig, config_id]}
1403 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1405 CephStorageCephDeployment:
1406 type: OS::Heat::StructuredDeployments
1408 name: CephStorageCephDeployment
1409 config: {get_attr: [CephClusterConfig, config_id]}
1410 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1413 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1415 ceph_storage_count: {get_param: CephStorageCount}
1416 ceph_fsid: {get_param: CephClusterFSID}
1417 ceph_mon_key: {get_param: CephMonKey}
1418 ceph_admin_key: {get_param: CephAdminKey}
1419 ceph_client_key: {get_param: CephClientKey}
1420 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1421 ceph_mon_names: {get_attr: [Controller, hostname]}
1422 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1424 ControllerAllNodesDeployment:
1425 type: OS::Heat::StructuredDeployments
1427 name: ControllerAllNodesDeployment
1428 config: {get_attr: [allNodesConfig, config_id]}
1429 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1431 ComputeAllNodesDeployment:
1432 type: OS::Heat::StructuredDeployments
1434 name: ComputeAllNodesDeployment
1435 config: {get_attr: [allNodesConfig, config_id]}
1436 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1438 BlockStorageAllNodesDeployment:
1439 type: OS::Heat::StructuredDeployments
1441 name: BlockStorageAllNodesDeployment
1442 config: {get_attr: [allNodesConfig, config_id]}
1443 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1445 ObjectStorageAllNodesDeployment:
1446 type: OS::Heat::StructuredDeployments
1448 name: ObjectStorageAllNodesDeployment
1449 config: {get_attr: [allNodesConfig, config_id]}
1450 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1452 CephStorageAllNodesDeployment:
1453 type: OS::Heat::StructuredDeployments
1455 name: CephStorageAllNodesDeployment
1456 config: {get_attr: [allNodesConfig, config_id]}
1457 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1459 # All Nodes Validations
1460 AllNodesValidationConfig:
1461 type: OS::TripleO::AllNodes::Validation
1466 - - {get_attr: [Controller, resource.0.external_ip_address]}
1467 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1468 - {get_attr: [Controller, resource.0.storage_ip_address]}
1469 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1470 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1472 ControllerAllNodesValidationDeployment:
1473 type: OS::Heat::StructuredDeployments
1474 depends_on: ControllerAllNodesDeployment
1476 name: ControllerAllNodesValidationDeployment
1477 config: {get_resource: AllNodesValidationConfig}
1478 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1480 ComputeAllNodesValidationDeployment:
1481 type: OS::Heat::StructuredDeployments
1482 depends_on: ComputeAllNodesDeployment
1484 name: ComputeAllNodesValidationDeployment
1485 config: {get_resource: AllNodesValidationConfig}
1486 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1488 BlockStorageAllNodesValidationDeployment:
1489 type: OS::Heat::StructuredDeployments
1490 depends_on: BlockStorageAllNodesDeployment
1492 name: BlockStorageAllNodesValidationDeployment
1493 config: {get_resource: AllNodesValidationConfig}
1494 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1496 ObjectStorageAllNodesValidationDeployment:
1497 type: OS::Heat::StructuredDeployments
1498 depends_on: ObjectStorageAllNodesDeployment
1500 name: ObjectStorageAllNodesValidationDeployment
1501 config: {get_resource: AllNodesValidationConfig}
1502 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1504 CephStorageAllNodesValidationDeployment:
1505 type: OS::Heat::StructuredDeployments
1506 depends_on: CephStorageAllNodesDeployment
1508 name: CephStorageAllNodesValidationDeployment
1509 config: {get_resource: AllNodesValidationConfig}
1510 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1513 type: OS::TripleO::Tasks::UpdateWorkflow
1515 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1516 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1517 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1518 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1519 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1521 deploy_identifier: {get_param: DeployIdentifier}
1522 update_identifier: {get_param: UpdateIdentifier}
1524 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1525 # the nested template may configure each role differently (or not at all)
1526 AllNodesExtraConfig:
1527 type: OS::TripleO::AllNodesExtraConfig
1530 - ComputeAllNodesValidationDeployment
1531 - BlockStorageAllNodesValidationDeployment
1532 - ObjectStorageAllNodesValidationDeployment
1533 - CephStorageAllNodesValidationDeployment
1534 - ControllerAllNodesValidationDeployment
1536 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1537 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1538 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1539 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1540 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1542 # Nested stack deployment runs after all other controller deployments
1543 ControllerNodesPostDeployment:
1544 type: OS::TripleO::ControllerPostDeployment
1545 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1547 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1548 NodeConfigIdentifiers:
1549 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1550 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1551 deployment_identifier: {get_param: DeployIdentifier}
1552 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1554 ComputeNodesPostDeployment:
1555 type: OS::TripleO::ComputePostDeployment
1556 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1558 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1559 NodeConfigIdentifiers:
1560 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1561 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1562 deployment_identifier: {get_param: DeployIdentifier}
1563 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1565 ObjectStorageNodesPostDeployment:
1566 type: OS::TripleO::ObjectStoragePostDeployment
1567 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1569 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1570 NodeConfigIdentifiers:
1571 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1572 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1573 deployment_identifier: {get_param: DeployIdentifier}
1574 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1576 BlockStorageNodesPostDeployment:
1577 type: OS::TripleO::BlockStoragePostDeployment
1578 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1580 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1581 NodeConfigIdentifiers:
1582 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1583 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1584 deployment_identifier: {get_param: DeployIdentifier}
1586 CephStorageNodesPostDeployment:
1587 type: OS::TripleO::CephStoragePostDeployment
1588 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1590 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1591 NodeConfigIdentifiers:
1592 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1593 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1594 deployment_identifier: {get_param: DeployIdentifier}
1595 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1599 description: URL for the Overcloud Keystone service
1600 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1602 description: Keystone Admin VIP endpoint
1603 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1605 description: Controller VIP for public API endpoints
1606 value: {get_attr: [VipMap, net_ip_map, external]}
1608 description: VIP for Aodh API internal endpoint
1609 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1610 CeilometerInternalVip:
1611 description: VIP for Ceilometer API internal endpoint
1612 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1614 description: VIP for Cinder API internal endpoint
1615 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1617 description: VIP for Glance API internal endpoint
1618 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1620 description: VIP for Gnocchi API internal endpoint
1621 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1623 description: VIP for Heat API internal endpoint
1624 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1625 KeystoneInternalVip:
1626 description: VIP for Keystone API internal endpoint
1627 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1629 description: VIP for Neutron API internal endpoint
1630 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1632 description: VIP for Nova API internal endpoint
1633 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1635 description: VIP for Sahara API internal endpoint
1636 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1638 description: VIP for Swift Proxy internal endpoint
1639 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1642 Mapping of the resources with the needed info for their endpoints.
1643 This includes the protocol used, the IP, port and also a full
1644 representation of the URI.
1645 value: {get_attr: [EndpointMap, endpoint_map]}
1648 The content that should be appended to your /etc/hosts if you want to get
1649 hostname-based access to the deployed nodes (useful for testing without
1651 value: {get_attr: [allNodesConfig, hosts_entries]}