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.
347 CinderNfsMountOptions:
350 Mount options for NFS mounts used by Cinder NFS backend. Effective
351 when CinderEnableNfsBackend is true.
356 NFS servers used by Cinder NFS backend. Effective when
357 CinderEnableNfsBackend is true.
358 type: comma_delimited_list
360 description: The password for the cinder service account, used by cinder-api.
365 description: The iSCSI helper to use with cinder.
372 controllerExtraConfig:
375 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
379 default: overcloud-full
381 - custom_constraint: glance.image
382 OvercloudControlFlavor:
383 description: Flavor for control nodes to request when deploying.
387 - custom_constraint: nova.flavor
388 ControlVirtualInterface:
390 description: Interface where virtual ip will be assigned.
394 description: Whether to enable fencing in Pacemaker or not.
398 description: Whether to use Galera instead of regular MariaDB.
400 ControllerEnableCephStorage:
402 description: Whether to deploy Ceph Storage (OSD) on the Controller
404 ControllerEnableSwiftStorage:
406 description: Whether to enable Swift Storage on the Controller
408 ControllerSchedulerHints:
410 description: Optional scheduler hints to pass to nova
415 Additional configuration to inject into the cluster. The format required
416 may be implementation specific, e.g puppet hieradata. Any role specific
417 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
422 Pacemaker fencing configuration. The JSON should have
423 the following structure:
427 "agent": "AGENT_NAME",
428 "host_mac": "HOST_MAC_ADDRESS",
429 "params": {"PARAM_NAME": "PARAM_VALUE"}
437 "agent": "fence_xvm",
438 "host_mac": "52:54:00:aa:bb:cc",
440 "multicast_address": "225.0.0.12",
441 "port": "baremetal_0",
443 "manage_key_file": true,
444 "key_file": "/etc/fence_xvm.key",
445 "key_file_password": "abcdef"
453 description: The short name of the Gnocchi backend to use. Should be one
454 of swift, rbd or file
457 - allowed_values: ['swift', 'file', 'rbd']
458 GnocchiIndexerBackend:
460 description: The short name of the Gnocchi indexer backend to use.
463 description: The password for the gnocchi service account.
466 InstanceNameTemplate:
467 default: 'instance-%08x'
468 description: Template string to be used to generate instance names
472 description: Whether to manage IPtables rules.
476 description: Whether IPtables rules should be purged before setting up the ones.
478 MysqlInnodbBufferPoolSize:
480 Specifies the size of the buffer pool in megabytes. Setting to
481 zero should be interpreted as "no value" and will defer to the
486 description: Configures MySQL max_connections config setting
489 NeutronPublicInterfaceDefaultRoute:
491 description: A custom default route for the NeutronPublicInterface.
493 NeutronPublicInterfaceIP:
495 description: A custom IP address to put onto the NeutronPublicInterface.
497 NeutronPublicInterfaceRawDevice:
499 description: If set, the public interface is a vlan with this device as the raw device.
501 PublicVirtualInterface:
504 Specifies the interface where the public-facing virtual ip will be assigned.
505 This should be int_public when a VLAN is being used.
508 description: A random string to be used as a salt when hashing to determine mappings in the ring.
512 description: The password for the swift service account, used by the swift proxy services.
517 description: Value of mount_check in Swift account/container/object -server.conf
522 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
525 description: Partition Power to use when building Swift rings
530 description: How many replicas to use in the swift rings.
532 description: The password for the sahara service account.
536 # Compute-specific params
537 CeilometerComputeAgent:
538 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
542 - allowed_values: ['', Present]
546 HypervisorNeutronPhysicalBridge:
549 An OVS bridge to create on each hypervisor. This defaults to br-ex the
550 same as the control plane nodes, as we have a uniform configuration of
551 the openvswitch agent. Typically should not need to be changed.
553 HypervisorNeutronPublicInterface:
555 description: What interface to add to the HypervisorNeutronPhysicalBridge.
557 NeutronNetworkVLANRanges:
558 default: 'datacentre:1:1000'
560 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
561 Neutron documentation for permitted values. Defaults to permitting any
562 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
563 type: comma_delimited_list
566 default: libvirt.LibvirtDriver
567 NovaComputeExtraConfig:
570 NovaCompute specific configuration to inject into the cluster. Same
571 structure as ExtraConfig.
573 NovaComputeLibvirtType:
576 NovaComputeLibvirtVifDriver:
578 description: Libvirt VIF driver configuration for the network
580 NovaComputeSchedulerHints:
582 description: Optional scheduler hints to pass to nova
584 NovaEnableRbdBackend:
586 description: Whether to enable or not the Rbd backend for Nova
590 default: overcloud-full
592 - custom_constraint: glance.image
595 description: Name of integration bridge used by Open vSwitch
597 NovaSecurityGroupAPI:
599 description: The full class name of the security API class
601 OvercloudComputeFlavor:
602 description: Use this flavor
606 - custom_constraint: nova.flavor
609 NeutronTenantNetwork: tenant
610 CeilometerApiNetwork: internal_api
611 AodhApiNetwork: internal_api
612 GnocchiApiNetwork: internal_api
613 MongoDbNetwork: internal_api
614 CinderApiNetwork: internal_api
615 CinderIscsiNetwork: storage
616 GlanceApiNetwork: storage
617 GlanceRegistryNetwork: internal_api
618 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
619 KeystonePublicApiNetwork: internal_api
620 NeutronApiNetwork: internal_api
621 HeatApiNetwork: internal_api
622 NovaApiNetwork: internal_api
623 NovaMetadataNetwork: internal_api
624 NovaVncProxyNetwork: internal_api
625 SwiftMgmtNetwork: storage_mgmt
626 SwiftProxyNetwork: storage
627 SaharaApiNetwork: internal_api
628 HorizonNetwork: internal_api
629 MemcachedNetwork: internal_api
630 RabbitMqNetwork: internal_api
631 RedisNetwork: internal_api
632 MysqlNetwork: internal_api
633 CephClusterNetwork: storage_mgmt
634 CephPublicNetwork: storage
635 ControllerHostnameResolveNetwork: internal_api
636 ComputeHostnameResolveNetwork: internal_api
637 BlockStorageHostnameResolveNetwork: internal_api
638 ObjectStorageHostnameResolveNetwork: internal_api
639 CephStorageHostnameResolveNetwork: storage
640 description: Mapping of service_name -> network name. Typically set
641 via parameter_defaults in the resource registry.
646 - OS::TripleO::Services::Keystone
647 - OS::TripleO::Services::GlanceApi
648 - OS::TripleO::Services::GlanceRegistry
649 - OS::TripleO::Services::HeatApi
650 - OS::TripleO::Services::HeatApiCfn
651 - OS::TripleO::Services::HeatApiCloudwatch
652 - OS::TripleO::Services::HeatEngine
653 - OS::TripleO::Services::NeutronDhcpAgent
654 - OS::TripleO::Services::NeutronL3Agent
655 - OS::TripleO::Services::NeutronMetadataAgent
656 - OS::TripleO::Services::RabbitMQ
657 - OS::TripleO::Services::Loadbalancer
658 - OS::TripleO::Services::Memcached
659 description: A list of service resources (configured in the Heat
660 resource_registry) which represent nested stacks
661 for each service that should get installed on the Controllers.
662 type: comma_delimited_list
666 description: A list of service resources (configured in the Heat
667 resource_registry) which represent nested stacks
668 for each service that should get installed on the Compute Nodes.
669 type: comma_delimited_list
671 # Block storage specific parameters
676 default: overcloud-full
678 OvercloudBlockStorageFlavor:
679 description: Flavor for block storage nodes to request when deploying.
683 - custom_constraint: nova.flavor
684 BlockStorageExtraConfig:
687 BlockStorage specific configuration to inject into the cluster. Same
688 structure as ExtraConfig.
690 BlockStorageSchedulerHints:
692 description: Optional scheduler hints to pass to nova
696 # Object storage specific parameters
700 OvercloudSwiftStorageFlavor:
701 description: Flavor for Swift storage nodes to request when deploying.
705 - custom_constraint: nova.flavor
707 default: overcloud-full
709 ObjectStorageExtraConfig:
712 ObjectStorage specific configuration to inject into the cluster. Same
713 structure as ExtraConfig.
715 ObjectStorageSchedulerHints:
717 description: Optional scheduler hints to pass to nova
720 # Ceph storage specific parameters
725 default: overcloud-full
727 OvercloudCephStorageFlavor:
729 description: Flavor for Ceph storage nodes to request when deploying.
732 - custom_constraint: nova.flavor
733 CephStorageExtraConfig:
736 CephStorage specific configuration to inject into the cluster. Same
737 structure as ExtraConfig.
739 CephStorageSchedulerHints:
741 description: Optional scheduler hints to pass to nova
745 description: A list of service resources (configured in the Heat
746 resource_registry) which represent nested stacks
747 for each service that should get installed on the CephStorage nodes.
748 type: comma_delimited_list
750 # Hostname format for each role
751 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
752 # and %stackname% is replaced with OS::stack_name in the template below.
753 # If you want to use the heat generated names, pass '' (empty string).
754 ControllerHostnameFormat:
756 description: Format for Controller node hostnames
757 default: '%stackname%-controller-%index%'
758 ComputeHostnameFormat:
760 description: Format for Compute node hostnames
761 default: '%stackname%-novacompute-%index%'
762 BlockStorageHostnameFormat:
764 description: Format for BlockStorage node hostnames
765 default: '%stackname%-blockstorage-%index%'
766 ObjectStorageHostnameFormat:
768 description: Format for SwiftStorage node hostnames
769 default: '%stackname%-objectstorage-%index%'
770 CephStorageHostnameFormat:
772 description: Format for CephStorage node hostnames
773 default: '%stackname%-cephstorage-%index%'
775 # Identifiers to trigger tasks on nodes
780 Setting to a previously unused value during stack-update will trigger
781 package update on all nodes
786 Setting this to a unique value will re-run any deployment tasks which
787 perform configuration on a Heat stack-update.
789 # If you want to remove a specific node from a resource group, you can pass
790 # the node name or id as a <Group>RemovalPolicies parameter, for example:
791 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
792 ControllerRemovalPolicies:
796 List of resources to be removed from ControllerResourceGroup when
797 doing an update which requires removal of specific resources.
798 ComputeRemovalPolicies:
802 List of resources to be removed from ComputeResourceGroup when
803 doing an update which requires removal of specific resources.
804 BlockStorageRemovalPolicies:
808 List of resources to be removed from BlockStorageResourceGroup when
809 doing an update which requires removal of specific resources.
810 ObjectStorageRemovalPolicies:
814 List of resources to be removed from ObjectStorageResourceGroup when
815 doing an update which requires removal of specific resources.
816 CephStorageRemovalPolicies:
820 List of resources to be removed from CephStorageResourceGroup when
821 doing an update which requires removal of specific resources.
825 description: Do not use deprecated params, they will be removed.
827 - controllerExtraConfig
832 HeatAuthEncryptionKey:
833 type: OS::Heat::RandomString
836 type: OS::Heat::RandomString
841 type: OS::Heat::RandomString
846 type: OS::TripleO::EndpointMap
848 CloudName: {get_param: CloudName}
849 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
850 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
851 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
852 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
853 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
854 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
855 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
856 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
857 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
858 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
859 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
860 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
861 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
862 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
863 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
865 ControllerServiceChain:
866 type: OS::TripleO::Services
868 Services: {get_param: ControllerServices}
869 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
870 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
873 type: OS::Heat::ResourceGroup
876 count: {get_param: ControllerCount}
877 removal_policies: {get_param: ControllerRemovalPolicies}
879 type: OS::TripleO::Controller
881 AdminPassword: {get_param: AdminPassword}
882 AodhPassword: {get_param: AodhPassword}
883 CeilometerBackend: {get_param: CeilometerBackend}
884 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
885 CeilometerPassword: {get_param: CeilometerPassword}
886 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
887 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
888 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
889 CinderNfsServers: {get_param: CinderNfsServers}
890 CinderPassword: {get_param: CinderPassword}
891 CinderISCSIHelper: {get_param: CinderISCSIHelper}
892 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
893 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
894 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
895 CloudDomain: {get_param: CloudDomain}
896 ControlVirtualInterface: {get_param: ControlVirtualInterface}
897 controllerExtraConfig: {get_param: controllerExtraConfig}
898 CorosyncIPv6: {get_param: CorosyncIPv6}
899 Debug: {get_param: Debug}
900 EnableFencing: {get_param: EnableFencing}
901 ManageFirewall: {get_param: ManageFirewall}
902 PurgeFirewallRules: {get_param: PurgeFirewallRules}
903 EnableGalera: {get_param: EnableGalera}
904 EnableCephStorage: {get_param: ControllerEnableCephStorage}
905 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
906 ExtraConfig: {get_param: ExtraConfig}
907 FencingConfig: {get_param: FencingConfig}
908 Flavor: {get_param: OvercloudControlFlavor}
909 GnocchiPassword: {get_param: GnocchiPassword}
910 GnocchiBackend: {get_param: GnocchiBackend}
911 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
912 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
913 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
914 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
915 HorizonSecret: {get_resource: HorizonSecret}
916 Image: {get_param: controllerImage}
917 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
918 InstanceNameTemplate: {get_param: InstanceNameTemplate}
919 KeyName: {get_param: KeyName}
920 MemcachedIPv6: {get_param: MemcachedIPv6}
921 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
922 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
923 MysqlMaxConnections: {get_param: MysqlMaxConnections}
924 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
925 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
926 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
927 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
928 NeutronTenantMtu: {get_param: NeutronTenantMtu}
929 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
930 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
931 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
932 NeutronPublicInterface: {get_param: NeutronPublicInterface}
933 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
934 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
935 NeutronPassword: {get_param: NeutronPassword}
936 NeutronDVR: {get_param: NeutronDVR}
937 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
938 NeutronAgentMode: {get_param: NeutronAgentMode}
939 NeutronCorePlugin: {get_param: NeutronCorePlugin}
940 NeutronServicePlugins: {get_param: NeutronServicePlugins}
941 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
942 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
943 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
944 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
945 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
946 NeutronL3HA: {get_param: NeutronL3HA}
947 NeutronNetworkType: {get_param: NeutronNetworkType}
948 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
949 NovaIPv6: {get_param: NovaIPv6}
950 NovaPassword: {get_param: NovaPassword}
951 NtpServer: {get_param: NtpServer}
952 MongoDbNoJournal: {get_param: MongoDbNoJournal}
953 MongoDbIPv6: {get_param: MongoDbIPv6}
954 PcsdPassword: {get_resource: PcsdPassword}
955 PublicVirtualInterface: {get_param: PublicVirtualInterface}
956 RabbitPassword: {get_param: RabbitPassword}
957 RabbitUserName: {get_param: RabbitUserName}
958 RabbitCookie: {get_attr: [RabbitCookie, value]}
959 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
960 RabbitClientPort: {get_param: RabbitClientPort}
961 RedisPassword: {get_param: RedisPassword}
962 SaharaPassword: {get_param: SaharaPassword}
963 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
964 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
965 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
966 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
967 SwiftHashSuffix: {get_param: SwiftHashSuffix}
968 SwiftMountCheck: {get_param: SwiftMountCheck}
969 SwiftMinPartHours: {get_param: SwiftMinPartHours}
970 SwiftPartPower: {get_param: SwiftPartPower}
971 SwiftPassword: {get_param: SwiftPassword}
972 SwiftReplicas: { get_param: SwiftReplicas}
973 TimeZone: {get_param: TimeZone}
974 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
975 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
976 ServiceNetMap: {get_param: ServiceNetMap}
977 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
978 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
979 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
980 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
981 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
982 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
983 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
984 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
985 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
986 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
987 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
988 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
989 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
990 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
991 UpdateIdentifier: {get_param: UpdateIdentifier}
994 template: {get_param: ControllerHostnameFormat}
996 '%stackname%': {get_param: 'OS::stack_name'}
998 ServerMetadata: {get_param: ServerMetadata}
999 SchedulerHints: {get_param: ControllerSchedulerHints}
1000 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
1002 ComputeServiceChain:
1003 type: OS::TripleO::Services
1005 Services: {get_param: ComputeServices}
1006 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1007 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1010 type: OS::Heat::ResourceGroup
1011 depends_on: Networks
1013 count: {get_param: ComputeCount}
1014 removal_policies: {get_param: ComputeRemovalPolicies}
1016 type: OS::TripleO::Compute
1018 AdminPassword: {get_param: AdminPassword}
1019 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1020 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1021 CeilometerPassword: {get_param: CeilometerPassword}
1022 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1023 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1024 Debug: {get_param: Debug}
1025 ExtraConfig: {get_param: ExtraConfig}
1026 Flavor: {get_param: OvercloudComputeFlavor}
1027 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1028 Image: {get_param: NovaImage}
1029 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1030 KeyName: {get_param: KeyName}
1031 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1032 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1033 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1034 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1035 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1036 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1037 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1038 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1039 NeutronNetworkType: {get_param: NeutronNetworkType}
1040 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1041 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1042 NeutronPassword: {get_param: NeutronPassword}
1043 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1044 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1045 NeutronDVR: {get_param: NeutronDVR}
1046 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1047 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1048 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1049 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1050 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1051 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1052 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1053 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1054 # L3 HA and Failover is not relevant for Computes, should be removed
1055 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1056 NeutronL3HA: {get_param: NeutronL3HA}
1057 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1058 NovaComputeDriver: {get_param: NovaComputeDriver}
1059 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1060 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1061 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1062 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1063 NovaIPv6: {get_param: NovaIPv6}
1064 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1065 NovaPassword: {get_param: NovaPassword}
1066 NovaOVSBridge: {get_param: NovaOVSBridge}
1067 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1068 NtpServer: {get_param: NtpServer}
1069 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1070 RabbitPassword: {get_param: RabbitPassword}
1071 RabbitUserName: {get_param: RabbitUserName}
1072 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1073 RabbitClientPort: {get_param: RabbitClientPort}
1074 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1075 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1076 ServiceNetMap: {get_param: ServiceNetMap}
1077 TimeZone: {get_param: TimeZone}
1078 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1079 UpdateIdentifier: {get_param: UpdateIdentifier}
1082 template: {get_param: ComputeHostnameFormat}
1084 '%stackname%': {get_param: 'OS::stack_name'}
1085 CloudDomain: {get_param: CloudDomain}
1086 ServerMetadata: {get_param: ServerMetadata}
1087 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1088 NodeIndex: '%index%'
1089 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
1093 type: OS::Heat::ResourceGroup
1094 depends_on: Networks
1096 count: {get_param: BlockStorageCount}
1097 removal_policies: {get_param: BlockStorageRemovalPolicies}
1099 type: OS::TripleO::BlockStorage
1101 Debug: {get_param: Debug}
1102 Image: {get_param: BlockStorageImage}
1103 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1104 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1105 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1106 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1107 CinderPassword: {get_param: CinderPassword}
1108 KeyName: {get_param: KeyName}
1109 Flavor: {get_param: OvercloudBlockStorageFlavor}
1110 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1111 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1112 RabbitPassword: {get_param: RabbitPassword}
1113 RabbitUserName: {get_param: RabbitUserName}
1114 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1115 RabbitClientPort: {get_param: RabbitClientPort}
1116 TimeZone: {get_param: TimeZone}
1117 NtpServer: {get_param: NtpServer}
1118 UpdateIdentifier: {get_param: UpdateIdentifier}
1121 template: {get_param: BlockStorageHostnameFormat}
1123 '%stackname%': {get_param: 'OS::stack_name'}
1124 ServiceNetMap: {get_param: ServiceNetMap}
1125 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1126 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1127 ExtraConfig: {get_param: ExtraConfig}
1128 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1129 CloudDomain: {get_param: CloudDomain}
1130 ServerMetadata: {get_param: ServerMetadata}
1131 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1132 NodeIndex: '%index%'
1135 type: OS::Heat::ResourceGroup
1136 depends_on: Networks
1138 count: {get_param: ObjectStorageCount}
1139 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1141 type: OS::TripleO::ObjectStorage
1143 KeyName: {get_param: KeyName}
1144 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1145 HashSuffix: {get_param: SwiftHashSuffix}
1146 MountCheck: {get_param: SwiftMountCheck}
1147 MinPartHours: {get_param: SwiftMinPartHours}
1148 PartPower: {get_param: SwiftPartPower}
1149 Image: {get_param: SwiftStorageImage}
1150 Replicas: { get_param: SwiftReplicas}
1151 TimeZone: {get_param: TimeZone}
1152 NtpServer: {get_param: NtpServer}
1153 UpdateIdentifier: {get_param: UpdateIdentifier}
1154 ServiceNetMap: {get_param: ServiceNetMap}
1157 template: {get_param: ObjectStorageHostnameFormat}
1159 '%stackname%': {get_param: 'OS::stack_name'}
1160 ExtraConfig: {get_param: ExtraConfig}
1161 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1162 CloudDomain: {get_param: CloudDomain}
1163 ServerMetadata: {get_param: ServerMetadata}
1164 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1165 NodeIndex: '%index%'
1167 CephStorageServiceChain:
1168 type: OS::TripleO::Services
1170 Services: {get_param: CephStorageServices}
1171 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1172 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1175 type: OS::Heat::ResourceGroup
1176 depends_on: Networks
1178 count: {get_param: CephStorageCount}
1179 removal_policies: {get_param: CephStorageRemovalPolicies}
1181 type: OS::TripleO::CephStorage
1183 Image: {get_param: CephStorageImage}
1184 KeyName: {get_param: KeyName}
1185 Flavor: {get_param: OvercloudCephStorageFlavor}
1186 NtpServer: {get_param: NtpServer}
1187 ServiceNetMap: {get_param: ServiceNetMap}
1188 TimeZone: {get_param: TimeZone}
1189 UpdateIdentifier: {get_param: UpdateIdentifier}
1192 template: {get_param: CephStorageHostnameFormat}
1194 '%stackname%': {get_param: 'OS::stack_name'}
1195 ExtraConfig: {get_param: ExtraConfig}
1196 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1197 CloudDomain: {get_param: CloudDomain}
1198 ServerMetadata: {get_param: ServerMetadata}
1199 SchedulerHints: {get_param: CephStorageSchedulerHints}
1200 NodeIndex: '%index%'
1201 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1203 ControllerIpListMap:
1204 type: OS::TripleO::Network::Ports::NetIpListMap
1206 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1207 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1208 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1209 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1210 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1211 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1212 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1215 type: OS::TripleO::AllNodes::SoftwareConfig
1217 compute_hosts: {get_attr: [Compute, hosts_entry]}
1218 controller_hosts: {get_attr: [Controller, hosts_entry]}
1219 controller_ips: {get_attr: [Controller, ip_address]}
1220 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1221 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1222 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1223 controller_names: {get_attr: [Controller, hostname]}
1224 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1225 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1226 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1227 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1228 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1229 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1230 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1231 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1232 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1233 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1234 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1235 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1236 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1237 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1238 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1239 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1240 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1241 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1242 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1243 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1244 DeployIdentifier: {get_param: DeployIdentifier}
1245 UpdateIdentifier: {get_param: UpdateIdentifier}
1248 type: OS::Heat::RandomString
1252 MysqlClusterUniquePart:
1253 type: OS::Heat::RandomString
1258 type: OS::Heat::RandomString
1261 salt: {get_param: RabbitCookieSalt}
1263 # creates the network architecture
1265 type: OS::TripleO::Network
1268 type: OS::Neutron::Port
1269 depends_on: Networks
1271 name: control_virtual_ip
1272 network: {get_param: NeutronControlPlaneID}
1273 fixed_ips: {get_param: ControlFixedIPs}
1274 replacement_policy: AUTO
1277 depends_on: Networks
1278 type: OS::TripleO::Network::Ports::RedisVipPort
1280 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1281 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1282 PortName: redis_virtual_ip
1283 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1286 # The public VIP is on the External net, falls back to ctlplane
1288 depends_on: Networks
1289 type: OS::TripleO::Network::Ports::ExternalVipPort
1291 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1292 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1293 PortName: public_virtual_ip
1294 FixedIPs: {get_param: PublicVirtualFixedIPs}
1296 InternalApiVirtualIP:
1297 depends_on: Networks
1298 type: OS::TripleO::Network::Ports::InternalApiVipPort
1300 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1301 PortName: internal_api_virtual_ip
1302 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1305 depends_on: Networks
1306 type: OS::TripleO::Network::Ports::StorageVipPort
1308 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1309 PortName: storage_virtual_ip
1310 FixedIPs: {get_param: StorageVirtualFixedIPs}
1312 StorageMgmtVirtualIP:
1313 depends_on: Networks
1314 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1316 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1317 PortName: storage_management_virtual_ip
1318 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1321 type: OS::TripleO::Network::Ports::NetVipMap
1323 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1324 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1325 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1326 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1327 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1328 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1329 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1330 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1331 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1332 # No tenant or management VIP required
1335 type: OS::TripleO::VipConfig
1338 type: OS::Heat::StructuredDeployments
1341 config: {get_resource: VipConfig}
1342 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1344 # service VIP mappings
1345 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1346 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1347 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1348 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1349 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1350 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1351 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1352 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1353 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1354 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1355 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1356 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1357 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1358 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1359 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1360 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1361 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1362 # direct configuration of Virtual IPs for each network
1363 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1364 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1365 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1366 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1367 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1368 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1370 ControllerBootstrapNodeConfig:
1371 type: OS::TripleO::BootstrapNode::SoftwareConfig
1373 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1374 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1376 ControllerBootstrapNodeDeployment:
1377 type: OS::Heat::StructuredDeployments
1379 name: ControllerBootstrapNodeDeployment
1380 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1381 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1383 ControllerSwiftDeployment:
1384 type: OS::Heat::StructuredDeployments
1386 name: ControllerSwiftDeployment
1387 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1388 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1390 ObjectStorageSwiftDeployment:
1391 type: OS::Heat::StructuredDeployments
1393 name: ObjectStorageSwiftDeployment
1394 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1395 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1397 SwiftDevicesAndProxyConfig:
1398 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1400 controller_swift_devices: {get_attr: [Controller, swift_device]}
1401 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1402 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1404 ComputeCephDeployment:
1405 type: OS::Heat::StructuredDeployments
1407 name: ComputeCephDeployment
1408 config: {get_attr: [CephClusterConfig, config_id]}
1409 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1411 ControllerCephDeployment:
1412 type: OS::Heat::StructuredDeployments
1414 name: ControllerCephDeployment
1415 config: {get_attr: [CephClusterConfig, config_id]}
1416 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1418 CephStorageCephDeployment:
1419 type: OS::Heat::StructuredDeployments
1421 name: CephStorageCephDeployment
1422 config: {get_attr: [CephClusterConfig, config_id]}
1423 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1426 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1428 ceph_storage_count: {get_param: CephStorageCount}
1429 ceph_fsid: {get_param: CephClusterFSID}
1430 ceph_mon_key: {get_param: CephMonKey}
1431 ceph_admin_key: {get_param: CephAdminKey}
1432 ceph_client_key: {get_param: CephClientKey}
1433 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1434 ceph_mon_names: {get_attr: [Controller, hostname]}
1435 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1437 ControllerAllNodesDeployment:
1438 type: OS::Heat::StructuredDeployments
1440 name: ControllerAllNodesDeployment
1441 config: {get_attr: [allNodesConfig, config_id]}
1442 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1444 ComputeAllNodesDeployment:
1445 type: OS::Heat::StructuredDeployments
1447 name: ComputeAllNodesDeployment
1448 config: {get_attr: [allNodesConfig, config_id]}
1449 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1451 BlockStorageAllNodesDeployment:
1452 type: OS::Heat::StructuredDeployments
1454 name: BlockStorageAllNodesDeployment
1455 config: {get_attr: [allNodesConfig, config_id]}
1456 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1458 ObjectStorageAllNodesDeployment:
1459 type: OS::Heat::StructuredDeployments
1461 name: ObjectStorageAllNodesDeployment
1462 config: {get_attr: [allNodesConfig, config_id]}
1463 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1465 CephStorageAllNodesDeployment:
1466 type: OS::Heat::StructuredDeployments
1468 name: CephStorageAllNodesDeployment
1469 config: {get_attr: [allNodesConfig, config_id]}
1470 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1472 # All Nodes Validations
1473 AllNodesValidationConfig:
1474 type: OS::TripleO::AllNodes::Validation
1479 - - {get_attr: [Controller, resource.0.external_ip_address]}
1480 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1481 - {get_attr: [Controller, resource.0.storage_ip_address]}
1482 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1483 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1485 ControllerAllNodesValidationDeployment:
1486 type: OS::Heat::StructuredDeployments
1487 depends_on: ControllerAllNodesDeployment
1489 name: ControllerAllNodesValidationDeployment
1490 config: {get_resource: AllNodesValidationConfig}
1491 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1493 ComputeAllNodesValidationDeployment:
1494 type: OS::Heat::StructuredDeployments
1495 depends_on: ComputeAllNodesDeployment
1497 name: ComputeAllNodesValidationDeployment
1498 config: {get_resource: AllNodesValidationConfig}
1499 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1501 BlockStorageAllNodesValidationDeployment:
1502 type: OS::Heat::StructuredDeployments
1503 depends_on: BlockStorageAllNodesDeployment
1505 name: BlockStorageAllNodesValidationDeployment
1506 config: {get_resource: AllNodesValidationConfig}
1507 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1509 ObjectStorageAllNodesValidationDeployment:
1510 type: OS::Heat::StructuredDeployments
1511 depends_on: ObjectStorageAllNodesDeployment
1513 name: ObjectStorageAllNodesValidationDeployment
1514 config: {get_resource: AllNodesValidationConfig}
1515 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1517 CephStorageAllNodesValidationDeployment:
1518 type: OS::Heat::StructuredDeployments
1519 depends_on: CephStorageAllNodesDeployment
1521 name: CephStorageAllNodesValidationDeployment
1522 config: {get_resource: AllNodesValidationConfig}
1523 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1526 type: OS::TripleO::Tasks::UpdateWorkflow
1528 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1529 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1530 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1531 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1532 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1534 deploy_identifier: {get_param: DeployIdentifier}
1535 update_identifier: {get_param: UpdateIdentifier}
1537 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1538 # the nested template may configure each role differently (or not at all)
1539 AllNodesExtraConfig:
1540 type: OS::TripleO::AllNodesExtraConfig
1543 - ComputeAllNodesValidationDeployment
1544 - BlockStorageAllNodesValidationDeployment
1545 - ObjectStorageAllNodesValidationDeployment
1546 - CephStorageAllNodesValidationDeployment
1547 - ControllerAllNodesValidationDeployment
1549 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1550 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1551 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1552 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1553 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1555 # Nested stack deployment runs after all other controller deployments
1556 ControllerNodesPostDeployment:
1557 type: OS::TripleO::ControllerPostDeployment
1558 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1560 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1561 NodeConfigIdentifiers:
1562 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1563 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1564 deployment_identifier: {get_param: DeployIdentifier}
1565 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1567 ComputeNodesPostDeployment:
1568 type: OS::TripleO::ComputePostDeployment
1569 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1571 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1572 NodeConfigIdentifiers:
1573 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1574 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1575 deployment_identifier: {get_param: DeployIdentifier}
1576 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1578 ObjectStorageNodesPostDeployment:
1579 type: OS::TripleO::ObjectStoragePostDeployment
1580 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1582 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1583 NodeConfigIdentifiers:
1584 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1585 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1586 deployment_identifier: {get_param: DeployIdentifier}
1588 BlockStorageNodesPostDeployment:
1589 type: OS::TripleO::BlockStoragePostDeployment
1590 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1592 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1593 NodeConfigIdentifiers:
1594 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1595 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1596 deployment_identifier: {get_param: DeployIdentifier}
1598 CephStorageNodesPostDeployment:
1599 type: OS::TripleO::CephStoragePostDeployment
1600 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1602 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1603 NodeConfigIdentifiers:
1604 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1605 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1606 deployment_identifier: {get_param: DeployIdentifier}
1607 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1611 description: URL for the Overcloud Keystone service
1612 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1614 description: Keystone Admin VIP endpoint
1615 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1617 description: Controller VIP for public API endpoints
1618 value: {get_attr: [VipMap, net_ip_map, external]}
1620 description: VIP for Aodh API internal endpoint
1621 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1622 CeilometerInternalVip:
1623 description: VIP for Ceilometer API internal endpoint
1624 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1626 description: VIP for Cinder API internal endpoint
1627 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1629 description: VIP for Glance API internal endpoint
1630 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1632 description: VIP for Gnocchi API internal endpoint
1633 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1635 description: VIP for Heat API internal endpoint
1636 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1637 KeystoneInternalVip:
1638 description: VIP for Keystone API internal endpoint
1639 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1641 description: VIP for Neutron API internal endpoint
1642 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1644 description: VIP for Nova API internal endpoint
1645 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1647 description: VIP for Sahara API internal endpoint
1648 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1650 description: VIP for Swift Proxy internal endpoint
1651 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1654 Mapping of the resources with the needed info for their endpoints.
1655 This includes the protocol used, the IP, port and also a full
1656 representation of the URI.
1657 value: {get_attr: [EndpointMap, endpoint_map]}
1660 The content that should be appended to your /etc/hosts if you want to get
1661 hostname-based access to the deployed nodes (useful for testing without
1663 value: {get_attr: [allNodesConfig, hosts_entries]}