1 heat_template_version: 2016-04-08
4 Deploy an OpenStack environment, consisting of several node types (roles),
5 Controller, Compute, BlockStorage, SwiftStorage and CephStorage. The Storage
6 roles enable independent scaling of the storage components, but the minimal
7 deployment is one Controller and one Compute node.
10 # TODO(shadower): we should probably use the parameter groups to put
14 # Common parameters (not specific to a role)
16 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
20 description: The password for the aodh services.
25 description: The ceilometer backend type.
27 CeilometerMeteringSecret:
28 description: Secret shared by the ceilometer services.
32 description: The password for the ceilometer service account.
35 CeilometerMeterDispatcher:
37 description: Dispatcher to process meter data
40 - allowed_values: ['gnocchi', 'database']
41 # This has to be an UUID so for now we generate it outside the template
45 description: The Ceph cluster FSID. Must be a UUID.
48 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
53 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
56 CinderEnableNfsBackend:
58 description: Whether to enable or not the NFS backend for Cinder
62 description: The Ceph client key. Can be created with ceph-authtool --gen-print-key. Currently only used for external Ceph deployments to create the openstack user keyring.
68 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
69 CinderEnableIscsiBackend:
71 description: Whether to enable or not the Iscsi backend for Cinder
73 CinderEnableRbdBackend:
75 description: Whether to enable or not the Rbd backend for Cinder
79 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
83 description: Should be used for arbitrary ips.
87 description: Enable IPv6 in Corosync
91 description: Set to True to enable debugging on all services.
95 description: Syslog address where HAproxy will send its log
99 description: A list of IP/Hostname allowed to connect to horizon
100 type: comma_delimited_list
102 default: 'REBUILD_PRESERVE_EPHEMERAL'
103 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
105 InternalApiVirtualFixedIPs:
108 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
109 [{'ip_address':'1.2.3.4'}]
113 description: Name of an existing Nova key pair to enable SSH access to the instances
116 - custom_constraint: nova.keypair
119 description: Enable IPv6 features in Memcached.
121 NeutronBridgeMappings:
123 The OVS logical->physical bridge mappings to use. See the Neutron
124 documentation for details. Defaults to mapping br-ex - the external
125 bridge on hosts - to a physical name 'datacentre' which can be used
126 to create provider networks (and we use this for the default floating
127 network) - if changing this either use different post-install network
128 scripts or be sure to keep 'datacentre' as a mapping network name.
129 type: comma_delimited_list
130 default: "datacentre:br-ex"
131 NeutronControlPlaneID:
134 description: Neutron ID or name for ctlplane network.
135 NeutronEnableTunnelling:
141 Enable/disable the L2 population feature in the Neutron agents.
144 type: comma_delimited_list
145 default: 'datacentre'
147 If set, flat networks to configure in neutron plugins. Defaults to
148 'datacentre' to permit external network creation.
151 description: The tenant network type for Neutron.
152 type: comma_delimited_list
154 description: The password for the neutron service account, used by neutron agents.
157 NeutronPublicInterface:
159 description: What interface to bridge onto br-ex for network nodes.
161 NeutronPublicInterfaceTag:
164 VLAN tag for creating a public VLAN. The tag will be used to
165 create an access port on the exterior bridge for each control plane node,
166 and that port will be given the IP address returned by neutron from the
167 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
168 overcloud.yaml to include the deployment of VLAN ports to the control
171 NeutronComputeAgentMode:
173 description: Agent mode for the neutron-l3-agent on the compute hosts
177 description: Agent mode for the neutron-l3-agent on the controller hosts
181 description: Whether to configure Neutron Distributed Virtual Routers
183 NeutronMetadataProxySharedSecret:
184 description: Shared secret to prevent spoofing
189 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
190 be at least 50 bytes smaller than the MTU on the physical network. This
191 value will be used to set the MTU on the virtual Ethernet device.
192 This value will be used to construct the NeutronDnsmasqOptions, since that
193 will determine the MTU that is assigned to the VM host through DHCP.
199 The tunnel types for the Neutron tenant network.
200 type: comma_delimited_list
201 NeutronTunnelIdRanges:
203 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
204 of GRE tunnel IDs that are available for tenant network allocation
205 default: ["1:4094", ]
206 type: comma_delimited_list
209 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
210 of VXLAN VNI IDs that are available for tenant network allocation
211 default: ["1:4094", ]
212 type: comma_delimited_list
216 The core plugin for Neutron. The value should be the entrypoint to be loaded
217 from neutron.core_plugins namespace.
219 NeutronServicePlugins:
220 default: "router,qos"
222 Comma-separated list of service plugin entrypoints to be loaded from the
223 neutron.service_plugins namespace.
224 type: comma_delimited_list
226 default: "vxlan,vlan,flat,gre"
228 Comma-separated list of network type driver entrypoints to be loaded.
229 type: comma_delimited_list
230 NeutronMechanismDrivers:
231 default: 'openvswitch'
233 The mechanism drivers for the Neutron tenant network.
234 type: comma_delimited_list
235 NeutronPluginExtensions:
236 default: "qos,port_security"
238 Comma-separated list of extensions enabled for the Neutron plugin.
239 type: comma_delimited_list
240 NeutronAgentExtensions:
243 Comma-separated list of extensions enabled for the Neutron agents.
244 type: comma_delimited_list
245 NeutronAllowL3AgentFailover:
247 description: Allow automatic l3-agent failover
251 description: Whether to enable l3-agent HA
255 description: Enable IPv6 features in Nova
258 description: The password for the nova service account, used by nova-api.
263 description: Comma-separated list of ntp servers
264 type: comma_delimited_list
267 description: Should MongoDb journaling be disabled
271 description: Enable IPv6 if MongoDB VIP is IPv6
273 PublicVirtualFixedIPs:
276 Control the IP allocation for the PublicVirtualInterface port. E.g.
277 [{'ip_address':'1.2.3.4'}]
282 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
285 description: The username for RabbitMQ
288 description: The password for RabbitMQ
294 Rabbit client subscriber parameter to specify
295 an SSL connection to the RabbitMQ host.
299 description: Set rabbit subscriber port, change this if using SSL
302 description: The password for Redis
305 SnmpdReadonlyUserName:
306 default: ro_snmp_user
307 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
309 SnmpdReadonlyUserPassword:
310 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
313 StorageVirtualFixedIPs:
316 Control the IP allocation for the StorageVirtualInterface port. E.g.
317 [{'ip_address':'1.2.3.4'}]
319 StorageMgmtVirtualFixedIPs:
322 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
323 [{'ip_address':'1.2.3.4'}]
327 description: The timezone to be set on nodes.
330 default: 'localdomain'
333 The DNS domain used for the hosts. This should match the dhcp_domain
334 configured in the Undercloud neutron. Defaults to localdomain.
338 Extra properties or metadata passed to Nova for the created nodes in
339 the overcloud. It's accessible via the Nova metadata API.
342 # Controller-specific params
343 CinderLVMLoopDeviceSize:
345 description: The size of the loopback file used by the cinder LVM driver.
347 CinderNfsMountOptions:
350 Mount options for NFS mounts used by Cinder NFS backend. Effective
351 when CinderEnableNfsBackend is true.
356 NFS servers used by Cinder NFS backend. Effective when
357 CinderEnableNfsBackend is true.
358 type: comma_delimited_list
360 description: The password for the cinder service account, used by cinder-api.
365 description: The iSCSI helper to use with cinder.
372 controllerExtraConfig:
375 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
379 default: overcloud-full
381 - custom_constraint: glance.image
382 OvercloudControlFlavor:
383 description: Flavor for control nodes to request when deploying.
387 - custom_constraint: nova.flavor
388 ControlVirtualInterface:
390 description: Interface where virtual ip will be assigned.
394 description: Whether to enable fencing in Pacemaker or not.
398 description: Whether to use Galera instead of regular MariaDB.
400 ControllerEnableCephStorage:
402 description: Whether to deploy Ceph Storage (OSD) on the Controller
404 ControllerEnableSwiftStorage:
406 description: Whether to enable Swift Storage on the Controller
408 ControllerSchedulerHints:
410 description: Optional scheduler hints to pass to nova
415 Additional configuration to inject into the cluster. The format required
416 may be implementation specific, e.g puppet hieradata. Any role specific
417 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
422 Pacemaker fencing configuration. The JSON should have
423 the following structure:
427 "agent": "AGENT_NAME",
428 "host_mac": "HOST_MAC_ADDRESS",
429 "params": {"PARAM_NAME": "PARAM_VALUE"}
437 "agent": "fence_xvm",
438 "host_mac": "52:54:00:aa:bb:cc",
440 "multicast_address": "225.0.0.12",
441 "port": "baremetal_0",
443 "manage_key_file": true,
444 "key_file": "/etc/fence_xvm.key",
445 "key_file_password": "abcdef"
453 description: The short name of the Gnocchi backend to use. Should be one
454 of swift, rbd or file
457 - allowed_values: ['swift', 'file', 'rbd']
458 GnocchiIndexerBackend:
460 description: The short name of the Gnocchi indexer backend to use.
463 description: The password for the gnocchi service account.
466 InstanceNameTemplate:
467 default: 'instance-%08x'
468 description: Template string to be used to generate instance names
472 description: Whether to manage IPtables rules.
476 description: Whether IPtables rules should be purged before setting up the ones.
478 MysqlInnodbBufferPoolSize:
480 Specifies the size of the buffer pool in megabytes. Setting to
481 zero should be interpreted as "no value" and will defer to the
486 description: Configures MySQL max_connections config setting
489 NeutronPublicInterfaceDefaultRoute:
491 description: A custom default route for the NeutronPublicInterface.
493 NeutronPublicInterfaceIP:
495 description: A custom IP address to put onto the NeutronPublicInterface.
497 NeutronPublicInterfaceRawDevice:
499 description: If set, the public interface is a vlan with this device as the raw device.
501 PublicVirtualInterface:
504 Specifies the interface where the public-facing virtual ip will be assigned.
505 This should be int_public when a VLAN is being used.
508 description: A random string to be used as a salt when hashing to determine mappings in the ring.
513 description: Value of mount_check in Swift account/container/object -server.conf
518 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
521 description: Partition Power to use when building Swift rings
526 description: How many replicas to use in the swift rings.
528 # Compute-specific params
529 CeilometerComputeAgent:
530 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
534 - allowed_values: ['', Present]
538 HypervisorNeutronPhysicalBridge:
541 An OVS bridge to create on each hypervisor. This defaults to br-ex the
542 same as the control plane nodes, as we have a uniform configuration of
543 the openvswitch agent. Typically should not need to be changed.
545 HypervisorNeutronPublicInterface:
547 description: What interface to add to the HypervisorNeutronPhysicalBridge.
549 NeutronNetworkVLANRanges:
550 default: 'datacentre:1:1000'
552 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
553 Neutron documentation for permitted values. Defaults to permitting any
554 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
555 type: comma_delimited_list
558 default: libvirt.LibvirtDriver
559 NovaComputeExtraConfig:
562 NovaCompute specific configuration to inject into the cluster. Same
563 structure as ExtraConfig.
565 NovaComputeLibvirtType:
568 NovaComputeLibvirtVifDriver:
570 description: Libvirt VIF driver configuration for the network
572 NovaComputeSchedulerHints:
574 description: Optional scheduler hints to pass to nova
576 NovaEnableRbdBackend:
578 description: Whether to enable or not the Rbd backend for Nova
582 default: overcloud-full
584 - custom_constraint: glance.image
587 description: Name of integration bridge used by Open vSwitch
589 NovaSecurityGroupAPI:
591 description: The full class name of the security API class
593 OvercloudComputeFlavor:
594 description: Use this flavor
598 - custom_constraint: nova.flavor
601 NeutronTenantNetwork: tenant
602 CeilometerApiNetwork: internal_api
603 AodhApiNetwork: internal_api
604 GnocchiApiNetwork: internal_api
605 MongoDbNetwork: internal_api
606 CinderApiNetwork: internal_api
607 CinderIscsiNetwork: storage
608 GlanceApiNetwork: storage
609 GlanceRegistryNetwork: internal_api
610 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
611 KeystonePublicApiNetwork: internal_api
612 NeutronApiNetwork: internal_api
613 HeatApiNetwork: internal_api
614 NovaApiNetwork: internal_api
615 NovaMetadataNetwork: internal_api
616 NovaVncProxyNetwork: internal_api
617 SwiftMgmtNetwork: storage_mgmt
618 SwiftProxyNetwork: storage
619 SaharaApiNetwork: internal_api
620 HorizonNetwork: internal_api
621 MemcachedNetwork: internal_api
622 RabbitMqNetwork: internal_api
623 RedisNetwork: internal_api
624 MysqlNetwork: internal_api
625 CephClusterNetwork: storage_mgmt
626 CephPublicNetwork: storage
627 ControllerHostnameResolveNetwork: internal_api
628 ComputeHostnameResolveNetwork: internal_api
629 BlockStorageHostnameResolveNetwork: internal_api
630 ObjectStorageHostnameResolveNetwork: internal_api
631 CephStorageHostnameResolveNetwork: storage
632 description: Mapping of service_name -> network name. Typically set
633 via parameter_defaults in the resource registry.
638 - OS::TripleO::Services::Keystone
639 - OS::TripleO::Services::GlanceApi
640 - OS::TripleO::Services::GlanceRegistry
641 - OS::TripleO::Services::HeatApi
642 - OS::TripleO::Services::HeatApiCfn
643 - OS::TripleO::Services::HeatApiCloudwatch
644 - OS::TripleO::Services::HeatEngine
645 - OS::TripleO::Services::NeutronDhcpAgent
646 - OS::TripleO::Services::NeutronL3Agent
647 - OS::TripleO::Services::NeutronMetadataAgent
648 - OS::TripleO::Services::RabbitMQ
649 - OS::TripleO::Services::Loadbalancer
650 - OS::TripleO::Services::Memcached
651 - OS::TripleO::Services::SwiftProxy
652 description: A list of service resources (configured in the Heat
653 resource_registry) which represent nested stacks
654 for each service that should get installed on the Controllers.
655 type: comma_delimited_list
659 description: A list of service resources (configured in the Heat
660 resource_registry) which represent nested stacks
661 for each service that should get installed on the Compute Nodes.
662 type: comma_delimited_list
664 # Block storage specific parameters
669 default: overcloud-full
671 OvercloudBlockStorageFlavor:
672 description: Flavor for block storage nodes to request when deploying.
676 - custom_constraint: nova.flavor
677 BlockStorageExtraConfig:
680 BlockStorage specific configuration to inject into the cluster. Same
681 structure as ExtraConfig.
683 BlockStorageSchedulerHints:
685 description: Optional scheduler hints to pass to nova
689 # Object storage specific parameters
693 OvercloudSwiftStorageFlavor:
694 description: Flavor for Swift storage nodes to request when deploying.
698 - custom_constraint: nova.flavor
700 default: overcloud-full
702 ObjectStorageExtraConfig:
705 ObjectStorage specific configuration to inject into the cluster. Same
706 structure as ExtraConfig.
708 ObjectStorageSchedulerHints:
710 description: Optional scheduler hints to pass to nova
712 ObjectStorageServices:
714 description: A list of service resources (configured in the Heat
715 resource_registry) which represent nested stacks
716 for each service that should get installed on the ObjectStorage nodes.
717 Note this role currently only supports steps 2, 3 and 4 configuration.
718 type: comma_delimited_list
721 # Ceph storage specific parameters
726 default: overcloud-full
728 OvercloudCephStorageFlavor:
730 description: Flavor for Ceph storage nodes to request when deploying.
733 - custom_constraint: nova.flavor
734 CephStorageExtraConfig:
737 CephStorage specific configuration to inject into the cluster. Same
738 structure as ExtraConfig.
740 CephStorageSchedulerHints:
742 description: Optional scheduler hints to pass to nova
746 description: A list of service resources (configured in the Heat
747 resource_registry) which represent nested stacks
748 for each service that should get installed on the CephStorage nodes.
749 type: comma_delimited_list
751 # Hostname format for each role
752 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
753 # and %stackname% is replaced with OS::stack_name in the template below.
754 # If you want to use the heat generated names, pass '' (empty string).
755 ControllerHostnameFormat:
757 description: Format for Controller node hostnames
758 default: '%stackname%-controller-%index%'
759 ComputeHostnameFormat:
761 description: Format for Compute node hostnames
762 default: '%stackname%-novacompute-%index%'
763 BlockStorageHostnameFormat:
765 description: Format for BlockStorage node hostnames
766 default: '%stackname%-blockstorage-%index%'
767 ObjectStorageHostnameFormat:
769 description: Format for SwiftStorage node hostnames
770 default: '%stackname%-objectstorage-%index%'
771 CephStorageHostnameFormat:
773 description: Format for CephStorage node hostnames
774 default: '%stackname%-cephstorage-%index%'
776 # Identifiers to trigger tasks on nodes
781 Setting to a previously unused value during stack-update will trigger
782 package update on all nodes
787 Setting this to a unique value will re-run any deployment tasks which
788 perform configuration on a Heat stack-update.
790 # If you want to remove a specific node from a resource group, you can pass
791 # the node name or id as a <Group>RemovalPolicies parameter, for example:
792 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
793 ControllerRemovalPolicies:
797 List of resources to be removed from ControllerResourceGroup when
798 doing an update which requires removal of specific resources.
799 ComputeRemovalPolicies:
803 List of resources to be removed from ComputeResourceGroup when
804 doing an update which requires removal of specific resources.
805 BlockStorageRemovalPolicies:
809 List of resources to be removed from BlockStorageResourceGroup when
810 doing an update which requires removal of specific resources.
811 ObjectStorageRemovalPolicies:
815 List of resources to be removed from ObjectStorageResourceGroup when
816 doing an update which requires removal of specific resources.
817 CephStorageRemovalPolicies:
821 List of resources to be removed from CephStorageResourceGroup when
822 doing an update which requires removal of specific resources.
826 description: Do not use deprecated params, they will be removed.
828 - controllerExtraConfig
833 HeatAuthEncryptionKey:
834 type: OS::Heat::RandomString
837 type: OS::Heat::RandomString
842 type: OS::Heat::RandomString
847 type: OS::TripleO::EndpointMap
849 CloudName: {get_param: CloudName}
850 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
851 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
852 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
853 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
854 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
855 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
856 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
857 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
858 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
859 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
860 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
861 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
862 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
863 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
864 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
866 ControllerServiceChain:
867 type: OS::TripleO::Services
870 Services: {get_param: ControllerServices}
871 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
874 type: OS::Heat::ResourceGroup
877 count: {get_param: ControllerCount}
878 removal_policies: {get_param: ControllerRemovalPolicies}
880 type: OS::TripleO::Controller
882 AdminPassword: {get_param: AdminPassword}
883 AodhPassword: {get_param: AodhPassword}
884 CeilometerBackend: {get_param: CeilometerBackend}
885 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
886 CeilometerPassword: {get_param: CeilometerPassword}
887 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
888 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
889 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
890 CinderNfsServers: {get_param: CinderNfsServers}
891 CinderPassword: {get_param: CinderPassword}
892 CinderISCSIHelper: {get_param: CinderISCSIHelper}
893 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
894 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
895 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
896 CloudDomain: {get_param: CloudDomain}
897 ControlVirtualInterface: {get_param: ControlVirtualInterface}
898 controllerExtraConfig: {get_param: controllerExtraConfig}
899 CorosyncIPv6: {get_param: CorosyncIPv6}
900 Debug: {get_param: Debug}
901 EnableFencing: {get_param: EnableFencing}
902 ManageFirewall: {get_param: ManageFirewall}
903 PurgeFirewallRules: {get_param: PurgeFirewallRules}
904 EnableGalera: {get_param: EnableGalera}
905 EnableCephStorage: {get_param: ControllerEnableCephStorage}
906 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
907 ExtraConfig: {get_param: ExtraConfig}
908 FencingConfig: {get_param: FencingConfig}
909 Flavor: {get_param: OvercloudControlFlavor}
910 GnocchiPassword: {get_param: GnocchiPassword}
911 GnocchiBackend: {get_param: GnocchiBackend}
912 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
913 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
914 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
915 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
916 HorizonSecret: {get_resource: HorizonSecret}
917 Image: {get_param: controllerImage}
918 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
919 InstanceNameTemplate: {get_param: InstanceNameTemplate}
920 KeyName: {get_param: KeyName}
921 MemcachedIPv6: {get_param: MemcachedIPv6}
922 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
923 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
924 MysqlMaxConnections: {get_param: MysqlMaxConnections}
925 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
926 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
927 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
928 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
929 NeutronTenantMtu: {get_param: NeutronTenantMtu}
930 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
931 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
932 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
933 NeutronPublicInterface: {get_param: NeutronPublicInterface}
934 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
935 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
936 NeutronPassword: {get_param: NeutronPassword}
937 NeutronDVR: {get_param: NeutronDVR}
938 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
939 NeutronAgentMode: {get_param: NeutronAgentMode}
940 NeutronCorePlugin: {get_param: NeutronCorePlugin}
941 NeutronServicePlugins: {get_param: NeutronServicePlugins}
942 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
943 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
944 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
945 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
946 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
947 NeutronL3HA: {get_param: NeutronL3HA}
948 NeutronNetworkType: {get_param: NeutronNetworkType}
949 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
950 NovaIPv6: {get_param: NovaIPv6}
951 NovaPassword: {get_param: NovaPassword}
952 NtpServer: {get_param: NtpServer}
953 MongoDbNoJournal: {get_param: MongoDbNoJournal}
954 MongoDbIPv6: {get_param: MongoDbIPv6}
955 PcsdPassword: {get_resource: PcsdPassword}
956 PublicVirtualInterface: {get_param: PublicVirtualInterface}
957 RabbitPassword: {get_param: RabbitPassword}
958 RabbitUserName: {get_param: RabbitUserName}
959 RabbitCookie: {get_attr: [RabbitCookie, value]}
960 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
961 RabbitClientPort: {get_param: RabbitClientPort}
962 RedisPassword: {get_param: RedisPassword}
963 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
964 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
965 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
966 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
967 SwiftHashSuffix: {get_param: SwiftHashSuffix}
968 SwiftMountCheck: {get_param: SwiftMountCheck}
969 SwiftMinPartHours: {get_param: SwiftMinPartHours}
970 SwiftPartPower: {get_param: SwiftPartPower}
971 SwiftReplicas: { get_param: SwiftReplicas}
972 TimeZone: {get_param: TimeZone}
973 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
974 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
975 ServiceNetMap: {get_param: ServiceNetMap}
976 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
977 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
978 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
979 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
980 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
981 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
982 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
983 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
984 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
985 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
986 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
987 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
988 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
989 UpdateIdentifier: {get_param: UpdateIdentifier}
992 template: {get_param: ControllerHostnameFormat}
994 '%stackname%': {get_param: 'OS::stack_name'}
996 ServerMetadata: {get_param: ServerMetadata}
997 SchedulerHints: {get_param: ControllerSchedulerHints}
998 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
1000 ComputeServiceChain:
1001 type: OS::TripleO::Services
1003 Services: {get_param: ComputeServices}
1004 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1007 type: OS::Heat::ResourceGroup
1008 depends_on: Networks
1010 count: {get_param: ComputeCount}
1011 removal_policies: {get_param: ComputeRemovalPolicies}
1013 type: OS::TripleO::Compute
1015 AdminPassword: {get_param: AdminPassword}
1016 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1017 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1018 CeilometerPassword: {get_param: CeilometerPassword}
1019 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1020 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1021 Debug: {get_param: Debug}
1022 ExtraConfig: {get_param: ExtraConfig}
1023 Flavor: {get_param: OvercloudComputeFlavor}
1024 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1025 Image: {get_param: NovaImage}
1026 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1027 KeyName: {get_param: KeyName}
1028 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1029 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1030 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1031 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1032 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1033 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1034 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1035 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1036 NeutronNetworkType: {get_param: NeutronNetworkType}
1037 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1038 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1039 NeutronPassword: {get_param: NeutronPassword}
1040 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1041 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1042 NeutronDVR: {get_param: NeutronDVR}
1043 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1044 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1045 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1046 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1047 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1048 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1049 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1050 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1051 # L3 HA and Failover is not relevant for Computes, should be removed
1052 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1053 NeutronL3HA: {get_param: NeutronL3HA}
1054 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1055 NovaComputeDriver: {get_param: NovaComputeDriver}
1056 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1057 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1058 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1059 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1060 NovaIPv6: {get_param: NovaIPv6}
1061 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1062 NovaPassword: {get_param: NovaPassword}
1063 NovaOVSBridge: {get_param: NovaOVSBridge}
1064 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1065 NtpServer: {get_param: NtpServer}
1066 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1067 RabbitPassword: {get_param: RabbitPassword}
1068 RabbitUserName: {get_param: RabbitUserName}
1069 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1070 RabbitClientPort: {get_param: RabbitClientPort}
1071 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1072 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1073 ServiceNetMap: {get_param: ServiceNetMap}
1074 TimeZone: {get_param: TimeZone}
1075 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1076 UpdateIdentifier: {get_param: UpdateIdentifier}
1079 template: {get_param: ComputeHostnameFormat}
1081 '%stackname%': {get_param: 'OS::stack_name'}
1082 CloudDomain: {get_param: CloudDomain}
1083 ServerMetadata: {get_param: ServerMetadata}
1084 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1085 NodeIndex: '%index%'
1086 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
1090 type: OS::Heat::ResourceGroup
1091 depends_on: Networks
1093 count: {get_param: BlockStorageCount}
1094 removal_policies: {get_param: BlockStorageRemovalPolicies}
1096 type: OS::TripleO::BlockStorage
1098 Debug: {get_param: Debug}
1099 Image: {get_param: BlockStorageImage}
1100 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1101 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1102 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1103 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1104 CinderPassword: {get_param: CinderPassword}
1105 KeyName: {get_param: KeyName}
1106 Flavor: {get_param: OvercloudBlockStorageFlavor}
1107 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1108 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1109 RabbitPassword: {get_param: RabbitPassword}
1110 RabbitUserName: {get_param: RabbitUserName}
1111 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1112 RabbitClientPort: {get_param: RabbitClientPort}
1113 TimeZone: {get_param: TimeZone}
1114 NtpServer: {get_param: NtpServer}
1115 UpdateIdentifier: {get_param: UpdateIdentifier}
1118 template: {get_param: BlockStorageHostnameFormat}
1120 '%stackname%': {get_param: 'OS::stack_name'}
1121 ServiceNetMap: {get_param: ServiceNetMap}
1122 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1123 ExtraConfig: {get_param: ExtraConfig}
1124 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1125 CloudDomain: {get_param: CloudDomain}
1126 ServerMetadata: {get_param: ServerMetadata}
1127 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1128 NodeIndex: '%index%'
1130 ObjectStorageServiceChain:
1131 type: OS::TripleO::Services
1133 Services: {get_param: ObjectStorageServices}
1134 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1137 type: OS::Heat::ResourceGroup
1138 depends_on: Networks
1140 count: {get_param: ObjectStorageCount}
1141 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1143 type: OS::TripleO::ObjectStorage
1145 KeyName: {get_param: KeyName}
1146 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1147 HashSuffix: {get_param: SwiftHashSuffix}
1148 MountCheck: {get_param: SwiftMountCheck}
1149 MinPartHours: {get_param: SwiftMinPartHours}
1150 PartPower: {get_param: SwiftPartPower}
1151 Image: {get_param: SwiftStorageImage}
1152 Replicas: { get_param: SwiftReplicas}
1153 TimeZone: {get_param: TimeZone}
1154 NtpServer: {get_param: NtpServer}
1155 UpdateIdentifier: {get_param: UpdateIdentifier}
1156 ServiceNetMap: {get_param: ServiceNetMap}
1159 template: {get_param: ObjectStorageHostnameFormat}
1161 '%stackname%': {get_param: 'OS::stack_name'}
1162 ExtraConfig: {get_param: ExtraConfig}
1163 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1164 CloudDomain: {get_param: CloudDomain}
1165 ServerMetadata: {get_param: ServerMetadata}
1166 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1167 NodeIndex: '%index%'
1168 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1170 CephStorageServiceChain:
1171 type: OS::TripleO::Services
1173 Services: {get_param: CephStorageServices}
1174 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1177 type: OS::Heat::ResourceGroup
1178 depends_on: Networks
1180 count: {get_param: CephStorageCount}
1181 removal_policies: {get_param: CephStorageRemovalPolicies}
1183 type: OS::TripleO::CephStorage
1185 Image: {get_param: CephStorageImage}
1186 KeyName: {get_param: KeyName}
1187 Flavor: {get_param: OvercloudCephStorageFlavor}
1188 NtpServer: {get_param: NtpServer}
1189 ServiceNetMap: {get_param: ServiceNetMap}
1190 TimeZone: {get_param: TimeZone}
1191 UpdateIdentifier: {get_param: UpdateIdentifier}
1194 template: {get_param: CephStorageHostnameFormat}
1196 '%stackname%': {get_param: 'OS::stack_name'}
1197 ExtraConfig: {get_param: ExtraConfig}
1198 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1199 CloudDomain: {get_param: CloudDomain}
1200 ServerMetadata: {get_param: ServerMetadata}
1201 SchedulerHints: {get_param: CephStorageSchedulerHints}
1202 NodeIndex: '%index%'
1203 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1205 ControllerIpListMap:
1206 type: OS::TripleO::Network::Ports::NetIpListMap
1208 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1209 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1210 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1211 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1212 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1213 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1214 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1217 type: OS::TripleO::AllNodes::SoftwareConfig
1219 compute_hosts: {get_attr: [Compute, hosts_entry]}
1220 controller_hosts: {get_attr: [Controller, hosts_entry]}
1221 controller_ips: {get_attr: [Controller, ip_address]}
1222 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1223 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1224 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1225 controller_names: {get_attr: [Controller, hostname]}
1226 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1227 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1228 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1229 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1230 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1231 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1232 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1233 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1234 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1235 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1236 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1237 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1238 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1239 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1240 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1241 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1242 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1243 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1244 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1245 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1246 DeployIdentifier: {get_param: DeployIdentifier}
1247 UpdateIdentifier: {get_param: UpdateIdentifier}
1250 type: OS::Heat::RandomString
1254 MysqlClusterUniquePart:
1255 type: OS::Heat::RandomString
1260 type: OS::Heat::RandomString
1263 salt: {get_param: RabbitCookieSalt}
1265 # creates the network architecture
1267 type: OS::TripleO::Network
1270 type: OS::Neutron::Port
1271 depends_on: Networks
1273 name: control_virtual_ip
1274 network: {get_param: NeutronControlPlaneID}
1275 fixed_ips: {get_param: ControlFixedIPs}
1276 replacement_policy: AUTO
1279 depends_on: Networks
1280 type: OS::TripleO::Network::Ports::RedisVipPort
1282 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1283 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1284 PortName: redis_virtual_ip
1285 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1288 # The public VIP is on the External net, falls back to ctlplane
1290 depends_on: Networks
1291 type: OS::TripleO::Network::Ports::ExternalVipPort
1293 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1294 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1295 PortName: public_virtual_ip
1296 FixedIPs: {get_param: PublicVirtualFixedIPs}
1298 InternalApiVirtualIP:
1299 depends_on: Networks
1300 type: OS::TripleO::Network::Ports::InternalApiVipPort
1302 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1303 PortName: internal_api_virtual_ip
1304 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1307 depends_on: Networks
1308 type: OS::TripleO::Network::Ports::StorageVipPort
1310 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1311 PortName: storage_virtual_ip
1312 FixedIPs: {get_param: StorageVirtualFixedIPs}
1314 StorageMgmtVirtualIP:
1315 depends_on: Networks
1316 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1318 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1319 PortName: storage_management_virtual_ip
1320 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1323 type: OS::TripleO::Network::Ports::NetVipMap
1325 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1326 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1327 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1328 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1329 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1330 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1331 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1332 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1333 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1334 # No tenant or management VIP required
1337 type: OS::TripleO::VipConfig
1340 type: OS::Heat::StructuredDeployments
1343 config: {get_resource: VipConfig}
1344 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1346 # service VIP mappings
1347 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1348 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1349 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1350 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1351 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1352 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1353 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1354 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1355 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1356 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1357 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1358 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1359 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1360 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1361 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1362 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1363 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1364 # direct configuration of Virtual IPs for each network
1365 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1366 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1367 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1368 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1369 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1370 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1372 ControllerBootstrapNodeConfig:
1373 type: OS::TripleO::BootstrapNode::SoftwareConfig
1375 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1376 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1378 ControllerBootstrapNodeDeployment:
1379 type: OS::Heat::StructuredDeployments
1381 name: ControllerBootstrapNodeDeployment
1382 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1383 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1385 ControllerSwiftDeployment:
1386 type: OS::Heat::StructuredDeployments
1388 name: ControllerSwiftDeployment
1389 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1390 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1392 ObjectStorageSwiftDeployment:
1393 type: OS::Heat::StructuredDeployments
1395 name: ObjectStorageSwiftDeployment
1396 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1397 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1399 SwiftDevicesAndProxyConfig:
1400 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1402 controller_swift_devices: {get_attr: [Controller, swift_device]}
1403 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1404 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1406 ComputeCephDeployment:
1407 type: OS::Heat::StructuredDeployments
1409 name: ComputeCephDeployment
1410 config: {get_attr: [CephClusterConfig, config_id]}
1411 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1413 ControllerCephDeployment:
1414 type: OS::Heat::StructuredDeployments
1416 name: ControllerCephDeployment
1417 config: {get_attr: [CephClusterConfig, config_id]}
1418 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1420 CephStorageCephDeployment:
1421 type: OS::Heat::StructuredDeployments
1423 name: CephStorageCephDeployment
1424 config: {get_attr: [CephClusterConfig, config_id]}
1425 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1428 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1430 ceph_storage_count: {get_param: CephStorageCount}
1431 ceph_fsid: {get_param: CephClusterFSID}
1432 ceph_mon_key: {get_param: CephMonKey}
1433 ceph_admin_key: {get_param: CephAdminKey}
1434 ceph_client_key: {get_param: CephClientKey}
1435 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1436 ceph_mon_names: {get_attr: [Controller, hostname]}
1437 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1439 ControllerAllNodesDeployment:
1440 type: OS::Heat::StructuredDeployments
1442 name: ControllerAllNodesDeployment
1443 config: {get_attr: [allNodesConfig, config_id]}
1444 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1446 ComputeAllNodesDeployment:
1447 type: OS::Heat::StructuredDeployments
1449 name: ComputeAllNodesDeployment
1450 config: {get_attr: [allNodesConfig, config_id]}
1451 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1453 BlockStorageAllNodesDeployment:
1454 type: OS::Heat::StructuredDeployments
1456 name: BlockStorageAllNodesDeployment
1457 config: {get_attr: [allNodesConfig, config_id]}
1458 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1460 ObjectStorageAllNodesDeployment:
1461 type: OS::Heat::StructuredDeployments
1463 name: ObjectStorageAllNodesDeployment
1464 config: {get_attr: [allNodesConfig, config_id]}
1465 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1467 CephStorageAllNodesDeployment:
1468 type: OS::Heat::StructuredDeployments
1470 name: CephStorageAllNodesDeployment
1471 config: {get_attr: [allNodesConfig, config_id]}
1472 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1474 # All Nodes Validations
1475 AllNodesValidationConfig:
1476 type: OS::TripleO::AllNodes::Validation
1481 - - {get_attr: [Controller, resource.0.external_ip_address]}
1482 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1483 - {get_attr: [Controller, resource.0.storage_ip_address]}
1484 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1485 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1487 ControllerAllNodesValidationDeployment:
1488 type: OS::Heat::StructuredDeployments
1489 depends_on: ControllerAllNodesDeployment
1491 name: ControllerAllNodesValidationDeployment
1492 config: {get_resource: AllNodesValidationConfig}
1493 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1495 ComputeAllNodesValidationDeployment:
1496 type: OS::Heat::StructuredDeployments
1497 depends_on: ComputeAllNodesDeployment
1499 name: ComputeAllNodesValidationDeployment
1500 config: {get_resource: AllNodesValidationConfig}
1501 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1503 BlockStorageAllNodesValidationDeployment:
1504 type: OS::Heat::StructuredDeployments
1505 depends_on: BlockStorageAllNodesDeployment
1507 name: BlockStorageAllNodesValidationDeployment
1508 config: {get_resource: AllNodesValidationConfig}
1509 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1511 ObjectStorageAllNodesValidationDeployment:
1512 type: OS::Heat::StructuredDeployments
1513 depends_on: ObjectStorageAllNodesDeployment
1515 name: ObjectStorageAllNodesValidationDeployment
1516 config: {get_resource: AllNodesValidationConfig}
1517 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1519 CephStorageAllNodesValidationDeployment:
1520 type: OS::Heat::StructuredDeployments
1521 depends_on: CephStorageAllNodesDeployment
1523 name: CephStorageAllNodesValidationDeployment
1524 config: {get_resource: AllNodesValidationConfig}
1525 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1528 type: OS::TripleO::Tasks::UpdateWorkflow
1530 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1531 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1532 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1533 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1534 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1536 deploy_identifier: {get_param: DeployIdentifier}
1537 update_identifier: {get_param: UpdateIdentifier}
1539 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1540 # the nested template may configure each role differently (or not at all)
1541 AllNodesExtraConfig:
1542 type: OS::TripleO::AllNodesExtraConfig
1545 - ComputeAllNodesValidationDeployment
1546 - BlockStorageAllNodesValidationDeployment
1547 - ObjectStorageAllNodesValidationDeployment
1548 - CephStorageAllNodesValidationDeployment
1549 - ControllerAllNodesValidationDeployment
1551 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1552 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1553 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1554 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1555 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1557 # Nested stack deployment runs after all other controller deployments
1558 ControllerNodesPostDeployment:
1559 type: OS::TripleO::ControllerPostDeployment
1560 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1562 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1563 NodeConfigIdentifiers:
1564 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1565 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1566 deployment_identifier: {get_param: DeployIdentifier}
1567 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1569 ComputeNodesPostDeployment:
1570 type: OS::TripleO::ComputePostDeployment
1571 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1573 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1574 NodeConfigIdentifiers:
1575 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1576 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1577 deployment_identifier: {get_param: DeployIdentifier}
1578 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1580 ObjectStorageNodesPostDeployment:
1581 type: OS::TripleO::ObjectStoragePostDeployment
1582 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1584 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1585 NodeConfigIdentifiers:
1586 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1587 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1588 deployment_identifier: {get_param: DeployIdentifier}
1589 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1591 BlockStorageNodesPostDeployment:
1592 type: OS::TripleO::BlockStoragePostDeployment
1593 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1595 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1596 NodeConfigIdentifiers:
1597 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1598 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1599 deployment_identifier: {get_param: DeployIdentifier}
1601 CephStorageNodesPostDeployment:
1602 type: OS::TripleO::CephStoragePostDeployment
1603 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1605 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1606 NodeConfigIdentifiers:
1607 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1608 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1609 deployment_identifier: {get_param: DeployIdentifier}
1610 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1614 description: URL for the Overcloud Keystone service
1615 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1617 description: Keystone Admin VIP endpoint
1618 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1620 description: Controller VIP for public API endpoints
1621 value: {get_attr: [VipMap, net_ip_map, external]}
1623 description: VIP for Aodh API internal endpoint
1624 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1625 CeilometerInternalVip:
1626 description: VIP for Ceilometer API internal endpoint
1627 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1629 description: VIP for Cinder API internal endpoint
1630 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1632 description: VIP for Glance API internal endpoint
1633 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1635 description: VIP for Gnocchi API internal endpoint
1636 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1638 description: VIP for Heat API internal endpoint
1639 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1640 KeystoneInternalVip:
1641 description: VIP for Keystone API internal endpoint
1642 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1644 description: VIP for Neutron API internal endpoint
1645 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1647 description: VIP for Nova API internal endpoint
1648 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1650 description: VIP for Sahara API internal endpoint
1651 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1653 description: VIP for Swift Proxy internal endpoint
1654 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1657 Mapping of the resources with the needed info for their endpoints.
1658 This includes the protocol used, the IP, port and also a full
1659 representation of the URI.
1660 value: {get_attr: [EndpointMap, endpoint_map]}
1663 The content that should be appended to your /etc/hosts if you want to get
1664 hostname-based access to the deployed nodes (useful for testing without
1666 value: {get_attr: [allNodesConfig, hosts_entries]}