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
869 Services: {get_param: ControllerServices}
870 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
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 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
988 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
989 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
990 UpdateIdentifier: {get_param: UpdateIdentifier}
993 template: {get_param: ControllerHostnameFormat}
995 '%stackname%': {get_param: 'OS::stack_name'}
997 ServerMetadata: {get_param: ServerMetadata}
998 SchedulerHints: {get_param: ControllerSchedulerHints}
999 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
1001 ComputeServiceChain:
1002 type: OS::TripleO::Services
1004 Services: {get_param: ComputeServices}
1005 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1008 type: OS::Heat::ResourceGroup
1009 depends_on: Networks
1011 count: {get_param: ComputeCount}
1012 removal_policies: {get_param: ComputeRemovalPolicies}
1014 type: OS::TripleO::Compute
1016 AdminPassword: {get_param: AdminPassword}
1017 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1018 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1019 CeilometerPassword: {get_param: CeilometerPassword}
1020 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1021 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1022 Debug: {get_param: Debug}
1023 ExtraConfig: {get_param: ExtraConfig}
1024 Flavor: {get_param: OvercloudComputeFlavor}
1025 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1026 Image: {get_param: NovaImage}
1027 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1028 KeyName: {get_param: KeyName}
1029 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1030 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1031 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1032 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1033 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1034 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1035 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1036 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1037 NeutronNetworkType: {get_param: NeutronNetworkType}
1038 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1039 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1040 NeutronPassword: {get_param: NeutronPassword}
1041 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1042 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1043 NeutronDVR: {get_param: NeutronDVR}
1044 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1045 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1046 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1047 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1048 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1049 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1050 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1051 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1052 # L3 HA and Failover is not relevant for Computes, should be removed
1053 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1054 NeutronL3HA: {get_param: NeutronL3HA}
1055 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1056 NovaComputeDriver: {get_param: NovaComputeDriver}
1057 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1058 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1059 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1060 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1061 NovaIPv6: {get_param: NovaIPv6}
1062 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1063 NovaPassword: {get_param: NovaPassword}
1064 NovaOVSBridge: {get_param: NovaOVSBridge}
1065 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1066 NtpServer: {get_param: NtpServer}
1067 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1068 RabbitPassword: {get_param: RabbitPassword}
1069 RabbitUserName: {get_param: RabbitUserName}
1070 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1071 RabbitClientPort: {get_param: RabbitClientPort}
1072 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1073 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1074 ServiceNetMap: {get_param: ServiceNetMap}
1075 TimeZone: {get_param: TimeZone}
1076 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1077 UpdateIdentifier: {get_param: UpdateIdentifier}
1080 template: {get_param: ComputeHostnameFormat}
1082 '%stackname%': {get_param: 'OS::stack_name'}
1083 CloudDomain: {get_param: CloudDomain}
1084 ServerMetadata: {get_param: ServerMetadata}
1085 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1086 NodeIndex: '%index%'
1087 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
1091 type: OS::Heat::ResourceGroup
1092 depends_on: Networks
1094 count: {get_param: BlockStorageCount}
1095 removal_policies: {get_param: BlockStorageRemovalPolicies}
1097 type: OS::TripleO::BlockStorage
1099 Debug: {get_param: Debug}
1100 Image: {get_param: BlockStorageImage}
1101 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1102 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1103 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1104 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1105 CinderPassword: {get_param: CinderPassword}
1106 KeyName: {get_param: KeyName}
1107 Flavor: {get_param: OvercloudBlockStorageFlavor}
1108 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1109 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1110 RabbitPassword: {get_param: RabbitPassword}
1111 RabbitUserName: {get_param: RabbitUserName}
1112 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1113 RabbitClientPort: {get_param: RabbitClientPort}
1114 TimeZone: {get_param: TimeZone}
1115 NtpServer: {get_param: NtpServer}
1116 UpdateIdentifier: {get_param: UpdateIdentifier}
1119 template: {get_param: BlockStorageHostnameFormat}
1121 '%stackname%': {get_param: 'OS::stack_name'}
1122 ServiceNetMap: {get_param: ServiceNetMap}
1123 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1124 ExtraConfig: {get_param: ExtraConfig}
1125 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1126 CloudDomain: {get_param: CloudDomain}
1127 ServerMetadata: {get_param: ServerMetadata}
1128 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1129 NodeIndex: '%index%'
1132 type: OS::Heat::ResourceGroup
1133 depends_on: Networks
1135 count: {get_param: ObjectStorageCount}
1136 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1138 type: OS::TripleO::ObjectStorage
1140 KeyName: {get_param: KeyName}
1141 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1142 HashSuffix: {get_param: SwiftHashSuffix}
1143 MountCheck: {get_param: SwiftMountCheck}
1144 MinPartHours: {get_param: SwiftMinPartHours}
1145 PartPower: {get_param: SwiftPartPower}
1146 Image: {get_param: SwiftStorageImage}
1147 Replicas: { get_param: SwiftReplicas}
1148 TimeZone: {get_param: TimeZone}
1149 NtpServer: {get_param: NtpServer}
1150 UpdateIdentifier: {get_param: UpdateIdentifier}
1151 ServiceNetMap: {get_param: ServiceNetMap}
1154 template: {get_param: ObjectStorageHostnameFormat}
1156 '%stackname%': {get_param: 'OS::stack_name'}
1157 ExtraConfig: {get_param: ExtraConfig}
1158 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1159 CloudDomain: {get_param: CloudDomain}
1160 ServerMetadata: {get_param: ServerMetadata}
1161 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1162 NodeIndex: '%index%'
1164 CephStorageServiceChain:
1165 type: OS::TripleO::Services
1167 Services: {get_param: CephStorageServices}
1168 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1171 type: OS::Heat::ResourceGroup
1172 depends_on: Networks
1174 count: {get_param: CephStorageCount}
1175 removal_policies: {get_param: CephStorageRemovalPolicies}
1177 type: OS::TripleO::CephStorage
1179 Image: {get_param: CephStorageImage}
1180 KeyName: {get_param: KeyName}
1181 Flavor: {get_param: OvercloudCephStorageFlavor}
1182 NtpServer: {get_param: NtpServer}
1183 ServiceNetMap: {get_param: ServiceNetMap}
1184 TimeZone: {get_param: TimeZone}
1185 UpdateIdentifier: {get_param: UpdateIdentifier}
1188 template: {get_param: CephStorageHostnameFormat}
1190 '%stackname%': {get_param: 'OS::stack_name'}
1191 ExtraConfig: {get_param: ExtraConfig}
1192 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1193 CloudDomain: {get_param: CloudDomain}
1194 ServerMetadata: {get_param: ServerMetadata}
1195 SchedulerHints: {get_param: CephStorageSchedulerHints}
1196 NodeIndex: '%index%'
1197 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1199 ControllerIpListMap:
1200 type: OS::TripleO::Network::Ports::NetIpListMap
1202 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1203 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1204 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1205 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1206 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1207 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1208 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1211 type: OS::TripleO::AllNodes::SoftwareConfig
1213 compute_hosts: {get_attr: [Compute, hosts_entry]}
1214 controller_hosts: {get_attr: [Controller, hosts_entry]}
1215 controller_ips: {get_attr: [Controller, ip_address]}
1216 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1217 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1218 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1219 controller_names: {get_attr: [Controller, hostname]}
1220 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1221 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1222 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1223 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1224 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1225 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1226 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1227 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1228 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1229 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1230 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1231 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1232 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1233 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1234 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1235 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1236 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1237 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1238 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1239 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1240 DeployIdentifier: {get_param: DeployIdentifier}
1241 UpdateIdentifier: {get_param: UpdateIdentifier}
1244 type: OS::Heat::RandomString
1248 MysqlClusterUniquePart:
1249 type: OS::Heat::RandomString
1254 type: OS::Heat::RandomString
1257 salt: {get_param: RabbitCookieSalt}
1259 # creates the network architecture
1261 type: OS::TripleO::Network
1264 type: OS::Neutron::Port
1265 depends_on: Networks
1267 name: control_virtual_ip
1268 network: {get_param: NeutronControlPlaneID}
1269 fixed_ips: {get_param: ControlFixedIPs}
1270 replacement_policy: AUTO
1273 depends_on: Networks
1274 type: OS::TripleO::Network::Ports::RedisVipPort
1276 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1277 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1278 PortName: redis_virtual_ip
1279 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1282 # The public VIP is on the External net, falls back to ctlplane
1284 depends_on: Networks
1285 type: OS::TripleO::Network::Ports::ExternalVipPort
1287 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1288 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1289 PortName: public_virtual_ip
1290 FixedIPs: {get_param: PublicVirtualFixedIPs}
1292 InternalApiVirtualIP:
1293 depends_on: Networks
1294 type: OS::TripleO::Network::Ports::InternalApiVipPort
1296 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1297 PortName: internal_api_virtual_ip
1298 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1301 depends_on: Networks
1302 type: OS::TripleO::Network::Ports::StorageVipPort
1304 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1305 PortName: storage_virtual_ip
1306 FixedIPs: {get_param: StorageVirtualFixedIPs}
1308 StorageMgmtVirtualIP:
1309 depends_on: Networks
1310 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1312 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1313 PortName: storage_management_virtual_ip
1314 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1317 type: OS::TripleO::Network::Ports::NetVipMap
1319 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1320 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1321 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1322 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1323 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1324 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1325 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1326 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1327 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1328 # No tenant or management VIP required
1331 type: OS::TripleO::VipConfig
1334 type: OS::Heat::StructuredDeployments
1337 config: {get_resource: VipConfig}
1338 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1340 # service VIP mappings
1341 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1342 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1343 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1344 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1345 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1346 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1347 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1348 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1349 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1350 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1351 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1352 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1353 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1354 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1355 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1356 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1357 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1358 # direct configuration of Virtual IPs for each network
1359 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1360 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1361 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1362 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1363 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1364 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1366 ControllerBootstrapNodeConfig:
1367 type: OS::TripleO::BootstrapNode::SoftwareConfig
1369 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1370 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1372 ControllerBootstrapNodeDeployment:
1373 type: OS::Heat::StructuredDeployments
1375 name: ControllerBootstrapNodeDeployment
1376 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1377 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1379 ControllerSwiftDeployment:
1380 type: OS::Heat::StructuredDeployments
1382 name: ControllerSwiftDeployment
1383 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1384 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1386 ObjectStorageSwiftDeployment:
1387 type: OS::Heat::StructuredDeployments
1389 name: ObjectStorageSwiftDeployment
1390 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1391 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1393 SwiftDevicesAndProxyConfig:
1394 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1396 controller_swift_devices: {get_attr: [Controller, swift_device]}
1397 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1398 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1400 ComputeCephDeployment:
1401 type: OS::Heat::StructuredDeployments
1403 name: ComputeCephDeployment
1404 config: {get_attr: [CephClusterConfig, config_id]}
1405 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1407 ControllerCephDeployment:
1408 type: OS::Heat::StructuredDeployments
1410 name: ControllerCephDeployment
1411 config: {get_attr: [CephClusterConfig, config_id]}
1412 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1414 CephStorageCephDeployment:
1415 type: OS::Heat::StructuredDeployments
1417 name: CephStorageCephDeployment
1418 config: {get_attr: [CephClusterConfig, config_id]}
1419 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1422 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1424 ceph_storage_count: {get_param: CephStorageCount}
1425 ceph_fsid: {get_param: CephClusterFSID}
1426 ceph_mon_key: {get_param: CephMonKey}
1427 ceph_admin_key: {get_param: CephAdminKey}
1428 ceph_client_key: {get_param: CephClientKey}
1429 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1430 ceph_mon_names: {get_attr: [Controller, hostname]}
1431 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1433 ControllerAllNodesDeployment:
1434 type: OS::Heat::StructuredDeployments
1436 name: ControllerAllNodesDeployment
1437 config: {get_attr: [allNodesConfig, config_id]}
1438 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1440 ComputeAllNodesDeployment:
1441 type: OS::Heat::StructuredDeployments
1443 name: ComputeAllNodesDeployment
1444 config: {get_attr: [allNodesConfig, config_id]}
1445 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1447 BlockStorageAllNodesDeployment:
1448 type: OS::Heat::StructuredDeployments
1450 name: BlockStorageAllNodesDeployment
1451 config: {get_attr: [allNodesConfig, config_id]}
1452 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1454 ObjectStorageAllNodesDeployment:
1455 type: OS::Heat::StructuredDeployments
1457 name: ObjectStorageAllNodesDeployment
1458 config: {get_attr: [allNodesConfig, config_id]}
1459 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1461 CephStorageAllNodesDeployment:
1462 type: OS::Heat::StructuredDeployments
1464 name: CephStorageAllNodesDeployment
1465 config: {get_attr: [allNodesConfig, config_id]}
1466 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1468 # All Nodes Validations
1469 AllNodesValidationConfig:
1470 type: OS::TripleO::AllNodes::Validation
1475 - - {get_attr: [Controller, resource.0.external_ip_address]}
1476 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1477 - {get_attr: [Controller, resource.0.storage_ip_address]}
1478 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1479 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1481 ControllerAllNodesValidationDeployment:
1482 type: OS::Heat::StructuredDeployments
1483 depends_on: ControllerAllNodesDeployment
1485 name: ControllerAllNodesValidationDeployment
1486 config: {get_resource: AllNodesValidationConfig}
1487 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1489 ComputeAllNodesValidationDeployment:
1490 type: OS::Heat::StructuredDeployments
1491 depends_on: ComputeAllNodesDeployment
1493 name: ComputeAllNodesValidationDeployment
1494 config: {get_resource: AllNodesValidationConfig}
1495 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1497 BlockStorageAllNodesValidationDeployment:
1498 type: OS::Heat::StructuredDeployments
1499 depends_on: BlockStorageAllNodesDeployment
1501 name: BlockStorageAllNodesValidationDeployment
1502 config: {get_resource: AllNodesValidationConfig}
1503 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1505 ObjectStorageAllNodesValidationDeployment:
1506 type: OS::Heat::StructuredDeployments
1507 depends_on: ObjectStorageAllNodesDeployment
1509 name: ObjectStorageAllNodesValidationDeployment
1510 config: {get_resource: AllNodesValidationConfig}
1511 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1513 CephStorageAllNodesValidationDeployment:
1514 type: OS::Heat::StructuredDeployments
1515 depends_on: CephStorageAllNodesDeployment
1517 name: CephStorageAllNodesValidationDeployment
1518 config: {get_resource: AllNodesValidationConfig}
1519 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1522 type: OS::TripleO::Tasks::UpdateWorkflow
1524 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1525 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1526 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1527 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1528 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1530 deploy_identifier: {get_param: DeployIdentifier}
1531 update_identifier: {get_param: UpdateIdentifier}
1533 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1534 # the nested template may configure each role differently (or not at all)
1535 AllNodesExtraConfig:
1536 type: OS::TripleO::AllNodesExtraConfig
1539 - ComputeAllNodesValidationDeployment
1540 - BlockStorageAllNodesValidationDeployment
1541 - ObjectStorageAllNodesValidationDeployment
1542 - CephStorageAllNodesValidationDeployment
1543 - ControllerAllNodesValidationDeployment
1545 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1546 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1547 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1548 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1549 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1551 # Nested stack deployment runs after all other controller deployments
1552 ControllerNodesPostDeployment:
1553 type: OS::TripleO::ControllerPostDeployment
1554 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1556 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1557 NodeConfigIdentifiers:
1558 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1559 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1560 deployment_identifier: {get_param: DeployIdentifier}
1561 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1563 ComputeNodesPostDeployment:
1564 type: OS::TripleO::ComputePostDeployment
1565 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1567 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1568 NodeConfigIdentifiers:
1569 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1570 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1571 deployment_identifier: {get_param: DeployIdentifier}
1572 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1574 ObjectStorageNodesPostDeployment:
1575 type: OS::TripleO::ObjectStoragePostDeployment
1576 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1578 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1579 NodeConfigIdentifiers:
1580 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1581 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1582 deployment_identifier: {get_param: DeployIdentifier}
1584 BlockStorageNodesPostDeployment:
1585 type: OS::TripleO::BlockStoragePostDeployment
1586 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1588 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1589 NodeConfigIdentifiers:
1590 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1591 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1592 deployment_identifier: {get_param: DeployIdentifier}
1594 CephStorageNodesPostDeployment:
1595 type: OS::TripleO::CephStoragePostDeployment
1596 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1598 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1599 NodeConfigIdentifiers:
1600 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1601 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1602 deployment_identifier: {get_param: DeployIdentifier}
1603 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1607 description: URL for the Overcloud Keystone service
1608 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1610 description: Keystone Admin VIP endpoint
1611 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1613 description: Controller VIP for public API endpoints
1614 value: {get_attr: [VipMap, net_ip_map, external]}
1616 description: VIP for Aodh API internal endpoint
1617 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1618 CeilometerInternalVip:
1619 description: VIP for Ceilometer API internal endpoint
1620 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1622 description: VIP for Cinder API internal endpoint
1623 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1625 description: VIP for Glance API internal endpoint
1626 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1628 description: VIP for Gnocchi API internal endpoint
1629 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1631 description: VIP for Heat API internal endpoint
1632 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1633 KeystoneInternalVip:
1634 description: VIP for Keystone API internal endpoint
1635 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1637 description: VIP for Neutron API internal endpoint
1638 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1640 description: VIP for Nova API internal endpoint
1641 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1643 description: VIP for Sahara API internal endpoint
1644 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1646 description: VIP for Swift Proxy internal endpoint
1647 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1650 Mapping of the resources with the needed info for their endpoints.
1651 This includes the protocol used, the IP, port and also a full
1652 representation of the URI.
1653 value: {get_attr: [EndpointMap, endpoint_map]}
1656 The content that should be appended to your /etc/hosts if you want to get
1657 hostname-based access to the deployed nodes (useful for testing without
1659 value: {get_attr: [allNodesConfig, hosts_entries]}