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.
513 description: Value of mount_check in Swift account/container/object -server.conf
518 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
521 description: Partition Power to use when building Swift rings
526 description: How many replicas to use in the swift rings.
528 # Compute-specific params
529 CeilometerComputeAgent:
530 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
534 - allowed_values: ['', Present]
538 HypervisorNeutronPhysicalBridge:
541 An OVS bridge to create on each hypervisor. This defaults to br-ex the
542 same as the control plane nodes, as we have a uniform configuration of
543 the openvswitch agent. Typically should not need to be changed.
545 HypervisorNeutronPublicInterface:
547 description: What interface to add to the HypervisorNeutronPhysicalBridge.
549 NeutronNetworkVLANRanges:
550 default: 'datacentre:1:1000'
552 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
553 Neutron documentation for permitted values. Defaults to permitting any
554 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
555 type: comma_delimited_list
558 default: libvirt.LibvirtDriver
559 NovaComputeExtraConfig:
562 NovaCompute specific configuration to inject into the cluster. Same
563 structure as ExtraConfig.
565 NovaComputeLibvirtType:
568 NovaComputeLibvirtVifDriver:
570 description: Libvirt VIF driver configuration for the network
572 NovaComputeSchedulerHints:
574 description: Optional scheduler hints to pass to nova
576 NovaEnableRbdBackend:
578 description: Whether to enable or not the Rbd backend for Nova
582 default: overcloud-full
584 - custom_constraint: glance.image
587 description: Name of integration bridge used by Open vSwitch
589 NovaSecurityGroupAPI:
591 description: The full class name of the security API class
593 OvercloudComputeFlavor:
594 description: Use this flavor
598 - custom_constraint: nova.flavor
601 NeutronTenantNetwork: tenant
602 CeilometerApiNetwork: internal_api
603 AodhApiNetwork: internal_api
604 GnocchiApiNetwork: internal_api
605 MongoDbNetwork: internal_api
606 CinderApiNetwork: internal_api
607 CinderIscsiNetwork: storage
608 GlanceApiNetwork: storage
609 GlanceRegistryNetwork: internal_api
610 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
611 KeystonePublicApiNetwork: internal_api
612 NeutronApiNetwork: internal_api
613 HeatApiNetwork: internal_api
614 NovaApiNetwork: internal_api
615 NovaMetadataNetwork: internal_api
616 NovaVncProxyNetwork: internal_api
617 SwiftMgmtNetwork: storage_mgmt
618 SwiftProxyNetwork: storage
619 SaharaApiNetwork: internal_api
620 HorizonNetwork: internal_api
621 MemcachedNetwork: internal_api
622 RabbitMqNetwork: internal_api
623 RedisNetwork: internal_api
624 MysqlNetwork: internal_api
625 CephClusterNetwork: storage_mgmt
626 CephPublicNetwork: storage
627 ControllerHostnameResolveNetwork: internal_api
628 ComputeHostnameResolveNetwork: internal_api
629 BlockStorageHostnameResolveNetwork: internal_api
630 ObjectStorageHostnameResolveNetwork: internal_api
631 CephStorageHostnameResolveNetwork: storage
632 description: Mapping of service_name -> network name. Typically set
633 via parameter_defaults in the resource registry.
638 - OS::TripleO::Services::Keystone
639 - OS::TripleO::Services::GlanceApi
640 - OS::TripleO::Services::GlanceRegistry
641 - OS::TripleO::Services::HeatApi
642 - OS::TripleO::Services::HeatApiCfn
643 - OS::TripleO::Services::HeatApiCloudwatch
644 - OS::TripleO::Services::HeatEngine
645 - OS::TripleO::Services::NeutronDhcpAgent
646 - OS::TripleO::Services::NeutronL3Agent
647 - OS::TripleO::Services::NeutronMetadataAgent
648 - OS::TripleO::Services::RabbitMQ
649 - OS::TripleO::Services::Loadbalancer
650 - OS::TripleO::Services::Memcached
651 - OS::TripleO::Services::SwiftProxy
652 description: A list of service resources (configured in the Heat
653 resource_registry) which represent nested stacks
654 for each service that should get installed on the Controllers.
655 type: comma_delimited_list
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 Compute Nodes.
662 type: comma_delimited_list
664 # Block storage specific parameters
669 default: overcloud-full
671 OvercloudBlockStorageFlavor:
672 description: Flavor for block storage nodes to request when deploying.
676 - custom_constraint: nova.flavor
677 BlockStorageExtraConfig:
680 BlockStorage specific configuration to inject into the cluster. Same
681 structure as ExtraConfig.
683 BlockStorageSchedulerHints:
685 description: Optional scheduler hints to pass to nova
689 # Object storage specific parameters
693 OvercloudSwiftStorageFlavor:
694 description: Flavor for Swift storage nodes to request when deploying.
698 - custom_constraint: nova.flavor
700 default: overcloud-full
702 ObjectStorageExtraConfig:
705 ObjectStorage specific configuration to inject into the cluster. Same
706 structure as ExtraConfig.
708 ObjectStorageSchedulerHints:
710 description: Optional scheduler hints to pass to nova
713 # Ceph storage specific parameters
718 default: overcloud-full
720 OvercloudCephStorageFlavor:
722 description: Flavor for Ceph storage nodes to request when deploying.
725 - custom_constraint: nova.flavor
726 CephStorageExtraConfig:
729 CephStorage specific configuration to inject into the cluster. Same
730 structure as ExtraConfig.
732 CephStorageSchedulerHints:
734 description: Optional scheduler hints to pass to nova
738 description: A list of service resources (configured in the Heat
739 resource_registry) which represent nested stacks
740 for each service that should get installed on the CephStorage nodes.
741 type: comma_delimited_list
743 # Hostname format for each role
744 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
745 # and %stackname% is replaced with OS::stack_name in the template below.
746 # If you want to use the heat generated names, pass '' (empty string).
747 ControllerHostnameFormat:
749 description: Format for Controller node hostnames
750 default: '%stackname%-controller-%index%'
751 ComputeHostnameFormat:
753 description: Format for Compute node hostnames
754 default: '%stackname%-novacompute-%index%'
755 BlockStorageHostnameFormat:
757 description: Format for BlockStorage node hostnames
758 default: '%stackname%-blockstorage-%index%'
759 ObjectStorageHostnameFormat:
761 description: Format for SwiftStorage node hostnames
762 default: '%stackname%-objectstorage-%index%'
763 CephStorageHostnameFormat:
765 description: Format for CephStorage node hostnames
766 default: '%stackname%-cephstorage-%index%'
768 # Identifiers to trigger tasks on nodes
773 Setting to a previously unused value during stack-update will trigger
774 package update on all nodes
779 Setting this to a unique value will re-run any deployment tasks which
780 perform configuration on a Heat stack-update.
782 # If you want to remove a specific node from a resource group, you can pass
783 # the node name or id as a <Group>RemovalPolicies parameter, for example:
784 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
785 ControllerRemovalPolicies:
789 List of resources to be removed from ControllerResourceGroup when
790 doing an update which requires removal of specific resources.
791 ComputeRemovalPolicies:
795 List of resources to be removed from ComputeResourceGroup when
796 doing an update which requires removal of specific resources.
797 BlockStorageRemovalPolicies:
801 List of resources to be removed from BlockStorageResourceGroup when
802 doing an update which requires removal of specific resources.
803 ObjectStorageRemovalPolicies:
807 List of resources to be removed from ObjectStorageResourceGroup when
808 doing an update which requires removal of specific resources.
809 CephStorageRemovalPolicies:
813 List of resources to be removed from CephStorageResourceGroup when
814 doing an update which requires removal of specific resources.
818 description: Do not use deprecated params, they will be removed.
820 - controllerExtraConfig
825 HeatAuthEncryptionKey:
826 type: OS::Heat::RandomString
829 type: OS::Heat::RandomString
834 type: OS::Heat::RandomString
839 type: OS::TripleO::EndpointMap
841 CloudName: {get_param: CloudName}
842 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
843 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
844 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
845 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
846 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
847 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
848 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
849 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
850 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
851 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
852 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
853 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
854 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
855 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
856 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
858 ControllerServiceChain:
859 type: OS::TripleO::Services
862 Services: {get_param: ControllerServices}
863 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
866 type: OS::Heat::ResourceGroup
869 count: {get_param: ControllerCount}
870 removal_policies: {get_param: ControllerRemovalPolicies}
872 type: OS::TripleO::Controller
874 AdminPassword: {get_param: AdminPassword}
875 AodhPassword: {get_param: AodhPassword}
876 CeilometerBackend: {get_param: CeilometerBackend}
877 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
878 CeilometerPassword: {get_param: CeilometerPassword}
879 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
880 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
881 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
882 CinderNfsServers: {get_param: CinderNfsServers}
883 CinderPassword: {get_param: CinderPassword}
884 CinderISCSIHelper: {get_param: CinderISCSIHelper}
885 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
886 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
887 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
888 CloudDomain: {get_param: CloudDomain}
889 ControlVirtualInterface: {get_param: ControlVirtualInterface}
890 controllerExtraConfig: {get_param: controllerExtraConfig}
891 CorosyncIPv6: {get_param: CorosyncIPv6}
892 Debug: {get_param: Debug}
893 EnableFencing: {get_param: EnableFencing}
894 ManageFirewall: {get_param: ManageFirewall}
895 PurgeFirewallRules: {get_param: PurgeFirewallRules}
896 EnableGalera: {get_param: EnableGalera}
897 EnableCephStorage: {get_param: ControllerEnableCephStorage}
898 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
899 ExtraConfig: {get_param: ExtraConfig}
900 FencingConfig: {get_param: FencingConfig}
901 Flavor: {get_param: OvercloudControlFlavor}
902 GnocchiPassword: {get_param: GnocchiPassword}
903 GnocchiBackend: {get_param: GnocchiBackend}
904 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
905 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
906 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
907 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
908 HorizonSecret: {get_resource: HorizonSecret}
909 Image: {get_param: controllerImage}
910 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
911 InstanceNameTemplate: {get_param: InstanceNameTemplate}
912 KeyName: {get_param: KeyName}
913 MemcachedIPv6: {get_param: MemcachedIPv6}
914 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
915 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
916 MysqlMaxConnections: {get_param: MysqlMaxConnections}
917 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
918 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
919 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
920 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
921 NeutronTenantMtu: {get_param: NeutronTenantMtu}
922 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
923 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
924 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
925 NeutronPublicInterface: {get_param: NeutronPublicInterface}
926 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
927 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
928 NeutronPassword: {get_param: NeutronPassword}
929 NeutronDVR: {get_param: NeutronDVR}
930 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
931 NeutronAgentMode: {get_param: NeutronAgentMode}
932 NeutronCorePlugin: {get_param: NeutronCorePlugin}
933 NeutronServicePlugins: {get_param: NeutronServicePlugins}
934 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
935 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
936 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
937 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
938 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
939 NeutronL3HA: {get_param: NeutronL3HA}
940 NeutronNetworkType: {get_param: NeutronNetworkType}
941 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
942 NovaIPv6: {get_param: NovaIPv6}
943 NovaPassword: {get_param: NovaPassword}
944 NtpServer: {get_param: NtpServer}
945 MongoDbNoJournal: {get_param: MongoDbNoJournal}
946 MongoDbIPv6: {get_param: MongoDbIPv6}
947 PcsdPassword: {get_resource: PcsdPassword}
948 PublicVirtualInterface: {get_param: PublicVirtualInterface}
949 RabbitPassword: {get_param: RabbitPassword}
950 RabbitUserName: {get_param: RabbitUserName}
951 RabbitCookie: {get_attr: [RabbitCookie, value]}
952 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
953 RabbitClientPort: {get_param: RabbitClientPort}
954 RedisPassword: {get_param: RedisPassword}
955 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
956 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
957 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
958 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
959 SwiftHashSuffix: {get_param: SwiftHashSuffix}
960 SwiftMountCheck: {get_param: SwiftMountCheck}
961 SwiftMinPartHours: {get_param: SwiftMinPartHours}
962 SwiftPartPower: {get_param: SwiftPartPower}
963 SwiftReplicas: { get_param: SwiftReplicas}
964 TimeZone: {get_param: TimeZone}
965 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
966 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
967 ServiceNetMap: {get_param: ServiceNetMap}
968 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
969 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
970 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
971 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
972 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
973 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
974 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
975 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
976 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
977 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
978 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
979 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
980 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
981 UpdateIdentifier: {get_param: UpdateIdentifier}
984 template: {get_param: ControllerHostnameFormat}
986 '%stackname%': {get_param: 'OS::stack_name'}
988 ServerMetadata: {get_param: ServerMetadata}
989 SchedulerHints: {get_param: ControllerSchedulerHints}
990 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
993 type: OS::TripleO::Services
995 Services: {get_param: ComputeServices}
996 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
999 type: OS::Heat::ResourceGroup
1000 depends_on: Networks
1002 count: {get_param: ComputeCount}
1003 removal_policies: {get_param: ComputeRemovalPolicies}
1005 type: OS::TripleO::Compute
1007 AdminPassword: {get_param: AdminPassword}
1008 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1009 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1010 CeilometerPassword: {get_param: CeilometerPassword}
1011 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1012 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1013 Debug: {get_param: Debug}
1014 ExtraConfig: {get_param: ExtraConfig}
1015 Flavor: {get_param: OvercloudComputeFlavor}
1016 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1017 Image: {get_param: NovaImage}
1018 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1019 KeyName: {get_param: KeyName}
1020 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1021 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1022 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1023 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1024 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1025 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1026 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1027 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1028 NeutronNetworkType: {get_param: NeutronNetworkType}
1029 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1030 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1031 NeutronPassword: {get_param: NeutronPassword}
1032 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1033 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1034 NeutronDVR: {get_param: NeutronDVR}
1035 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1036 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1037 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1038 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1039 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1040 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1041 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1042 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1043 # L3 HA and Failover is not relevant for Computes, should be removed
1044 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1045 NeutronL3HA: {get_param: NeutronL3HA}
1046 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1047 NovaComputeDriver: {get_param: NovaComputeDriver}
1048 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1049 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1050 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1051 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1052 NovaIPv6: {get_param: NovaIPv6}
1053 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1054 NovaPassword: {get_param: NovaPassword}
1055 NovaOVSBridge: {get_param: NovaOVSBridge}
1056 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1057 NtpServer: {get_param: NtpServer}
1058 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1059 RabbitPassword: {get_param: RabbitPassword}
1060 RabbitUserName: {get_param: RabbitUserName}
1061 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1062 RabbitClientPort: {get_param: RabbitClientPort}
1063 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1064 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1065 ServiceNetMap: {get_param: ServiceNetMap}
1066 TimeZone: {get_param: TimeZone}
1067 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1068 UpdateIdentifier: {get_param: UpdateIdentifier}
1071 template: {get_param: ComputeHostnameFormat}
1073 '%stackname%': {get_param: 'OS::stack_name'}
1074 CloudDomain: {get_param: CloudDomain}
1075 ServerMetadata: {get_param: ServerMetadata}
1076 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1077 NodeIndex: '%index%'
1078 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
1082 type: OS::Heat::ResourceGroup
1083 depends_on: Networks
1085 count: {get_param: BlockStorageCount}
1086 removal_policies: {get_param: BlockStorageRemovalPolicies}
1088 type: OS::TripleO::BlockStorage
1090 Debug: {get_param: Debug}
1091 Image: {get_param: BlockStorageImage}
1092 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1093 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1094 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1095 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1096 CinderPassword: {get_param: CinderPassword}
1097 KeyName: {get_param: KeyName}
1098 Flavor: {get_param: OvercloudBlockStorageFlavor}
1099 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1100 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1101 RabbitPassword: {get_param: RabbitPassword}
1102 RabbitUserName: {get_param: RabbitUserName}
1103 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1104 RabbitClientPort: {get_param: RabbitClientPort}
1105 TimeZone: {get_param: TimeZone}
1106 NtpServer: {get_param: NtpServer}
1107 UpdateIdentifier: {get_param: UpdateIdentifier}
1110 template: {get_param: BlockStorageHostnameFormat}
1112 '%stackname%': {get_param: 'OS::stack_name'}
1113 ServiceNetMap: {get_param: ServiceNetMap}
1114 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1115 ExtraConfig: {get_param: ExtraConfig}
1116 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1117 CloudDomain: {get_param: CloudDomain}
1118 ServerMetadata: {get_param: ServerMetadata}
1119 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1120 NodeIndex: '%index%'
1123 type: OS::Heat::ResourceGroup
1124 depends_on: Networks
1126 count: {get_param: ObjectStorageCount}
1127 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1129 type: OS::TripleO::ObjectStorage
1131 KeyName: {get_param: KeyName}
1132 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1133 HashSuffix: {get_param: SwiftHashSuffix}
1134 MountCheck: {get_param: SwiftMountCheck}
1135 MinPartHours: {get_param: SwiftMinPartHours}
1136 PartPower: {get_param: SwiftPartPower}
1137 Image: {get_param: SwiftStorageImage}
1138 Replicas: { get_param: SwiftReplicas}
1139 TimeZone: {get_param: TimeZone}
1140 NtpServer: {get_param: NtpServer}
1141 UpdateIdentifier: {get_param: UpdateIdentifier}
1142 ServiceNetMap: {get_param: ServiceNetMap}
1145 template: {get_param: ObjectStorageHostnameFormat}
1147 '%stackname%': {get_param: 'OS::stack_name'}
1148 ExtraConfig: {get_param: ExtraConfig}
1149 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1150 CloudDomain: {get_param: CloudDomain}
1151 ServerMetadata: {get_param: ServerMetadata}
1152 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1153 NodeIndex: '%index%'
1155 CephStorageServiceChain:
1156 type: OS::TripleO::Services
1158 Services: {get_param: CephStorageServices}
1159 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1162 type: OS::Heat::ResourceGroup
1163 depends_on: Networks
1165 count: {get_param: CephStorageCount}
1166 removal_policies: {get_param: CephStorageRemovalPolicies}
1168 type: OS::TripleO::CephStorage
1170 Image: {get_param: CephStorageImage}
1171 KeyName: {get_param: KeyName}
1172 Flavor: {get_param: OvercloudCephStorageFlavor}
1173 NtpServer: {get_param: NtpServer}
1174 ServiceNetMap: {get_param: ServiceNetMap}
1175 TimeZone: {get_param: TimeZone}
1176 UpdateIdentifier: {get_param: UpdateIdentifier}
1179 template: {get_param: CephStorageHostnameFormat}
1181 '%stackname%': {get_param: 'OS::stack_name'}
1182 ExtraConfig: {get_param: ExtraConfig}
1183 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1184 CloudDomain: {get_param: CloudDomain}
1185 ServerMetadata: {get_param: ServerMetadata}
1186 SchedulerHints: {get_param: CephStorageSchedulerHints}
1187 NodeIndex: '%index%'
1188 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1190 ControllerIpListMap:
1191 type: OS::TripleO::Network::Ports::NetIpListMap
1193 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1194 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1195 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1196 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1197 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1198 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1199 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1202 type: OS::TripleO::AllNodes::SoftwareConfig
1204 compute_hosts: {get_attr: [Compute, hosts_entry]}
1205 controller_hosts: {get_attr: [Controller, hosts_entry]}
1206 controller_ips: {get_attr: [Controller, ip_address]}
1207 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1208 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1209 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1210 controller_names: {get_attr: [Controller, hostname]}
1211 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1212 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1213 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1214 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1215 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1216 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1217 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1218 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1219 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1220 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1221 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1222 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1223 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1224 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1225 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1226 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1227 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1228 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1229 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1230 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1231 DeployIdentifier: {get_param: DeployIdentifier}
1232 UpdateIdentifier: {get_param: UpdateIdentifier}
1235 type: OS::Heat::RandomString
1239 MysqlClusterUniquePart:
1240 type: OS::Heat::RandomString
1245 type: OS::Heat::RandomString
1248 salt: {get_param: RabbitCookieSalt}
1250 # creates the network architecture
1252 type: OS::TripleO::Network
1255 type: OS::Neutron::Port
1256 depends_on: Networks
1258 name: control_virtual_ip
1259 network: {get_param: NeutronControlPlaneID}
1260 fixed_ips: {get_param: ControlFixedIPs}
1261 replacement_policy: AUTO
1264 depends_on: Networks
1265 type: OS::TripleO::Network::Ports::RedisVipPort
1267 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1268 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1269 PortName: redis_virtual_ip
1270 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1273 # The public VIP is on the External net, falls back to ctlplane
1275 depends_on: Networks
1276 type: OS::TripleO::Network::Ports::ExternalVipPort
1278 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1279 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1280 PortName: public_virtual_ip
1281 FixedIPs: {get_param: PublicVirtualFixedIPs}
1283 InternalApiVirtualIP:
1284 depends_on: Networks
1285 type: OS::TripleO::Network::Ports::InternalApiVipPort
1287 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1288 PortName: internal_api_virtual_ip
1289 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1292 depends_on: Networks
1293 type: OS::TripleO::Network::Ports::StorageVipPort
1295 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1296 PortName: storage_virtual_ip
1297 FixedIPs: {get_param: StorageVirtualFixedIPs}
1299 StorageMgmtVirtualIP:
1300 depends_on: Networks
1301 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1303 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1304 PortName: storage_management_virtual_ip
1305 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1308 type: OS::TripleO::Network::Ports::NetVipMap
1310 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1311 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1312 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1313 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1314 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1315 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1316 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1317 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1318 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1319 # No tenant or management VIP required
1322 type: OS::TripleO::VipConfig
1325 type: OS::Heat::StructuredDeployments
1328 config: {get_resource: VipConfig}
1329 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1331 # service VIP mappings
1332 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1333 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1334 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1335 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1336 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1337 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1338 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1339 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1340 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1341 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1342 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1343 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1344 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1345 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1346 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1347 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1348 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1349 # direct configuration of Virtual IPs for each network
1350 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1351 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1352 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1353 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1354 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1355 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1357 ControllerBootstrapNodeConfig:
1358 type: OS::TripleO::BootstrapNode::SoftwareConfig
1360 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1361 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1363 ControllerBootstrapNodeDeployment:
1364 type: OS::Heat::StructuredDeployments
1366 name: ControllerBootstrapNodeDeployment
1367 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1368 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1370 ControllerSwiftDeployment:
1371 type: OS::Heat::StructuredDeployments
1373 name: ControllerSwiftDeployment
1374 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1375 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1377 ObjectStorageSwiftDeployment:
1378 type: OS::Heat::StructuredDeployments
1380 name: ObjectStorageSwiftDeployment
1381 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1382 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1384 SwiftDevicesAndProxyConfig:
1385 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1387 controller_swift_devices: {get_attr: [Controller, swift_device]}
1388 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1389 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1391 ComputeCephDeployment:
1392 type: OS::Heat::StructuredDeployments
1394 name: ComputeCephDeployment
1395 config: {get_attr: [CephClusterConfig, config_id]}
1396 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1398 ControllerCephDeployment:
1399 type: OS::Heat::StructuredDeployments
1401 name: ControllerCephDeployment
1402 config: {get_attr: [CephClusterConfig, config_id]}
1403 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1405 CephStorageCephDeployment:
1406 type: OS::Heat::StructuredDeployments
1408 name: CephStorageCephDeployment
1409 config: {get_attr: [CephClusterConfig, config_id]}
1410 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1413 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1415 ceph_storage_count: {get_param: CephStorageCount}
1416 ceph_fsid: {get_param: CephClusterFSID}
1417 ceph_mon_key: {get_param: CephMonKey}
1418 ceph_admin_key: {get_param: CephAdminKey}
1419 ceph_client_key: {get_param: CephClientKey}
1420 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1421 ceph_mon_names: {get_attr: [Controller, hostname]}
1422 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1424 ControllerAllNodesDeployment:
1425 type: OS::Heat::StructuredDeployments
1427 name: ControllerAllNodesDeployment
1428 config: {get_attr: [allNodesConfig, config_id]}
1429 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1431 ComputeAllNodesDeployment:
1432 type: OS::Heat::StructuredDeployments
1434 name: ComputeAllNodesDeployment
1435 config: {get_attr: [allNodesConfig, config_id]}
1436 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1438 BlockStorageAllNodesDeployment:
1439 type: OS::Heat::StructuredDeployments
1441 name: BlockStorageAllNodesDeployment
1442 config: {get_attr: [allNodesConfig, config_id]}
1443 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1445 ObjectStorageAllNodesDeployment:
1446 type: OS::Heat::StructuredDeployments
1448 name: ObjectStorageAllNodesDeployment
1449 config: {get_attr: [allNodesConfig, config_id]}
1450 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1452 CephStorageAllNodesDeployment:
1453 type: OS::Heat::StructuredDeployments
1455 name: CephStorageAllNodesDeployment
1456 config: {get_attr: [allNodesConfig, config_id]}
1457 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1459 # All Nodes Validations
1460 AllNodesValidationConfig:
1461 type: OS::TripleO::AllNodes::Validation
1466 - - {get_attr: [Controller, resource.0.external_ip_address]}
1467 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1468 - {get_attr: [Controller, resource.0.storage_ip_address]}
1469 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1470 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1472 ControllerAllNodesValidationDeployment:
1473 type: OS::Heat::StructuredDeployments
1474 depends_on: ControllerAllNodesDeployment
1476 name: ControllerAllNodesValidationDeployment
1477 config: {get_resource: AllNodesValidationConfig}
1478 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1480 ComputeAllNodesValidationDeployment:
1481 type: OS::Heat::StructuredDeployments
1482 depends_on: ComputeAllNodesDeployment
1484 name: ComputeAllNodesValidationDeployment
1485 config: {get_resource: AllNodesValidationConfig}
1486 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1488 BlockStorageAllNodesValidationDeployment:
1489 type: OS::Heat::StructuredDeployments
1490 depends_on: BlockStorageAllNodesDeployment
1492 name: BlockStorageAllNodesValidationDeployment
1493 config: {get_resource: AllNodesValidationConfig}
1494 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1496 ObjectStorageAllNodesValidationDeployment:
1497 type: OS::Heat::StructuredDeployments
1498 depends_on: ObjectStorageAllNodesDeployment
1500 name: ObjectStorageAllNodesValidationDeployment
1501 config: {get_resource: AllNodesValidationConfig}
1502 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1504 CephStorageAllNodesValidationDeployment:
1505 type: OS::Heat::StructuredDeployments
1506 depends_on: CephStorageAllNodesDeployment
1508 name: CephStorageAllNodesValidationDeployment
1509 config: {get_resource: AllNodesValidationConfig}
1510 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1513 type: OS::TripleO::Tasks::UpdateWorkflow
1515 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1516 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1517 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1518 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1519 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1521 deploy_identifier: {get_param: DeployIdentifier}
1522 update_identifier: {get_param: UpdateIdentifier}
1524 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1525 # the nested template may configure each role differently (or not at all)
1526 AllNodesExtraConfig:
1527 type: OS::TripleO::AllNodesExtraConfig
1530 - ComputeAllNodesValidationDeployment
1531 - BlockStorageAllNodesValidationDeployment
1532 - ObjectStorageAllNodesValidationDeployment
1533 - CephStorageAllNodesValidationDeployment
1534 - ControllerAllNodesValidationDeployment
1536 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1537 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1538 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1539 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1540 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1542 # Nested stack deployment runs after all other controller deployments
1543 ControllerNodesPostDeployment:
1544 type: OS::TripleO::ControllerPostDeployment
1545 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1547 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1548 NodeConfigIdentifiers:
1549 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1550 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1551 deployment_identifier: {get_param: DeployIdentifier}
1552 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1554 ComputeNodesPostDeployment:
1555 type: OS::TripleO::ComputePostDeployment
1556 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1558 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1559 NodeConfigIdentifiers:
1560 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1561 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1562 deployment_identifier: {get_param: DeployIdentifier}
1563 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1565 ObjectStorageNodesPostDeployment:
1566 type: OS::TripleO::ObjectStoragePostDeployment
1567 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1569 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1570 NodeConfigIdentifiers:
1571 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1572 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1573 deployment_identifier: {get_param: DeployIdentifier}
1575 BlockStorageNodesPostDeployment:
1576 type: OS::TripleO::BlockStoragePostDeployment
1577 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1579 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1580 NodeConfigIdentifiers:
1581 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1582 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1583 deployment_identifier: {get_param: DeployIdentifier}
1585 CephStorageNodesPostDeployment:
1586 type: OS::TripleO::CephStoragePostDeployment
1587 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1589 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1590 NodeConfigIdentifiers:
1591 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1592 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1593 deployment_identifier: {get_param: DeployIdentifier}
1594 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1598 description: URL for the Overcloud Keystone service
1599 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1601 description: Keystone Admin VIP endpoint
1602 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1604 description: Controller VIP for public API endpoints
1605 value: {get_attr: [VipMap, net_ip_map, external]}
1607 description: VIP for Aodh API internal endpoint
1608 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1609 CeilometerInternalVip:
1610 description: VIP for Ceilometer API internal endpoint
1611 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1613 description: VIP for Cinder API internal endpoint
1614 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1616 description: VIP for Glance API internal endpoint
1617 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1619 description: VIP for Gnocchi API internal endpoint
1620 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1622 description: VIP for Heat API internal endpoint
1623 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1624 KeystoneInternalVip:
1625 description: VIP for Keystone API internal endpoint
1626 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1628 description: VIP for Neutron API internal endpoint
1629 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1631 description: VIP for Nova API internal endpoint
1632 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1634 description: VIP for Sahara API internal endpoint
1635 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1637 description: VIP for Swift Proxy internal endpoint
1638 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1641 Mapping of the resources with the needed info for their endpoints.
1642 This includes the protocol used, the IP, port and also a full
1643 representation of the URI.
1644 value: {get_attr: [EndpointMap, endpoint_map]}
1647 The content that should be appended to your /etc/hosts if you want to get
1648 hostname-based access to the deployed nodes (useful for testing without
1650 value: {get_attr: [allNodesConfig, hosts_entries]}