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
301 # We need to set this as string because 'unlimited' is a valid setting
304 description: Configures RabbitMQ FD limit
308 description: Enable IPv6 in RabbitMQ
311 description: The password for Redis
314 SnmpdReadonlyUserName:
315 default: ro_snmp_user
316 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
318 SnmpdReadonlyUserPassword:
319 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
322 StorageVirtualFixedIPs:
325 Control the IP allocation for the StorageVirtualInterface port. E.g.
326 [{'ip_address':'1.2.3.4'}]
328 StorageMgmtVirtualFixedIPs:
331 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
332 [{'ip_address':'1.2.3.4'}]
336 description: The timezone to be set on nodes.
339 default: 'localdomain'
342 The DNS domain used for the hosts. This should match the dhcp_domain
343 configured in the Undercloud neutron. Defaults to localdomain.
347 Extra properties or metadata passed to Nova for the created nodes in
348 the overcloud. It's accessible via the Nova metadata API.
351 # Controller-specific params
352 CinderLVMLoopDeviceSize:
354 description: The size of the loopback file used by the cinder LVM driver.
356 CinderNfsMountOptions:
359 Mount options for NFS mounts used by Cinder NFS backend. Effective
360 when CinderEnableNfsBackend is true.
365 NFS servers used by Cinder NFS backend. Effective when
366 CinderEnableNfsBackend is true.
367 type: comma_delimited_list
369 description: The password for the cinder service account, used by cinder-api.
374 description: The iSCSI helper to use with cinder.
381 controllerExtraConfig:
384 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
388 default: overcloud-full
390 - custom_constraint: glance.image
391 OvercloudControlFlavor:
392 description: Flavor for control nodes to request when deploying.
396 - custom_constraint: nova.flavor
397 ControlVirtualInterface:
399 description: Interface where virtual ip will be assigned.
403 description: Whether to enable fencing in Pacemaker or not.
407 description: Whether to use Galera instead of regular MariaDB.
409 ControllerEnableCephStorage:
411 description: Whether to deploy Ceph Storage (OSD) on the Controller
413 ControllerEnableSwiftStorage:
415 description: Whether to enable Swift Storage on the Controller
417 ControllerSchedulerHints:
419 description: Optional scheduler hints to pass to nova
424 Additional configuration to inject into the cluster. The format required
425 may be implementation specific, e.g puppet hieradata. Any role specific
426 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
431 Pacemaker fencing configuration. The JSON should have
432 the following structure:
436 "agent": "AGENT_NAME",
437 "host_mac": "HOST_MAC_ADDRESS",
438 "params": {"PARAM_NAME": "PARAM_VALUE"}
446 "agent": "fence_xvm",
447 "host_mac": "52:54:00:aa:bb:cc",
449 "multicast_address": "225.0.0.12",
450 "port": "baremetal_0",
452 "manage_key_file": true,
453 "key_file": "/etc/fence_xvm.key",
454 "key_file_password": "abcdef"
462 description: The short name of the Gnocchi backend to use. Should be one
463 of swift, rbd or file
466 - allowed_values: ['swift', 'file', 'rbd']
467 GnocchiIndexerBackend:
469 description: The short name of the Gnocchi indexer backend to use.
472 description: The password for the gnocchi service account.
476 description: The password for the Heat service account, used by the Heat services.
479 HeatStackDomainAdminPassword:
480 description: Password for heat_stack_domain_admin user.
483 InstanceNameTemplate:
484 default: 'instance-%08x'
485 description: Template string to be used to generate instance names
489 description: Whether to manage IPtables rules.
493 description: Whether IPtables rules should be purged before setting up the ones.
495 MysqlInnodbBufferPoolSize:
497 Specifies the size of the buffer pool in megabytes. Setting to
498 zero should be interpreted as "no value" and will defer to the
503 description: Configures MySQL max_connections config setting
506 NeutronPublicInterfaceDefaultRoute:
508 description: A custom default route for the NeutronPublicInterface.
510 NeutronPublicInterfaceIP:
512 description: A custom IP address to put onto the NeutronPublicInterface.
514 NeutronPublicInterfaceRawDevice:
516 description: If set, the public interface is a vlan with this device as the raw device.
518 PublicVirtualInterface:
521 Specifies the interface where the public-facing virtual ip will be assigned.
522 This should be int_public when a VLAN is being used.
525 description: A random string to be used as a salt when hashing to determine mappings in the ring.
529 description: The password for the swift service account, used by the swift proxy services.
534 description: Value of mount_check in Swift account/container/object -server.conf
539 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
542 description: Partition Power to use when building Swift rings
547 description: How many replicas to use in the swift rings.
549 description: The password for the sahara service account.
553 # Compute-specific params
554 CeilometerComputeAgent:
555 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
559 - allowed_values: ['', Present]
563 HypervisorNeutronPhysicalBridge:
566 An OVS bridge to create on each hypervisor. This defaults to br-ex the
567 same as the control plane nodes, as we have a uniform configuration of
568 the openvswitch agent. Typically should not need to be changed.
570 HypervisorNeutronPublicInterface:
572 description: What interface to add to the HypervisorNeutronPhysicalBridge.
574 NeutronNetworkVLANRanges:
575 default: 'datacentre:1:1000'
577 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
578 Neutron documentation for permitted values. Defaults to permitting any
579 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
580 type: comma_delimited_list
583 default: libvirt.LibvirtDriver
584 NovaComputeExtraConfig:
587 NovaCompute specific configuration to inject into the cluster. Same
588 structure as ExtraConfig.
590 NovaComputeLibvirtType:
593 NovaComputeLibvirtVifDriver:
595 description: Libvirt VIF driver configuration for the network
597 NovaComputeSchedulerHints:
599 description: Optional scheduler hints to pass to nova
601 NovaEnableRbdBackend:
603 description: Whether to enable or not the Rbd backend for Nova
607 default: overcloud-full
609 - custom_constraint: glance.image
612 description: Name of integration bridge used by Open vSwitch
614 NovaSecurityGroupAPI:
616 description: The full class name of the security API class
618 OvercloudComputeFlavor:
619 description: Use this flavor
623 - custom_constraint: nova.flavor
626 NeutronTenantNetwork: tenant
627 CeilometerApiNetwork: internal_api
628 AodhApiNetwork: internal_api
629 GnocchiApiNetwork: internal_api
630 MongoDbNetwork: internal_api
631 CinderApiNetwork: internal_api
632 CinderIscsiNetwork: storage
633 GlanceApiNetwork: storage
634 GlanceRegistryNetwork: internal_api
635 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
636 KeystonePublicApiNetwork: internal_api
637 NeutronApiNetwork: internal_api
638 HeatApiNetwork: internal_api
639 NovaApiNetwork: internal_api
640 NovaMetadataNetwork: internal_api
641 NovaVncProxyNetwork: internal_api
642 SwiftMgmtNetwork: storage_mgmt
643 SwiftProxyNetwork: storage
644 SaharaApiNetwork: internal_api
645 HorizonNetwork: internal_api
646 MemcachedNetwork: internal_api
647 RabbitMqNetwork: internal_api
648 RedisNetwork: internal_api
649 MysqlNetwork: internal_api
650 CephClusterNetwork: storage_mgmt
651 CephPublicNetwork: storage
652 ControllerHostnameResolveNetwork: internal_api
653 ComputeHostnameResolveNetwork: internal_api
654 BlockStorageHostnameResolveNetwork: internal_api
655 ObjectStorageHostnameResolveNetwork: internal_api
656 CephStorageHostnameResolveNetwork: storage
657 description: Mapping of service_name -> network name. Typically set
658 via parameter_defaults in the resource registry.
663 - OS::TripleO::Services::Keystone
664 - OS::TripleO::Services::GlanceApi
665 - OS::TripleO::Services::GlanceRegistry
666 - OS::TripleO::Services::NeutronDhcpAgent
667 - OS::TripleO::Services::NeutronL3Agent
668 description: A list of service resources (configured in the Heat
669 resource_registry) which represent nested stacks
670 for each service that should get installed on the Controllers.
671 type: comma_delimited_list
673 # Block storage specific parameters
678 default: overcloud-full
680 OvercloudBlockStorageFlavor:
681 description: Flavor for block storage nodes to request when deploying.
685 - custom_constraint: nova.flavor
686 BlockStorageExtraConfig:
689 BlockStorage specific configuration to inject into the cluster. Same
690 structure as ExtraConfig.
692 BlockStorageSchedulerHints:
694 description: Optional scheduler hints to pass to nova
698 # Object storage specific parameters
702 OvercloudSwiftStorageFlavor:
703 description: Flavor for Swift storage nodes to request when deploying.
707 - custom_constraint: nova.flavor
709 default: overcloud-full
711 ObjectStorageExtraConfig:
714 ObjectStorage specific configuration to inject into the cluster. Same
715 structure as ExtraConfig.
717 ObjectStorageSchedulerHints:
719 description: Optional scheduler hints to pass to nova
722 # Ceph storage specific parameters
727 default: overcloud-full
729 OvercloudCephStorageFlavor:
731 description: Flavor for Ceph storage nodes to request when deploying.
734 - custom_constraint: nova.flavor
735 CephStorageExtraConfig:
738 CephStorage specific configuration to inject into the cluster. Same
739 structure as ExtraConfig.
741 CephStorageSchedulerHints:
743 description: Optional scheduler hints to pass to nova
747 # Hostname format for each role
748 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
749 # and %stackname% is replaced with OS::stack_name in the template below.
750 # If you want to use the heat generated names, pass '' (empty string).
751 ControllerHostnameFormat:
753 description: Format for Controller node hostnames
754 default: '%stackname%-controller-%index%'
755 ComputeHostnameFormat:
757 description: Format for Compute node hostnames
758 default: '%stackname%-novacompute-%index%'
759 BlockStorageHostnameFormat:
761 description: Format for BlockStorage node hostnames
762 default: '%stackname%-blockstorage-%index%'
763 ObjectStorageHostnameFormat:
765 description: Format for SwiftStorage node hostnames
766 default: '%stackname%-objectstorage-%index%'
767 CephStorageHostnameFormat:
769 description: Format for CephStorage node hostnames
770 default: '%stackname%-cephstorage-%index%'
772 # Identifiers to trigger tasks on nodes
777 Setting to a previously unused value during stack-update will trigger
778 package update on all nodes
783 Setting this to a unique value will re-run any deployment tasks which
784 perform configuration on a Heat stack-update.
786 # If you want to remove a specific node from a resource group, you can pass
787 # the node name or id as a <Group>RemovalPolicies parameter, for example:
788 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
789 ControllerRemovalPolicies:
793 List of resources to be removed from ControllerResourceGroup when
794 doing an update which requires removal of specific resources.
795 ComputeRemovalPolicies:
799 List of resources to be removed from ComputeResourceGroup when
800 doing an update which requires removal of specific resources.
801 BlockStorageRemovalPolicies:
805 List of resources to be removed from BlockStorageResourceGroup when
806 doing an update which requires removal of specific resources.
807 ObjectStorageRemovalPolicies:
811 List of resources to be removed from ObjectStorageResourceGroup when
812 doing an update which requires removal of specific resources.
813 CephStorageRemovalPolicies:
817 List of resources to be removed from CephStorageResourceGroup when
818 doing an update which requires removal of specific resources.
822 description: Do not use deprecated params, they will be removed.
824 - controllerExtraConfig
829 HeatAuthEncryptionKey:
830 type: OS::Heat::RandomString
833 type: OS::Heat::RandomString
838 type: OS::Heat::RandomString
843 type: OS::TripleO::EndpointMap
845 CloudName: {get_param: CloudName}
846 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
847 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
848 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
849 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
850 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
851 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
852 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
853 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
854 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
855 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
856 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
857 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
858 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
859 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
860 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
862 ControllerServiceChain:
863 type: OS::TripleO::Services
865 Services: {get_param: ControllerServices}
866 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
867 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
870 type: OS::Heat::ResourceGroup
873 count: {get_param: ControllerCount}
874 removal_policies: {get_param: ControllerRemovalPolicies}
876 type: OS::TripleO::Controller
878 AdminPassword: {get_param: AdminPassword}
879 AodhPassword: {get_param: AodhPassword}
880 CeilometerBackend: {get_param: CeilometerBackend}
881 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
882 CeilometerPassword: {get_param: CeilometerPassword}
883 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
884 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
885 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
886 CinderNfsServers: {get_param: CinderNfsServers}
887 CinderPassword: {get_param: CinderPassword}
888 CinderISCSIHelper: {get_param: CinderISCSIHelper}
889 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
890 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
891 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
892 CloudDomain: {get_param: CloudDomain}
893 ControlVirtualInterface: {get_param: ControlVirtualInterface}
894 controllerExtraConfig: {get_param: controllerExtraConfig}
895 CorosyncIPv6: {get_param: CorosyncIPv6}
896 Debug: {get_param: Debug}
897 EnableFencing: {get_param: EnableFencing}
898 ManageFirewall: {get_param: ManageFirewall}
899 PurgeFirewallRules: {get_param: PurgeFirewallRules}
900 EnableGalera: {get_param: EnableGalera}
901 EnableCephStorage: {get_param: ControllerEnableCephStorage}
902 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
903 ExtraConfig: {get_param: ExtraConfig}
904 FencingConfig: {get_param: FencingConfig}
905 Flavor: {get_param: OvercloudControlFlavor}
906 GnocchiPassword: {get_param: GnocchiPassword}
907 GnocchiBackend: {get_param: GnocchiBackend}
908 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
909 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
910 HeatPassword: {get_param: HeatPassword}
911 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
912 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
913 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
914 HorizonSecret: {get_resource: HorizonSecret}
915 Image: {get_param: controllerImage}
916 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
917 InstanceNameTemplate: {get_param: InstanceNameTemplate}
918 KeyName: {get_param: KeyName}
919 MemcachedIPv6: {get_param: MemcachedIPv6}
920 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
921 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
922 MysqlMaxConnections: {get_param: MysqlMaxConnections}
923 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
924 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
925 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
926 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
927 NeutronTenantMtu: {get_param: NeutronTenantMtu}
928 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
929 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
930 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
931 NeutronPublicInterface: {get_param: NeutronPublicInterface}
932 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
933 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
934 NeutronPassword: {get_param: NeutronPassword}
935 NeutronDVR: {get_param: NeutronDVR}
936 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
937 NeutronAgentMode: {get_param: NeutronAgentMode}
938 NeutronCorePlugin: {get_param: NeutronCorePlugin}
939 NeutronServicePlugins: {get_param: NeutronServicePlugins}
940 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
941 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
942 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
943 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
944 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
945 NeutronL3HA: {get_param: NeutronL3HA}
946 NeutronNetworkType: {get_param: NeutronNetworkType}
947 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
948 NovaIPv6: {get_param: NovaIPv6}
949 NovaPassword: {get_param: NovaPassword}
950 NtpServer: {get_param: NtpServer}
951 MongoDbNoJournal: {get_param: MongoDbNoJournal}
952 MongoDbIPv6: {get_param: MongoDbIPv6}
953 PcsdPassword: {get_resource: PcsdPassword}
954 PublicVirtualInterface: {get_param: PublicVirtualInterface}
955 RabbitPassword: {get_param: RabbitPassword}
956 RabbitUserName: {get_param: RabbitUserName}
957 RabbitCookie: {get_attr: [RabbitCookie, value]}
958 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
959 RabbitClientPort: {get_param: RabbitClientPort}
960 RabbitFDLimit: {get_param: RabbitFDLimit}
961 RabbitIPv6: {get_param: RabbitIPv6}
962 RedisPassword: {get_param: RedisPassword}
963 SaharaPassword: {get_param: SaharaPassword}
964 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
965 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
966 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
967 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
968 SwiftHashSuffix: {get_param: SwiftHashSuffix}
969 SwiftMountCheck: {get_param: SwiftMountCheck}
970 SwiftMinPartHours: {get_param: SwiftMinPartHours}
971 SwiftPartPower: {get_param: SwiftPartPower}
972 SwiftPassword: {get_param: SwiftPassword}
973 SwiftReplicas: { get_param: SwiftReplicas}
974 TimeZone: {get_param: TimeZone}
975 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
976 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
977 ServiceNetMap: {get_param: ServiceNetMap}
978 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
979 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
980 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
981 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
982 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
983 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
984 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
985 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
986 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
987 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
988 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
989 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
990 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
991 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
992 UpdateIdentifier: {get_param: UpdateIdentifier}
995 template: {get_param: ControllerHostnameFormat}
997 '%stackname%': {get_param: 'OS::stack_name'}
999 ServerMetadata: {get_param: ServerMetadata}
1000 SchedulerHints: {get_param: ControllerSchedulerHints}
1001 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
1004 type: OS::Heat::ResourceGroup
1005 depends_on: Networks
1007 count: {get_param: ComputeCount}
1008 removal_policies: {get_param: ComputeRemovalPolicies}
1010 type: OS::TripleO::Compute
1012 AdminPassword: {get_param: AdminPassword}
1013 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1014 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1015 CeilometerPassword: {get_param: CeilometerPassword}
1016 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1017 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1018 Debug: {get_param: Debug}
1019 ExtraConfig: {get_param: ExtraConfig}
1020 Flavor: {get_param: OvercloudComputeFlavor}
1021 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1022 Image: {get_param: NovaImage}
1023 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1024 KeyName: {get_param: KeyName}
1025 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1026 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1027 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1028 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1029 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1030 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1031 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1032 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1033 NeutronNetworkType: {get_param: NeutronNetworkType}
1034 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1035 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1036 NeutronPassword: {get_param: NeutronPassword}
1037 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1038 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1039 NeutronDVR: {get_param: NeutronDVR}
1040 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1041 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1042 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1043 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1044 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1045 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1046 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1047 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1048 # L3 HA and Failover is not relevant for Computes, should be removed
1049 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1050 NeutronL3HA: {get_param: NeutronL3HA}
1051 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1052 NovaComputeDriver: {get_param: NovaComputeDriver}
1053 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1054 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1055 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1056 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1057 NovaIPv6: {get_param: NovaIPv6}
1058 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1059 NovaPassword: {get_param: NovaPassword}
1060 NovaOVSBridge: {get_param: NovaOVSBridge}
1061 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1062 NtpServer: {get_param: NtpServer}
1063 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1064 RabbitPassword: {get_param: RabbitPassword}
1065 RabbitUserName: {get_param: RabbitUserName}
1066 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1067 RabbitClientPort: {get_param: RabbitClientPort}
1068 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1069 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1070 ServiceNetMap: {get_param: ServiceNetMap}
1071 TimeZone: {get_param: TimeZone}
1072 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1073 UpdateIdentifier: {get_param: UpdateIdentifier}
1076 template: {get_param: ComputeHostnameFormat}
1078 '%stackname%': {get_param: 'OS::stack_name'}
1079 CloudDomain: {get_param: CloudDomain}
1080 ServerMetadata: {get_param: ServerMetadata}
1081 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1082 NodeIndex: '%index%'
1085 type: OS::Heat::ResourceGroup
1086 depends_on: Networks
1088 count: {get_param: BlockStorageCount}
1089 removal_policies: {get_param: BlockStorageRemovalPolicies}
1091 type: OS::TripleO::BlockStorage
1093 Debug: {get_param: Debug}
1094 Image: {get_param: BlockStorageImage}
1095 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1096 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1097 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1098 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1099 CinderPassword: {get_param: CinderPassword}
1100 KeyName: {get_param: KeyName}
1101 Flavor: {get_param: OvercloudBlockStorageFlavor}
1102 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1103 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1104 RabbitPassword: {get_param: RabbitPassword}
1105 RabbitUserName: {get_param: RabbitUserName}
1106 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1107 RabbitClientPort: {get_param: RabbitClientPort}
1108 TimeZone: {get_param: TimeZone}
1109 NtpServer: {get_param: NtpServer}
1110 UpdateIdentifier: {get_param: UpdateIdentifier}
1113 template: {get_param: BlockStorageHostnameFormat}
1115 '%stackname%': {get_param: 'OS::stack_name'}
1116 ServiceNetMap: {get_param: ServiceNetMap}
1117 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1118 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1119 ExtraConfig: {get_param: ExtraConfig}
1120 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1121 CloudDomain: {get_param: CloudDomain}
1122 ServerMetadata: {get_param: ServerMetadata}
1123 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1124 NodeIndex: '%index%'
1127 type: OS::Heat::ResourceGroup
1128 depends_on: Networks
1130 count: {get_param: ObjectStorageCount}
1131 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1133 type: OS::TripleO::ObjectStorage
1135 KeyName: {get_param: KeyName}
1136 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1137 HashSuffix: {get_param: SwiftHashSuffix}
1138 MountCheck: {get_param: SwiftMountCheck}
1139 MinPartHours: {get_param: SwiftMinPartHours}
1140 PartPower: {get_param: SwiftPartPower}
1141 Image: {get_param: SwiftStorageImage}
1142 Replicas: { get_param: SwiftReplicas}
1143 TimeZone: {get_param: TimeZone}
1144 NtpServer: {get_param: NtpServer}
1145 UpdateIdentifier: {get_param: UpdateIdentifier}
1146 ServiceNetMap: {get_param: ServiceNetMap}
1149 template: {get_param: ObjectStorageHostnameFormat}
1151 '%stackname%': {get_param: 'OS::stack_name'}
1152 ExtraConfig: {get_param: ExtraConfig}
1153 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1154 CloudDomain: {get_param: CloudDomain}
1155 ServerMetadata: {get_param: ServerMetadata}
1156 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1157 NodeIndex: '%index%'
1160 type: OS::Heat::ResourceGroup
1161 depends_on: Networks
1163 count: {get_param: CephStorageCount}
1164 removal_policies: {get_param: CephStorageRemovalPolicies}
1166 type: OS::TripleO::CephStorage
1168 Image: {get_param: CephStorageImage}
1169 KeyName: {get_param: KeyName}
1170 Flavor: {get_param: OvercloudCephStorageFlavor}
1171 NtpServer: {get_param: NtpServer}
1172 ServiceNetMap: {get_param: ServiceNetMap}
1173 TimeZone: {get_param: TimeZone}
1174 UpdateIdentifier: {get_param: UpdateIdentifier}
1177 template: {get_param: CephStorageHostnameFormat}
1179 '%stackname%': {get_param: 'OS::stack_name'}
1180 ExtraConfig: {get_param: ExtraConfig}
1181 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1182 CloudDomain: {get_param: CloudDomain}
1183 ServerMetadata: {get_param: ServerMetadata}
1184 SchedulerHints: {get_param: CephStorageSchedulerHints}
1185 NodeIndex: '%index%'
1187 ControllerIpListMap:
1188 type: OS::TripleO::Network::Ports::NetIpListMap
1190 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1191 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1192 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1193 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1194 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1195 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1196 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1199 type: OS::TripleO::AllNodes::SoftwareConfig
1201 compute_hosts: {get_attr: [Compute, hosts_entry]}
1202 controller_hosts: {get_attr: [Controller, hosts_entry]}
1203 controller_ips: {get_attr: [Controller, ip_address]}
1204 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1205 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1206 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1207 controller_names: {get_attr: [Controller, hostname]}
1208 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1209 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1210 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1211 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1212 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1213 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1214 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1215 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1216 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1217 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1218 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1219 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1220 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1221 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1222 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1223 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1224 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1225 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1226 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1227 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1228 DeployIdentifier: {get_param: DeployIdentifier}
1229 UpdateIdentifier: {get_param: UpdateIdentifier}
1232 type: OS::Heat::RandomString
1236 MysqlClusterUniquePart:
1237 type: OS::Heat::RandomString
1242 type: OS::Heat::RandomString
1245 salt: {get_param: RabbitCookieSalt}
1247 # creates the network architecture
1249 type: OS::TripleO::Network
1252 type: OS::Neutron::Port
1253 depends_on: Networks
1255 name: control_virtual_ip
1256 network: {get_param: NeutronControlPlaneID}
1257 fixed_ips: {get_param: ControlFixedIPs}
1258 replacement_policy: AUTO
1261 depends_on: Networks
1262 type: OS::TripleO::Network::Ports::RedisVipPort
1264 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1265 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1266 PortName: redis_virtual_ip
1267 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1270 # The public VIP is on the External net, falls back to ctlplane
1272 depends_on: Networks
1273 type: OS::TripleO::Network::Ports::ExternalVipPort
1275 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1276 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1277 PortName: public_virtual_ip
1278 FixedIPs: {get_param: PublicVirtualFixedIPs}
1280 InternalApiVirtualIP:
1281 depends_on: Networks
1282 type: OS::TripleO::Network::Ports::InternalApiVipPort
1284 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1285 PortName: internal_api_virtual_ip
1286 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1289 depends_on: Networks
1290 type: OS::TripleO::Network::Ports::StorageVipPort
1292 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1293 PortName: storage_virtual_ip
1294 FixedIPs: {get_param: StorageVirtualFixedIPs}
1296 StorageMgmtVirtualIP:
1297 depends_on: Networks
1298 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1300 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1301 PortName: storage_management_virtual_ip
1302 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1305 type: OS::TripleO::Network::Ports::NetVipMap
1307 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1308 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1309 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1310 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1311 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1312 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1313 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1314 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1315 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1316 # No tenant or management VIP required
1319 type: OS::TripleO::VipConfig
1322 type: OS::Heat::StructuredDeployments
1325 config: {get_resource: VipConfig}
1326 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1328 # service VIP mappings
1329 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1330 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1331 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1332 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1333 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1334 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1335 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1336 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1337 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1338 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1339 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1340 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1341 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1342 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1343 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1344 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1345 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1346 # direct configuration of Virtual IPs for each network
1347 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1348 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1349 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1350 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1351 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1352 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1354 ControllerBootstrapNodeConfig:
1355 type: OS::TripleO::BootstrapNode::SoftwareConfig
1357 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1358 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1360 ControllerBootstrapNodeDeployment:
1361 type: OS::Heat::StructuredDeployments
1363 name: ControllerBootstrapNodeDeployment
1364 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1365 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1367 ControllerSwiftDeployment:
1368 type: OS::Heat::StructuredDeployments
1370 name: ControllerSwiftDeployment
1371 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1372 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1374 ObjectStorageSwiftDeployment:
1375 type: OS::Heat::StructuredDeployments
1377 name: ObjectStorageSwiftDeployment
1378 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1379 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1381 SwiftDevicesAndProxyConfig:
1382 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1384 controller_swift_devices: {get_attr: [Controller, swift_device]}
1385 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1386 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1388 ComputeCephDeployment:
1389 type: OS::Heat::StructuredDeployments
1391 name: ComputeCephDeployment
1392 config: {get_attr: [CephClusterConfig, config_id]}
1393 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1395 ControllerCephDeployment:
1396 type: OS::Heat::StructuredDeployments
1398 name: ControllerCephDeployment
1399 config: {get_attr: [CephClusterConfig, config_id]}
1400 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1402 CephStorageCephDeployment:
1403 type: OS::Heat::StructuredDeployments
1405 name: CephStorageCephDeployment
1406 config: {get_attr: [CephClusterConfig, config_id]}
1407 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1410 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1412 ceph_storage_count: {get_param: CephStorageCount}
1413 ceph_fsid: {get_param: CephClusterFSID}
1414 ceph_mon_key: {get_param: CephMonKey}
1415 ceph_admin_key: {get_param: CephAdminKey}
1416 ceph_client_key: {get_param: CephClientKey}
1417 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1418 ceph_mon_names: {get_attr: [Controller, hostname]}
1419 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1421 ControllerClusterConfig:
1422 type: OS::Heat::StructuredConfig
1424 group: os-apply-config
1427 nodes: {get_attr: [Controller, corosync_node]}
1431 nodes: {get_attr: [Controller, hostname]}
1433 nodes: {get_attr: [Controller, corosync_node]}
1435 nodes: {get_attr: [Controller, corosync_node]}
1437 ControllerClusterDeployment:
1438 type: OS::Heat::StructuredDeployments
1440 name: ControllerClusterDeployment
1441 config: {get_resource: ControllerClusterConfig}
1442 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1444 ControllerAllNodesDeployment:
1445 type: OS::Heat::StructuredDeployments
1447 name: ControllerAllNodesDeployment
1448 config: {get_attr: [allNodesConfig, config_id]}
1449 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1451 ComputeAllNodesDeployment:
1452 type: OS::Heat::StructuredDeployments
1454 name: ComputeAllNodesDeployment
1455 config: {get_attr: [allNodesConfig, config_id]}
1456 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1458 BlockStorageAllNodesDeployment:
1459 type: OS::Heat::StructuredDeployments
1461 name: BlockStorageAllNodesDeployment
1462 config: {get_attr: [allNodesConfig, config_id]}
1463 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1465 ObjectStorageAllNodesDeployment:
1466 type: OS::Heat::StructuredDeployments
1468 name: ObjectStorageAllNodesDeployment
1469 config: {get_attr: [allNodesConfig, config_id]}
1470 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1472 CephStorageAllNodesDeployment:
1473 type: OS::Heat::StructuredDeployments
1475 name: CephStorageAllNodesDeployment
1476 config: {get_attr: [allNodesConfig, config_id]}
1477 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1479 # All Nodes Validations
1480 AllNodesValidationConfig:
1481 type: OS::TripleO::AllNodes::Validation
1486 - - {get_attr: [Controller, resource.0.external_ip_address]}
1487 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1488 - {get_attr: [Controller, resource.0.storage_ip_address]}
1489 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1490 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1492 ControllerAllNodesValidationDeployment:
1493 type: OS::Heat::StructuredDeployments
1494 depends_on: ControllerAllNodesDeployment
1496 name: ControllerAllNodesValidationDeployment
1497 config: {get_resource: AllNodesValidationConfig}
1498 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1500 ComputeAllNodesValidationDeployment:
1501 type: OS::Heat::StructuredDeployments
1502 depends_on: ComputeAllNodesDeployment
1504 name: ComputeAllNodesValidationDeployment
1505 config: {get_resource: AllNodesValidationConfig}
1506 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1508 BlockStorageAllNodesValidationDeployment:
1509 type: OS::Heat::StructuredDeployments
1510 depends_on: BlockStorageAllNodesDeployment
1512 name: BlockStorageAllNodesValidationDeployment
1513 config: {get_resource: AllNodesValidationConfig}
1514 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1516 ObjectStorageAllNodesValidationDeployment:
1517 type: OS::Heat::StructuredDeployments
1518 depends_on: ObjectStorageAllNodesDeployment
1520 name: ObjectStorageAllNodesValidationDeployment
1521 config: {get_resource: AllNodesValidationConfig}
1522 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1524 CephStorageAllNodesValidationDeployment:
1525 type: OS::Heat::StructuredDeployments
1526 depends_on: CephStorageAllNodesDeployment
1528 name: CephStorageAllNodesValidationDeployment
1529 config: {get_resource: AllNodesValidationConfig}
1530 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1533 type: OS::TripleO::Tasks::UpdateWorkflow
1535 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1536 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1537 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1538 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1539 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1541 deploy_identifier: {get_param: DeployIdentifier}
1542 update_identifier: {get_param: UpdateIdentifier}
1544 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1545 # the nested template may configure each role differently (or not at all)
1546 AllNodesExtraConfig:
1547 type: OS::TripleO::AllNodesExtraConfig
1550 - ComputeAllNodesValidationDeployment
1551 - BlockStorageAllNodesValidationDeployment
1552 - ObjectStorageAllNodesValidationDeployment
1553 - CephStorageAllNodesValidationDeployment
1554 - ControllerAllNodesValidationDeployment
1556 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1557 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1558 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1559 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1560 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1562 # Nested stack deployment runs after all other controller deployments
1563 ControllerNodesPostDeployment:
1564 type: OS::TripleO::ControllerPostDeployment
1565 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1567 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1568 NodeConfigIdentifiers:
1569 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1570 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1571 deployment_identifier: {get_param: DeployIdentifier}
1572 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1574 ComputeNodesPostDeployment:
1575 type: OS::TripleO::ComputePostDeployment
1576 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1578 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1579 NodeConfigIdentifiers:
1580 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1581 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1582 deployment_identifier: {get_param: DeployIdentifier}
1584 ObjectStorageNodesPostDeployment:
1585 type: OS::TripleO::ObjectStoragePostDeployment
1586 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1588 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1589 NodeConfigIdentifiers:
1590 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1591 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1592 deployment_identifier: {get_param: DeployIdentifier}
1594 BlockStorageNodesPostDeployment:
1595 type: OS::TripleO::BlockStoragePostDeployment
1596 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1598 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1599 NodeConfigIdentifiers:
1600 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1601 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1602 deployment_identifier: {get_param: DeployIdentifier}
1604 CephStorageNodesPostDeployment:
1605 type: OS::TripleO::CephStoragePostDeployment
1606 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1608 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1609 NodeConfigIdentifiers:
1610 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1611 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1612 deployment_identifier: {get_param: DeployIdentifier}
1616 description: URL for the Overcloud Keystone service
1617 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1619 description: Keystone Admin VIP endpoint
1620 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1622 description: Controller VIP for public API endpoints
1623 value: {get_attr: [VipMap, net_ip_map, external]}
1625 description: VIP for Aodh API internal endpoint
1626 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1627 CeilometerInternalVip:
1628 description: VIP for Ceilometer API internal endpoint
1629 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1631 description: VIP for Cinder API internal endpoint
1632 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1634 description: VIP for Glance API internal endpoint
1635 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1637 description: VIP for Gnocchi API internal endpoint
1638 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1640 description: VIP for Heat API internal endpoint
1641 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1642 KeystoneInternalVip:
1643 description: VIP for Keystone API internal endpoint
1644 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1646 description: VIP for Neutron API internal endpoint
1647 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1649 description: VIP for Nova API internal endpoint
1650 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1652 description: VIP for Sahara API internal endpoint
1653 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1655 description: VIP for Swift Proxy internal endpoint
1656 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1659 Mapping of the resources with the needed info for their endpoints.
1660 This includes the protocol used, the IP, port and also a full
1661 representation of the URI.
1662 value: {get_attr: [EndpointMap, endpoint_map]}
1665 The content that should be appended to your /etc/hosts if you want to get
1666 hostname-based access to the deployed nodes (useful for testing without
1668 value: {get_attr: [allNodesConfig, hosts_entries]}