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
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
861 Services: {get_param: ControllerServices}
862 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
863 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
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 SaharaPassword: {get_param: SaharaPassword}
956 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
957 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
958 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
959 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
960 SwiftHashSuffix: {get_param: SwiftHashSuffix}
961 SwiftMountCheck: {get_param: SwiftMountCheck}
962 SwiftMinPartHours: {get_param: SwiftMinPartHours}
963 SwiftPartPower: {get_param: SwiftPartPower}
964 SwiftPassword: {get_param: SwiftPassword}
965 SwiftReplicas: { get_param: SwiftReplicas}
966 TimeZone: {get_param: TimeZone}
967 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
968 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
969 ServiceNetMap: {get_param: ServiceNetMap}
970 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
971 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
972 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
973 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
974 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
975 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
976 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
977 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
978 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
979 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
980 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
981 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
982 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
983 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
984 UpdateIdentifier: {get_param: UpdateIdentifier}
987 template: {get_param: ControllerHostnameFormat}
989 '%stackname%': {get_param: 'OS::stack_name'}
991 ServerMetadata: {get_param: ServerMetadata}
992 SchedulerHints: {get_param: ControllerSchedulerHints}
993 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
996 type: OS::Heat::ResourceGroup
999 count: {get_param: ComputeCount}
1000 removal_policies: {get_param: ComputeRemovalPolicies}
1002 type: OS::TripleO::Compute
1004 AdminPassword: {get_param: AdminPassword}
1005 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1006 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1007 CeilometerPassword: {get_param: CeilometerPassword}
1008 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1009 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1010 Debug: {get_param: Debug}
1011 ExtraConfig: {get_param: ExtraConfig}
1012 Flavor: {get_param: OvercloudComputeFlavor}
1013 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1014 Image: {get_param: NovaImage}
1015 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1016 KeyName: {get_param: KeyName}
1017 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1018 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1019 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1020 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1021 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1022 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1023 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1024 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1025 NeutronNetworkType: {get_param: NeutronNetworkType}
1026 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1027 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1028 NeutronPassword: {get_param: NeutronPassword}
1029 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1030 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1031 NeutronDVR: {get_param: NeutronDVR}
1032 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1033 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1034 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1035 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1036 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1037 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1038 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1039 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1040 # L3 HA and Failover is not relevant for Computes, should be removed
1041 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1042 NeutronL3HA: {get_param: NeutronL3HA}
1043 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1044 NovaComputeDriver: {get_param: NovaComputeDriver}
1045 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1046 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1047 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1048 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1049 NovaIPv6: {get_param: NovaIPv6}
1050 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1051 NovaPassword: {get_param: NovaPassword}
1052 NovaOVSBridge: {get_param: NovaOVSBridge}
1053 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1054 NtpServer: {get_param: NtpServer}
1055 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1056 RabbitPassword: {get_param: RabbitPassword}
1057 RabbitUserName: {get_param: RabbitUserName}
1058 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1059 RabbitClientPort: {get_param: RabbitClientPort}
1060 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1061 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1062 ServiceNetMap: {get_param: ServiceNetMap}
1063 TimeZone: {get_param: TimeZone}
1064 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1065 UpdateIdentifier: {get_param: UpdateIdentifier}
1068 template: {get_param: ComputeHostnameFormat}
1070 '%stackname%': {get_param: 'OS::stack_name'}
1071 CloudDomain: {get_param: CloudDomain}
1072 ServerMetadata: {get_param: ServerMetadata}
1073 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1074 NodeIndex: '%index%'
1077 type: OS::Heat::ResourceGroup
1078 depends_on: Networks
1080 count: {get_param: BlockStorageCount}
1081 removal_policies: {get_param: BlockStorageRemovalPolicies}
1083 type: OS::TripleO::BlockStorage
1085 Debug: {get_param: Debug}
1086 Image: {get_param: BlockStorageImage}
1087 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1088 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1089 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1090 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1091 CinderPassword: {get_param: CinderPassword}
1092 KeyName: {get_param: KeyName}
1093 Flavor: {get_param: OvercloudBlockStorageFlavor}
1094 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1095 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1096 RabbitPassword: {get_param: RabbitPassword}
1097 RabbitUserName: {get_param: RabbitUserName}
1098 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1099 RabbitClientPort: {get_param: RabbitClientPort}
1100 TimeZone: {get_param: TimeZone}
1101 NtpServer: {get_param: NtpServer}
1102 UpdateIdentifier: {get_param: UpdateIdentifier}
1105 template: {get_param: BlockStorageHostnameFormat}
1107 '%stackname%': {get_param: 'OS::stack_name'}
1108 ServiceNetMap: {get_param: ServiceNetMap}
1109 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1110 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1111 ExtraConfig: {get_param: ExtraConfig}
1112 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1113 CloudDomain: {get_param: CloudDomain}
1114 ServerMetadata: {get_param: ServerMetadata}
1115 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1116 NodeIndex: '%index%'
1119 type: OS::Heat::ResourceGroup
1120 depends_on: Networks
1122 count: {get_param: ObjectStorageCount}
1123 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1125 type: OS::TripleO::ObjectStorage
1127 KeyName: {get_param: KeyName}
1128 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1129 HashSuffix: {get_param: SwiftHashSuffix}
1130 MountCheck: {get_param: SwiftMountCheck}
1131 MinPartHours: {get_param: SwiftMinPartHours}
1132 PartPower: {get_param: SwiftPartPower}
1133 Image: {get_param: SwiftStorageImage}
1134 Replicas: { get_param: SwiftReplicas}
1135 TimeZone: {get_param: TimeZone}
1136 NtpServer: {get_param: NtpServer}
1137 UpdateIdentifier: {get_param: UpdateIdentifier}
1138 ServiceNetMap: {get_param: ServiceNetMap}
1141 template: {get_param: ObjectStorageHostnameFormat}
1143 '%stackname%': {get_param: 'OS::stack_name'}
1144 ExtraConfig: {get_param: ExtraConfig}
1145 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1146 CloudDomain: {get_param: CloudDomain}
1147 ServerMetadata: {get_param: ServerMetadata}
1148 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1149 NodeIndex: '%index%'
1151 CephStorageServiceChain:
1152 type: OS::TripleO::Services
1154 Services: {get_param: CephStorageServices}
1155 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1156 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1159 type: OS::Heat::ResourceGroup
1160 depends_on: Networks
1162 count: {get_param: CephStorageCount}
1163 removal_policies: {get_param: CephStorageRemovalPolicies}
1165 type: OS::TripleO::CephStorage
1167 Image: {get_param: CephStorageImage}
1168 KeyName: {get_param: KeyName}
1169 Flavor: {get_param: OvercloudCephStorageFlavor}
1170 NtpServer: {get_param: NtpServer}
1171 ServiceNetMap: {get_param: ServiceNetMap}
1172 TimeZone: {get_param: TimeZone}
1173 UpdateIdentifier: {get_param: UpdateIdentifier}
1176 template: {get_param: CephStorageHostnameFormat}
1178 '%stackname%': {get_param: 'OS::stack_name'}
1179 ExtraConfig: {get_param: ExtraConfig}
1180 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1181 CloudDomain: {get_param: CloudDomain}
1182 ServerMetadata: {get_param: ServerMetadata}
1183 SchedulerHints: {get_param: CephStorageSchedulerHints}
1184 NodeIndex: '%index%'
1185 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1187 ControllerIpListMap:
1188 type: OS::TripleO::Network::Ports::NetIpListMap
1190 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1191 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1192 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1193 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1194 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1195 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1196 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1199 type: OS::TripleO::AllNodes::SoftwareConfig
1201 compute_hosts: {get_attr: [Compute, hosts_entry]}
1202 controller_hosts: {get_attr: [Controller, hosts_entry]}
1203 controller_ips: {get_attr: [Controller, ip_address]}
1204 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1205 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1206 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1207 controller_names: {get_attr: [Controller, hostname]}
1208 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1209 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1210 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1211 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1212 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1213 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1214 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1215 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1216 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1217 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1218 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1219 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1220 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1221 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1222 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1223 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1224 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1225 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1226 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1227 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1228 DeployIdentifier: {get_param: DeployIdentifier}
1229 UpdateIdentifier: {get_param: UpdateIdentifier}
1232 type: OS::Heat::RandomString
1236 MysqlClusterUniquePart:
1237 type: OS::Heat::RandomString
1242 type: OS::Heat::RandomString
1245 salt: {get_param: RabbitCookieSalt}
1247 # creates the network architecture
1249 type: OS::TripleO::Network
1252 type: OS::Neutron::Port
1253 depends_on: Networks
1255 name: control_virtual_ip
1256 network: {get_param: NeutronControlPlaneID}
1257 fixed_ips: {get_param: ControlFixedIPs}
1258 replacement_policy: AUTO
1261 depends_on: Networks
1262 type: OS::TripleO::Network::Ports::RedisVipPort
1264 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1265 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1266 PortName: redis_virtual_ip
1267 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1270 # The public VIP is on the External net, falls back to ctlplane
1272 depends_on: Networks
1273 type: OS::TripleO::Network::Ports::ExternalVipPort
1275 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1276 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1277 PortName: public_virtual_ip
1278 FixedIPs: {get_param: PublicVirtualFixedIPs}
1280 InternalApiVirtualIP:
1281 depends_on: Networks
1282 type: OS::TripleO::Network::Ports::InternalApiVipPort
1284 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1285 PortName: internal_api_virtual_ip
1286 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1289 depends_on: Networks
1290 type: OS::TripleO::Network::Ports::StorageVipPort
1292 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1293 PortName: storage_virtual_ip
1294 FixedIPs: {get_param: StorageVirtualFixedIPs}
1296 StorageMgmtVirtualIP:
1297 depends_on: Networks
1298 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1300 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1301 PortName: storage_management_virtual_ip
1302 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1305 type: OS::TripleO::Network::Ports::NetVipMap
1307 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1308 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1309 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1310 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1311 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1312 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1313 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1314 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1315 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1316 # No tenant or management VIP required
1319 type: OS::TripleO::VipConfig
1322 type: OS::Heat::StructuredDeployments
1325 config: {get_resource: VipConfig}
1326 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1328 # service VIP mappings
1329 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1330 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1331 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1332 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1333 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1334 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1335 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1336 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1337 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1338 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1339 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1340 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1341 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1342 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1343 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1344 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1345 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1346 # direct configuration of Virtual IPs for each network
1347 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1348 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1349 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1350 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1351 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1352 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1354 ControllerBootstrapNodeConfig:
1355 type: OS::TripleO::BootstrapNode::SoftwareConfig
1357 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1358 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1360 ControllerBootstrapNodeDeployment:
1361 type: OS::Heat::StructuredDeployments
1363 name: ControllerBootstrapNodeDeployment
1364 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1365 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1367 ControllerSwiftDeployment:
1368 type: OS::Heat::StructuredDeployments
1370 name: ControllerSwiftDeployment
1371 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1372 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1374 ObjectStorageSwiftDeployment:
1375 type: OS::Heat::StructuredDeployments
1377 name: ObjectStorageSwiftDeployment
1378 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1379 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1381 SwiftDevicesAndProxyConfig:
1382 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1384 controller_swift_devices: {get_attr: [Controller, swift_device]}
1385 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1386 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1388 ComputeCephDeployment:
1389 type: OS::Heat::StructuredDeployments
1391 name: ComputeCephDeployment
1392 config: {get_attr: [CephClusterConfig, config_id]}
1393 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1395 ControllerCephDeployment:
1396 type: OS::Heat::StructuredDeployments
1398 name: ControllerCephDeployment
1399 config: {get_attr: [CephClusterConfig, config_id]}
1400 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1402 CephStorageCephDeployment:
1403 type: OS::Heat::StructuredDeployments
1405 name: CephStorageCephDeployment
1406 config: {get_attr: [CephClusterConfig, config_id]}
1407 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1410 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1412 ceph_storage_count: {get_param: CephStorageCount}
1413 ceph_fsid: {get_param: CephClusterFSID}
1414 ceph_mon_key: {get_param: CephMonKey}
1415 ceph_admin_key: {get_param: CephAdminKey}
1416 ceph_client_key: {get_param: CephClientKey}
1417 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1418 ceph_mon_names: {get_attr: [Controller, hostname]}
1419 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1421 ControllerAllNodesDeployment:
1422 type: OS::Heat::StructuredDeployments
1424 name: ControllerAllNodesDeployment
1425 config: {get_attr: [allNodesConfig, config_id]}
1426 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1428 ComputeAllNodesDeployment:
1429 type: OS::Heat::StructuredDeployments
1431 name: ComputeAllNodesDeployment
1432 config: {get_attr: [allNodesConfig, config_id]}
1433 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1435 BlockStorageAllNodesDeployment:
1436 type: OS::Heat::StructuredDeployments
1438 name: BlockStorageAllNodesDeployment
1439 config: {get_attr: [allNodesConfig, config_id]}
1440 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1442 ObjectStorageAllNodesDeployment:
1443 type: OS::Heat::StructuredDeployments
1445 name: ObjectStorageAllNodesDeployment
1446 config: {get_attr: [allNodesConfig, config_id]}
1447 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1449 CephStorageAllNodesDeployment:
1450 type: OS::Heat::StructuredDeployments
1452 name: CephStorageAllNodesDeployment
1453 config: {get_attr: [allNodesConfig, config_id]}
1454 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1456 # All Nodes Validations
1457 AllNodesValidationConfig:
1458 type: OS::TripleO::AllNodes::Validation
1463 - - {get_attr: [Controller, resource.0.external_ip_address]}
1464 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1465 - {get_attr: [Controller, resource.0.storage_ip_address]}
1466 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1467 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1469 ControllerAllNodesValidationDeployment:
1470 type: OS::Heat::StructuredDeployments
1471 depends_on: ControllerAllNodesDeployment
1473 name: ControllerAllNodesValidationDeployment
1474 config: {get_resource: AllNodesValidationConfig}
1475 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1477 ComputeAllNodesValidationDeployment:
1478 type: OS::Heat::StructuredDeployments
1479 depends_on: ComputeAllNodesDeployment
1481 name: ComputeAllNodesValidationDeployment
1482 config: {get_resource: AllNodesValidationConfig}
1483 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1485 BlockStorageAllNodesValidationDeployment:
1486 type: OS::Heat::StructuredDeployments
1487 depends_on: BlockStorageAllNodesDeployment
1489 name: BlockStorageAllNodesValidationDeployment
1490 config: {get_resource: AllNodesValidationConfig}
1491 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1493 ObjectStorageAllNodesValidationDeployment:
1494 type: OS::Heat::StructuredDeployments
1495 depends_on: ObjectStorageAllNodesDeployment
1497 name: ObjectStorageAllNodesValidationDeployment
1498 config: {get_resource: AllNodesValidationConfig}
1499 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1501 CephStorageAllNodesValidationDeployment:
1502 type: OS::Heat::StructuredDeployments
1503 depends_on: CephStorageAllNodesDeployment
1505 name: CephStorageAllNodesValidationDeployment
1506 config: {get_resource: AllNodesValidationConfig}
1507 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1510 type: OS::TripleO::Tasks::UpdateWorkflow
1512 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1513 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1514 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1515 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1516 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1518 deploy_identifier: {get_param: DeployIdentifier}
1519 update_identifier: {get_param: UpdateIdentifier}
1521 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1522 # the nested template may configure each role differently (or not at all)
1523 AllNodesExtraConfig:
1524 type: OS::TripleO::AllNodesExtraConfig
1527 - ComputeAllNodesValidationDeployment
1528 - BlockStorageAllNodesValidationDeployment
1529 - ObjectStorageAllNodesValidationDeployment
1530 - CephStorageAllNodesValidationDeployment
1531 - ControllerAllNodesValidationDeployment
1533 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1534 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1535 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1536 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1537 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1539 # Nested stack deployment runs after all other controller deployments
1540 ControllerNodesPostDeployment:
1541 type: OS::TripleO::ControllerPostDeployment
1542 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1544 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1545 NodeConfigIdentifiers:
1546 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1547 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1548 deployment_identifier: {get_param: DeployIdentifier}
1549 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1551 ComputeNodesPostDeployment:
1552 type: OS::TripleO::ComputePostDeployment
1553 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1555 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1556 NodeConfigIdentifiers:
1557 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1558 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1559 deployment_identifier: {get_param: DeployIdentifier}
1561 ObjectStorageNodesPostDeployment:
1562 type: OS::TripleO::ObjectStoragePostDeployment
1563 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1565 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1566 NodeConfigIdentifiers:
1567 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1568 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1569 deployment_identifier: {get_param: DeployIdentifier}
1571 BlockStorageNodesPostDeployment:
1572 type: OS::TripleO::BlockStoragePostDeployment
1573 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1575 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1576 NodeConfigIdentifiers:
1577 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1578 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1579 deployment_identifier: {get_param: DeployIdentifier}
1581 CephStorageNodesPostDeployment:
1582 type: OS::TripleO::CephStoragePostDeployment
1583 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1585 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1586 NodeConfigIdentifiers:
1587 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1588 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1589 deployment_identifier: {get_param: DeployIdentifier}
1590 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1594 description: URL for the Overcloud Keystone service
1595 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1597 description: Keystone Admin VIP endpoint
1598 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1600 description: Controller VIP for public API endpoints
1601 value: {get_attr: [VipMap, net_ip_map, external]}
1603 description: VIP for Aodh API internal endpoint
1604 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1605 CeilometerInternalVip:
1606 description: VIP for Ceilometer API internal endpoint
1607 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1609 description: VIP for Cinder API internal endpoint
1610 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1612 description: VIP for Glance API internal endpoint
1613 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1615 description: VIP for Gnocchi API internal endpoint
1616 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1618 description: VIP for Heat API internal endpoint
1619 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1620 KeystoneInternalVip:
1621 description: VIP for Keystone API internal endpoint
1622 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1624 description: VIP for Neutron API internal endpoint
1625 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1627 description: VIP for Nova API internal endpoint
1628 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1630 description: VIP for Sahara API internal endpoint
1631 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1633 description: VIP for Swift Proxy internal endpoint
1634 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1637 Mapping of the resources with the needed info for their endpoints.
1638 This includes the protocol used, the IP, port and also a full
1639 representation of the URI.
1640 value: {get_attr: [EndpointMap, endpoint_map]}
1643 The content that should be appended to your /etc/hosts if you want to get
1644 hostname-based access to the deployed nodes (useful for testing without
1646 value: {get_attr: [allNodesConfig, hosts_entries]}