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.
348 description: The password for the cinder service account, used by cinder-api.
353 description: The iSCSI helper to use with cinder.
360 controllerExtraConfig:
363 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
367 default: overcloud-full
369 - custom_constraint: glance.image
370 OvercloudControlFlavor:
371 description: Flavor for control nodes to request when deploying.
375 - custom_constraint: nova.flavor
376 ControlVirtualInterface:
378 description: Interface where virtual ip will be assigned.
382 description: Whether to enable fencing in Pacemaker or not.
386 description: Whether to use Galera instead of regular MariaDB.
388 ControllerEnableCephStorage:
390 description: Whether to deploy Ceph Storage (OSD) on the Controller
392 ControllerEnableSwiftStorage:
394 description: Whether to enable Swift Storage on the Controller
396 ControllerSchedulerHints:
398 description: Optional scheduler hints to pass to nova
403 Additional configuration to inject into the cluster. The format required
404 may be implementation specific, e.g puppet hieradata. Any role specific
405 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
410 Pacemaker fencing configuration. The JSON should have
411 the following structure:
415 "agent": "AGENT_NAME",
416 "host_mac": "HOST_MAC_ADDRESS",
417 "params": {"PARAM_NAME": "PARAM_VALUE"}
425 "agent": "fence_xvm",
426 "host_mac": "52:54:00:aa:bb:cc",
428 "multicast_address": "225.0.0.12",
429 "port": "baremetal_0",
431 "manage_key_file": true,
432 "key_file": "/etc/fence_xvm.key",
433 "key_file_password": "abcdef"
441 description: The short name of the Gnocchi backend to use. Should be one
442 of swift, rbd or file
445 - allowed_values: ['swift', 'file', 'rbd']
446 GnocchiIndexerBackend:
448 description: The short name of the Gnocchi indexer backend to use.
451 description: The password for the gnocchi service account.
454 InstanceNameTemplate:
455 default: 'instance-%08x'
456 description: Template string to be used to generate instance names
460 description: Whether to manage IPtables rules.
464 description: Whether IPtables rules should be purged before setting up the ones.
466 MysqlInnodbBufferPoolSize:
468 Specifies the size of the buffer pool in megabytes. Setting to
469 zero should be interpreted as "no value" and will defer to the
474 description: Configures MySQL max_connections config setting
477 NeutronPublicInterfaceDefaultRoute:
479 description: A custom default route for the NeutronPublicInterface.
481 NeutronPublicInterfaceIP:
483 description: A custom IP address to put onto the NeutronPublicInterface.
485 NeutronPublicInterfaceRawDevice:
487 description: If set, the public interface is a vlan with this device as the raw device.
489 PublicVirtualInterface:
492 Specifies the interface where the public-facing virtual ip will be assigned.
493 This should be int_public when a VLAN is being used.
496 description: A random string to be used as a salt when hashing to determine mappings in the ring.
501 description: Value of mount_check in Swift account/container/object -server.conf
506 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
509 description: Partition Power to use when building Swift rings
514 description: How many replicas to use in the swift rings.
516 # Compute-specific params
517 CeilometerComputeAgent:
518 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
522 - allowed_values: ['', Present]
526 HypervisorNeutronPhysicalBridge:
529 An OVS bridge to create on each hypervisor. This defaults to br-ex the
530 same as the control plane nodes, as we have a uniform configuration of
531 the openvswitch agent. Typically should not need to be changed.
533 HypervisorNeutronPublicInterface:
535 description: What interface to add to the HypervisorNeutronPhysicalBridge.
537 NeutronNetworkVLANRanges:
538 default: 'datacentre:1:1000'
540 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
541 Neutron documentation for permitted values. Defaults to permitting any
542 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
543 type: comma_delimited_list
546 default: libvirt.LibvirtDriver
547 NovaComputeExtraConfig:
550 NovaCompute specific configuration to inject into the cluster. Same
551 structure as ExtraConfig.
553 NovaComputeLibvirtType:
556 NovaComputeLibvirtVifDriver:
558 description: Libvirt VIF driver configuration for the network
560 NovaComputeSchedulerHints:
562 description: Optional scheduler hints to pass to nova
564 NovaEnableRbdBackend:
566 description: Whether to enable or not the Rbd backend for Nova
570 default: overcloud-full
572 - custom_constraint: glance.image
575 description: Name of integration bridge used by Open vSwitch
577 NovaSecurityGroupAPI:
579 description: The full class name of the security API class
581 OvercloudComputeFlavor:
582 description: Use this flavor
586 - custom_constraint: nova.flavor
589 NeutronTenantNetwork: tenant
590 CeilometerApiNetwork: internal_api
591 AodhApiNetwork: internal_api
592 GnocchiApiNetwork: internal_api
593 MongoDbNetwork: internal_api
594 CinderApiNetwork: internal_api
595 CinderIscsiNetwork: storage
596 GlanceApiNetwork: storage
597 GlanceRegistryNetwork: internal_api
598 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
599 KeystonePublicApiNetwork: internal_api
600 NeutronApiNetwork: internal_api
601 HeatApiNetwork: internal_api
602 NovaApiNetwork: internal_api
603 NovaMetadataNetwork: internal_api
604 NovaVncProxyNetwork: internal_api
605 SwiftMgmtNetwork: storage_mgmt
606 SwiftProxyNetwork: storage
607 SaharaApiNetwork: internal_api
608 HorizonNetwork: internal_api
609 MemcachedNetwork: internal_api
610 RabbitMqNetwork: internal_api
611 RedisNetwork: internal_api
612 MysqlNetwork: internal_api
613 CephClusterNetwork: storage_mgmt
614 CephPublicNetwork: storage
615 ControllerHostnameResolveNetwork: internal_api
616 ComputeHostnameResolveNetwork: internal_api
617 BlockStorageHostnameResolveNetwork: internal_api
618 ObjectStorageHostnameResolveNetwork: internal_api
619 CephStorageHostnameResolveNetwork: storage
620 description: Mapping of service_name -> network name. Typically set
621 via parameter_defaults in the resource registry.
626 - OS::TripleO::Services::CinderApi
627 - OS::TripleO::Services::CinderScheduler
628 - OS::TripleO::Services::CinderVolume
629 - OS::TripleO::Services::Keystone
630 - OS::TripleO::Services::GlanceApi
631 - OS::TripleO::Services::GlanceRegistry
632 - OS::TripleO::Services::HeatApi
633 - OS::TripleO::Services::HeatApiCfn
634 - OS::TripleO::Services::HeatApiCloudwatch
635 - OS::TripleO::Services::HeatEngine
636 - OS::TripleO::Services::NeutronDhcpAgent
637 - OS::TripleO::Services::NeutronL3Agent
638 - OS::TripleO::Services::NeutronMetadataAgent
639 - OS::TripleO::Services::RabbitMQ
640 - OS::TripleO::Services::Loadbalancer
641 - OS::TripleO::Services::Memcached
642 - OS::TripleO::Services::SwiftProxy
643 description: A list of service resources (configured in the Heat
644 resource_registry) which represent nested stacks
645 for each service that should get installed on the Controllers.
646 type: comma_delimited_list
650 description: A list of service resources (configured in the Heat
651 resource_registry) which represent nested stacks
652 for each service that should get installed on the Compute Nodes.
653 type: comma_delimited_list
655 # Block storage specific parameters
660 default: overcloud-full
662 OvercloudBlockStorageFlavor:
663 description: Flavor for block storage nodes to request when deploying.
667 - custom_constraint: nova.flavor
668 BlockStorageExtraConfig:
671 BlockStorage specific configuration to inject into the cluster. Same
672 structure as ExtraConfig.
674 BlockStorageSchedulerHints:
676 description: Optional scheduler hints to pass to nova
680 # Object storage specific parameters
684 OvercloudSwiftStorageFlavor:
685 description: Flavor for Swift storage nodes to request when deploying.
689 - custom_constraint: nova.flavor
691 default: overcloud-full
693 ObjectStorageExtraConfig:
696 ObjectStorage specific configuration to inject into the cluster. Same
697 structure as ExtraConfig.
699 ObjectStorageSchedulerHints:
701 description: Optional scheduler hints to pass to nova
703 ObjectStorageServices:
705 description: A list of service resources (configured in the Heat
706 resource_registry) which represent nested stacks
707 for each service that should get installed on the ObjectStorage nodes.
708 Note this role currently only supports steps 2, 3 and 4 configuration.
709 type: comma_delimited_list
712 # Ceph storage specific parameters
717 default: overcloud-full
719 OvercloudCephStorageFlavor:
721 description: Flavor for Ceph storage nodes to request when deploying.
724 - custom_constraint: nova.flavor
725 CephStorageExtraConfig:
728 CephStorage specific configuration to inject into the cluster. Same
729 structure as ExtraConfig.
731 CephStorageSchedulerHints:
733 description: Optional scheduler hints to pass to nova
737 description: A list of service resources (configured in the Heat
738 resource_registry) which represent nested stacks
739 for each service that should get installed on the CephStorage nodes.
740 type: comma_delimited_list
742 # Hostname format for each role
743 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
744 # and %stackname% is replaced with OS::stack_name in the template below.
745 # If you want to use the heat generated names, pass '' (empty string).
746 ControllerHostnameFormat:
748 description: Format for Controller node hostnames
749 default: '%stackname%-controller-%index%'
750 ComputeHostnameFormat:
752 description: Format for Compute node hostnames
753 default: '%stackname%-novacompute-%index%'
754 BlockStorageHostnameFormat:
756 description: Format for BlockStorage node hostnames
757 default: '%stackname%-blockstorage-%index%'
758 ObjectStorageHostnameFormat:
760 description: Format for SwiftStorage node hostnames
761 default: '%stackname%-objectstorage-%index%'
762 CephStorageHostnameFormat:
764 description: Format for CephStorage node hostnames
765 default: '%stackname%-cephstorage-%index%'
767 # Identifiers to trigger tasks on nodes
772 Setting to a previously unused value during stack-update will trigger
773 package update on all nodes
778 Setting this to a unique value will re-run any deployment tasks which
779 perform configuration on a Heat stack-update.
781 # If you want to remove a specific node from a resource group, you can pass
782 # the node name or id as a <Group>RemovalPolicies parameter, for example:
783 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
784 ControllerRemovalPolicies:
788 List of resources to be removed from ControllerResourceGroup when
789 doing an update which requires removal of specific resources.
790 ComputeRemovalPolicies:
794 List of resources to be removed from ComputeResourceGroup when
795 doing an update which requires removal of specific resources.
796 BlockStorageRemovalPolicies:
800 List of resources to be removed from BlockStorageResourceGroup when
801 doing an update which requires removal of specific resources.
802 ObjectStorageRemovalPolicies:
806 List of resources to be removed from ObjectStorageResourceGroup when
807 doing an update which requires removal of specific resources.
808 CephStorageRemovalPolicies:
812 List of resources to be removed from CephStorageResourceGroup when
813 doing an update which requires removal of specific resources.
817 description: Do not use deprecated params, they will be removed.
819 - controllerExtraConfig
824 HeatAuthEncryptionKey:
825 type: OS::Heat::RandomString
828 type: OS::Heat::RandomString
833 type: OS::Heat::RandomString
838 type: OS::TripleO::EndpointMap
840 CloudName: {get_param: CloudName}
841 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
842 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
843 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
844 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
845 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
846 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
847 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
848 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
849 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
850 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
851 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
852 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
853 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
854 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
855 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
857 ControllerServiceChain:
858 type: OS::TripleO::Services
861 Services: {get_param: ControllerServices}
862 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
865 type: OS::Heat::ResourceGroup
868 count: {get_param: ControllerCount}
869 removal_policies: {get_param: ControllerRemovalPolicies}
871 type: OS::TripleO::Controller
873 AdminPassword: {get_param: AdminPassword}
874 AodhPassword: {get_param: AodhPassword}
875 CeilometerBackend: {get_param: CeilometerBackend}
876 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
877 CeilometerPassword: {get_param: CeilometerPassword}
878 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
879 CloudDomain: {get_param: CloudDomain}
880 ControlVirtualInterface: {get_param: ControlVirtualInterface}
881 controllerExtraConfig: {get_param: controllerExtraConfig}
882 CorosyncIPv6: {get_param: CorosyncIPv6}
883 Debug: {get_param: Debug}
884 EnableFencing: {get_param: EnableFencing}
885 ManageFirewall: {get_param: ManageFirewall}
886 PurgeFirewallRules: {get_param: PurgeFirewallRules}
887 EnableGalera: {get_param: EnableGalera}
888 EnableCephStorage: {get_param: ControllerEnableCephStorage}
889 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
890 ExtraConfig: {get_param: ExtraConfig}
891 FencingConfig: {get_param: FencingConfig}
892 Flavor: {get_param: OvercloudControlFlavor}
893 GnocchiPassword: {get_param: GnocchiPassword}
894 GnocchiBackend: {get_param: GnocchiBackend}
895 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
896 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
897 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
898 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
899 HorizonSecret: {get_resource: HorizonSecret}
900 Image: {get_param: controllerImage}
901 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
902 InstanceNameTemplate: {get_param: InstanceNameTemplate}
903 KeyName: {get_param: KeyName}
904 MemcachedIPv6: {get_param: MemcachedIPv6}
905 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
906 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
907 MysqlMaxConnections: {get_param: MysqlMaxConnections}
908 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
909 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
910 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
911 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
912 NeutronTenantMtu: {get_param: NeutronTenantMtu}
913 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
914 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
915 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
916 NeutronPublicInterface: {get_param: NeutronPublicInterface}
917 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
918 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
919 NeutronPassword: {get_param: NeutronPassword}
920 NeutronDVR: {get_param: NeutronDVR}
921 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
922 NeutronAgentMode: {get_param: NeutronAgentMode}
923 NeutronCorePlugin: {get_param: NeutronCorePlugin}
924 NeutronServicePlugins: {get_param: NeutronServicePlugins}
925 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
926 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
927 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
928 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
929 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
930 NeutronL3HA: {get_param: NeutronL3HA}
931 NeutronNetworkType: {get_param: NeutronNetworkType}
932 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
933 NovaIPv6: {get_param: NovaIPv6}
934 NovaPassword: {get_param: NovaPassword}
935 NtpServer: {get_param: NtpServer}
936 MongoDbNoJournal: {get_param: MongoDbNoJournal}
937 MongoDbIPv6: {get_param: MongoDbIPv6}
938 PcsdPassword: {get_resource: PcsdPassword}
939 PublicVirtualInterface: {get_param: PublicVirtualInterface}
940 RabbitPassword: {get_param: RabbitPassword}
941 RabbitUserName: {get_param: RabbitUserName}
942 RabbitCookie: {get_attr: [RabbitCookie, value]}
943 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
944 RabbitClientPort: {get_param: RabbitClientPort}
945 RedisPassword: {get_param: RedisPassword}
946 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
947 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
948 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
949 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
950 SwiftHashSuffix: {get_param: SwiftHashSuffix}
951 SwiftMountCheck: {get_param: SwiftMountCheck}
952 SwiftMinPartHours: {get_param: SwiftMinPartHours}
953 SwiftPartPower: {get_param: SwiftPartPower}
954 SwiftReplicas: { get_param: SwiftReplicas}
955 TimeZone: {get_param: TimeZone}
956 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
957 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
958 ServiceNetMap: {get_param: ServiceNetMap}
959 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
960 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
961 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
962 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
963 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
964 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
965 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
966 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
967 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
968 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
969 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
970 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
971 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
972 UpdateIdentifier: {get_param: UpdateIdentifier}
975 template: {get_param: ControllerHostnameFormat}
977 '%stackname%': {get_param: 'OS::stack_name'}
979 ServerMetadata: {get_param: ServerMetadata}
980 SchedulerHints: {get_param: ControllerSchedulerHints}
981 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
984 type: OS::TripleO::Services
986 Services: {get_param: ComputeServices}
987 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
990 type: OS::Heat::ResourceGroup
993 count: {get_param: ComputeCount}
994 removal_policies: {get_param: ComputeRemovalPolicies}
996 type: OS::TripleO::Compute
998 AdminPassword: {get_param: AdminPassword}
999 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1000 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1001 CeilometerPassword: {get_param: CeilometerPassword}
1002 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1003 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1004 Debug: {get_param: Debug}
1005 ExtraConfig: {get_param: ExtraConfig}
1006 Flavor: {get_param: OvercloudComputeFlavor}
1007 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1008 Image: {get_param: NovaImage}
1009 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1010 KeyName: {get_param: KeyName}
1011 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1012 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1013 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1014 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1015 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1016 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1017 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1018 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1019 NeutronNetworkType: {get_param: NeutronNetworkType}
1020 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1021 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1022 NeutronPassword: {get_param: NeutronPassword}
1023 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1024 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1025 NeutronDVR: {get_param: NeutronDVR}
1026 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1027 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1028 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1029 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1030 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1031 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1032 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1033 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1034 # L3 HA and Failover is not relevant for Computes, should be removed
1035 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1036 NeutronL3HA: {get_param: NeutronL3HA}
1037 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1038 NovaComputeDriver: {get_param: NovaComputeDriver}
1039 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1040 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1041 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1042 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1043 NovaIPv6: {get_param: NovaIPv6}
1044 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1045 NovaPassword: {get_param: NovaPassword}
1046 NovaOVSBridge: {get_param: NovaOVSBridge}
1047 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1048 NtpServer: {get_param: NtpServer}
1049 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1050 RabbitPassword: {get_param: RabbitPassword}
1051 RabbitUserName: {get_param: RabbitUserName}
1052 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1053 RabbitClientPort: {get_param: RabbitClientPort}
1054 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1055 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1056 ServiceNetMap: {get_param: ServiceNetMap}
1057 TimeZone: {get_param: TimeZone}
1058 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1059 UpdateIdentifier: {get_param: UpdateIdentifier}
1062 template: {get_param: ComputeHostnameFormat}
1064 '%stackname%': {get_param: 'OS::stack_name'}
1065 CloudDomain: {get_param: CloudDomain}
1066 ServerMetadata: {get_param: ServerMetadata}
1067 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1068 NodeIndex: '%index%'
1069 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
1073 type: OS::Heat::ResourceGroup
1074 depends_on: Networks
1076 count: {get_param: BlockStorageCount}
1077 removal_policies: {get_param: BlockStorageRemovalPolicies}
1079 type: OS::TripleO::BlockStorage
1081 Debug: {get_param: Debug}
1082 Image: {get_param: BlockStorageImage}
1083 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1084 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1085 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1086 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1087 CinderPassword: {get_param: CinderPassword}
1088 KeyName: {get_param: KeyName}
1089 Flavor: {get_param: OvercloudBlockStorageFlavor}
1090 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1091 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1092 RabbitPassword: {get_param: RabbitPassword}
1093 RabbitUserName: {get_param: RabbitUserName}
1094 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1095 RabbitClientPort: {get_param: RabbitClientPort}
1096 TimeZone: {get_param: TimeZone}
1097 NtpServer: {get_param: NtpServer}
1098 UpdateIdentifier: {get_param: UpdateIdentifier}
1101 template: {get_param: BlockStorageHostnameFormat}
1103 '%stackname%': {get_param: 'OS::stack_name'}
1104 ServiceNetMap: {get_param: ServiceNetMap}
1105 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1106 ExtraConfig: {get_param: ExtraConfig}
1107 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1108 CloudDomain: {get_param: CloudDomain}
1109 ServerMetadata: {get_param: ServerMetadata}
1110 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1111 NodeIndex: '%index%'
1113 ObjectStorageServiceChain:
1114 type: OS::TripleO::Services
1116 Services: {get_param: ObjectStorageServices}
1117 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1120 type: OS::Heat::ResourceGroup
1121 depends_on: Networks
1123 count: {get_param: ObjectStorageCount}
1124 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1126 type: OS::TripleO::ObjectStorage
1128 KeyName: {get_param: KeyName}
1129 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1130 HashSuffix: {get_param: SwiftHashSuffix}
1131 MountCheck: {get_param: SwiftMountCheck}
1132 MinPartHours: {get_param: SwiftMinPartHours}
1133 PartPower: {get_param: SwiftPartPower}
1134 Image: {get_param: SwiftStorageImage}
1135 Replicas: { get_param: SwiftReplicas}
1136 TimeZone: {get_param: TimeZone}
1137 NtpServer: {get_param: NtpServer}
1138 UpdateIdentifier: {get_param: UpdateIdentifier}
1139 ServiceNetMap: {get_param: ServiceNetMap}
1142 template: {get_param: ObjectStorageHostnameFormat}
1144 '%stackname%': {get_param: 'OS::stack_name'}
1145 ExtraConfig: {get_param: ExtraConfig}
1146 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1147 CloudDomain: {get_param: CloudDomain}
1148 ServerMetadata: {get_param: ServerMetadata}
1149 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1150 NodeIndex: '%index%'
1151 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1153 CephStorageServiceChain:
1154 type: OS::TripleO::Services
1156 Services: {get_param: CephStorageServices}
1157 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1160 type: OS::Heat::ResourceGroup
1161 depends_on: Networks
1163 count: {get_param: CephStorageCount}
1164 removal_policies: {get_param: CephStorageRemovalPolicies}
1166 type: OS::TripleO::CephStorage
1168 Image: {get_param: CephStorageImage}
1169 KeyName: {get_param: KeyName}
1170 Flavor: {get_param: OvercloudCephStorageFlavor}
1171 NtpServer: {get_param: NtpServer}
1172 ServiceNetMap: {get_param: ServiceNetMap}
1173 TimeZone: {get_param: TimeZone}
1174 UpdateIdentifier: {get_param: UpdateIdentifier}
1177 template: {get_param: CephStorageHostnameFormat}
1179 '%stackname%': {get_param: 'OS::stack_name'}
1180 ExtraConfig: {get_param: ExtraConfig}
1181 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1182 CloudDomain: {get_param: CloudDomain}
1183 ServerMetadata: {get_param: ServerMetadata}
1184 SchedulerHints: {get_param: CephStorageSchedulerHints}
1185 NodeIndex: '%index%'
1186 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1188 ControllerIpListMap:
1189 type: OS::TripleO::Network::Ports::NetIpListMap
1191 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1192 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1193 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1194 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1195 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1196 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1197 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1200 type: OS::TripleO::AllNodes::SoftwareConfig
1202 compute_hosts: {get_attr: [Compute, hosts_entry]}
1203 controller_hosts: {get_attr: [Controller, hosts_entry]}
1204 controller_ips: {get_attr: [Controller, ip_address]}
1205 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1206 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1207 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1208 controller_names: {get_attr: [Controller, hostname]}
1209 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1210 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1211 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1212 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1213 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1214 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1215 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1216 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1217 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1218 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1219 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1220 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1221 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1222 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1223 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1224 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1225 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1226 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1227 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1228 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1229 DeployIdentifier: {get_param: DeployIdentifier}
1230 UpdateIdentifier: {get_param: UpdateIdentifier}
1233 type: OS::Heat::RandomString
1237 MysqlClusterUniquePart:
1238 type: OS::Heat::RandomString
1243 type: OS::Heat::RandomString
1246 salt: {get_param: RabbitCookieSalt}
1248 # creates the network architecture
1250 type: OS::TripleO::Network
1253 type: OS::Neutron::Port
1254 depends_on: Networks
1256 name: control_virtual_ip
1257 network: {get_param: NeutronControlPlaneID}
1258 fixed_ips: {get_param: ControlFixedIPs}
1259 replacement_policy: AUTO
1262 depends_on: Networks
1263 type: OS::TripleO::Network::Ports::RedisVipPort
1265 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1266 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1267 PortName: redis_virtual_ip
1268 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1271 # The public VIP is on the External net, falls back to ctlplane
1273 depends_on: Networks
1274 type: OS::TripleO::Network::Ports::ExternalVipPort
1276 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1277 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1278 PortName: public_virtual_ip
1279 FixedIPs: {get_param: PublicVirtualFixedIPs}
1281 InternalApiVirtualIP:
1282 depends_on: Networks
1283 type: OS::TripleO::Network::Ports::InternalApiVipPort
1285 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1286 PortName: internal_api_virtual_ip
1287 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1290 depends_on: Networks
1291 type: OS::TripleO::Network::Ports::StorageVipPort
1293 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1294 PortName: storage_virtual_ip
1295 FixedIPs: {get_param: StorageVirtualFixedIPs}
1297 StorageMgmtVirtualIP:
1298 depends_on: Networks
1299 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1301 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1302 PortName: storage_management_virtual_ip
1303 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1306 type: OS::TripleO::Network::Ports::NetVipMap
1308 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1309 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1310 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1311 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1312 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1313 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1314 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1315 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1316 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1317 # No tenant or management VIP required
1320 type: OS::TripleO::VipConfig
1323 type: OS::Heat::StructuredDeployments
1326 config: {get_resource: VipConfig}
1327 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1329 # service VIP mappings
1330 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1331 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1332 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1333 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1334 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1335 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1336 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1337 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1338 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1339 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1340 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1341 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1342 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1343 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1344 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1345 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1346 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1347 # direct configuration of Virtual IPs for each network
1348 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1349 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1350 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1351 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1352 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1353 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1355 ControllerBootstrapNodeConfig:
1356 type: OS::TripleO::BootstrapNode::SoftwareConfig
1358 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1359 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1361 ControllerBootstrapNodeDeployment:
1362 type: OS::Heat::StructuredDeployments
1364 name: ControllerBootstrapNodeDeployment
1365 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1366 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1368 ControllerSwiftDeployment:
1369 type: OS::Heat::StructuredDeployments
1371 name: ControllerSwiftDeployment
1372 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1373 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1375 ObjectStorageSwiftDeployment:
1376 type: OS::Heat::StructuredDeployments
1378 name: ObjectStorageSwiftDeployment
1379 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1380 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1382 SwiftDevicesAndProxyConfig:
1383 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1385 controller_swift_devices: {get_attr: [Controller, swift_device]}
1386 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1387 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1389 ComputeCephDeployment:
1390 type: OS::Heat::StructuredDeployments
1392 name: ComputeCephDeployment
1393 config: {get_attr: [CephClusterConfig, config_id]}
1394 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1396 ControllerCephDeployment:
1397 type: OS::Heat::StructuredDeployments
1399 name: ControllerCephDeployment
1400 config: {get_attr: [CephClusterConfig, config_id]}
1401 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1403 CephStorageCephDeployment:
1404 type: OS::Heat::StructuredDeployments
1406 name: CephStorageCephDeployment
1407 config: {get_attr: [CephClusterConfig, config_id]}
1408 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1411 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1413 ceph_storage_count: {get_param: CephStorageCount}
1414 ceph_fsid: {get_param: CephClusterFSID}
1415 ceph_mon_key: {get_param: CephMonKey}
1416 ceph_admin_key: {get_param: CephAdminKey}
1417 ceph_client_key: {get_param: CephClientKey}
1418 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1419 ceph_mon_names: {get_attr: [Controller, hostname]}
1420 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1422 ControllerAllNodesDeployment:
1423 type: OS::Heat::StructuredDeployments
1425 name: ControllerAllNodesDeployment
1426 config: {get_attr: [allNodesConfig, config_id]}
1427 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1429 ComputeAllNodesDeployment:
1430 type: OS::Heat::StructuredDeployments
1432 name: ComputeAllNodesDeployment
1433 config: {get_attr: [allNodesConfig, config_id]}
1434 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1436 BlockStorageAllNodesDeployment:
1437 type: OS::Heat::StructuredDeployments
1439 name: BlockStorageAllNodesDeployment
1440 config: {get_attr: [allNodesConfig, config_id]}
1441 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1443 ObjectStorageAllNodesDeployment:
1444 type: OS::Heat::StructuredDeployments
1446 name: ObjectStorageAllNodesDeployment
1447 config: {get_attr: [allNodesConfig, config_id]}
1448 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1450 CephStorageAllNodesDeployment:
1451 type: OS::Heat::StructuredDeployments
1453 name: CephStorageAllNodesDeployment
1454 config: {get_attr: [allNodesConfig, config_id]}
1455 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1457 # All Nodes Validations
1458 AllNodesValidationConfig:
1459 type: OS::TripleO::AllNodes::Validation
1464 - - {get_attr: [Controller, resource.0.external_ip_address]}
1465 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1466 - {get_attr: [Controller, resource.0.storage_ip_address]}
1467 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1468 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1470 ControllerAllNodesValidationDeployment:
1471 type: OS::Heat::StructuredDeployments
1472 depends_on: ControllerAllNodesDeployment
1474 name: ControllerAllNodesValidationDeployment
1475 config: {get_resource: AllNodesValidationConfig}
1476 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1478 ComputeAllNodesValidationDeployment:
1479 type: OS::Heat::StructuredDeployments
1480 depends_on: ComputeAllNodesDeployment
1482 name: ComputeAllNodesValidationDeployment
1483 config: {get_resource: AllNodesValidationConfig}
1484 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1486 BlockStorageAllNodesValidationDeployment:
1487 type: OS::Heat::StructuredDeployments
1488 depends_on: BlockStorageAllNodesDeployment
1490 name: BlockStorageAllNodesValidationDeployment
1491 config: {get_resource: AllNodesValidationConfig}
1492 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1494 ObjectStorageAllNodesValidationDeployment:
1495 type: OS::Heat::StructuredDeployments
1496 depends_on: ObjectStorageAllNodesDeployment
1498 name: ObjectStorageAllNodesValidationDeployment
1499 config: {get_resource: AllNodesValidationConfig}
1500 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1502 CephStorageAllNodesValidationDeployment:
1503 type: OS::Heat::StructuredDeployments
1504 depends_on: CephStorageAllNodesDeployment
1506 name: CephStorageAllNodesValidationDeployment
1507 config: {get_resource: AllNodesValidationConfig}
1508 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1511 type: OS::TripleO::Tasks::UpdateWorkflow
1513 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1514 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1515 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1516 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1517 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1519 deploy_identifier: {get_param: DeployIdentifier}
1520 update_identifier: {get_param: UpdateIdentifier}
1522 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1523 # the nested template may configure each role differently (or not at all)
1524 AllNodesExtraConfig:
1525 type: OS::TripleO::AllNodesExtraConfig
1528 - ComputeAllNodesValidationDeployment
1529 - BlockStorageAllNodesValidationDeployment
1530 - ObjectStorageAllNodesValidationDeployment
1531 - CephStorageAllNodesValidationDeployment
1532 - ControllerAllNodesValidationDeployment
1534 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1535 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1536 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1537 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1538 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1540 # Nested stack deployment runs after all other controller deployments
1541 ControllerNodesPostDeployment:
1542 type: OS::TripleO::ControllerPostDeployment
1543 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1545 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1546 NodeConfigIdentifiers:
1547 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1548 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1549 deployment_identifier: {get_param: DeployIdentifier}
1550 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1552 ComputeNodesPostDeployment:
1553 type: OS::TripleO::ComputePostDeployment
1554 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1556 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1557 NodeConfigIdentifiers:
1558 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1559 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1560 deployment_identifier: {get_param: DeployIdentifier}
1561 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1563 ObjectStorageNodesPostDeployment:
1564 type: OS::TripleO::ObjectStoragePostDeployment
1565 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1567 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1568 NodeConfigIdentifiers:
1569 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1570 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1571 deployment_identifier: {get_param: DeployIdentifier}
1572 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1574 BlockStorageNodesPostDeployment:
1575 type: OS::TripleO::BlockStoragePostDeployment
1576 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1578 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1579 NodeConfigIdentifiers:
1580 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1581 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1582 deployment_identifier: {get_param: DeployIdentifier}
1584 CephStorageNodesPostDeployment:
1585 type: OS::TripleO::CephStoragePostDeployment
1586 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1588 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1589 NodeConfigIdentifiers:
1590 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1591 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1592 deployment_identifier: {get_param: DeployIdentifier}
1593 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1597 description: URL for the Overcloud Keystone service
1598 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1600 description: Keystone Admin VIP endpoint
1601 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1603 description: Controller VIP for public API endpoints
1604 value: {get_attr: [VipMap, net_ip_map, external]}
1606 description: VIP for Aodh API internal endpoint
1607 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1608 CeilometerInternalVip:
1609 description: VIP for Ceilometer API internal endpoint
1610 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1612 description: VIP for Cinder API internal endpoint
1613 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1615 description: VIP for Glance API internal endpoint
1616 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1618 description: VIP for Gnocchi API internal endpoint
1619 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1621 description: VIP for Heat API internal endpoint
1622 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1623 KeystoneInternalVip:
1624 description: VIP for Keystone API internal endpoint
1625 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1627 description: VIP for Neutron API internal endpoint
1628 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1630 description: VIP for Nova API internal endpoint
1631 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1633 description: VIP for Sahara API internal endpoint
1634 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1636 description: VIP for Swift Proxy internal endpoint
1637 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1640 Mapping of the resources with the needed info for their endpoints.
1641 This includes the protocol used, the IP, port and also a full
1642 representation of the URI.
1643 value: {get_attr: [EndpointMap, endpoint_map]}
1646 The content that should be appended to your /etc/hosts if you want to get
1647 hostname-based access to the deployed nodes (useful for testing without
1649 value: {get_attr: [allNodesConfig, hosts_entries]}