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 NeutronExternalNetworkBridge:
122 description: Name of bridge used for external network traffic.
125 NeutronBridgeMappings:
127 The OVS logical->physical bridge mappings to use. See the Neutron
128 documentation for details. Defaults to mapping br-ex - the external
129 bridge on hosts - to a physical name 'datacentre' which can be used
130 to create provider networks (and we use this for the default floating
131 network) - if changing this either use different post-install network
132 scripts or be sure to keep 'datacentre' as a mapping network name.
133 type: comma_delimited_list
134 default: "datacentre:br-ex"
135 NeutronControlPlaneID:
138 description: Neutron ID or name for ctlplane network.
139 NeutronEnableIsolatedMetadata:
141 description: If True, DHCP provide metadata route to VM.
143 NeutronEnableTunnelling:
149 Enable/disable the L2 population feature in the Neutron agents.
152 type: comma_delimited_list
153 default: 'datacentre'
155 If set, flat networks to configure in neutron plugins. Defaults to
156 'datacentre' to permit external network creation.
159 description: The tenant network type for Neutron.
160 type: comma_delimited_list
162 description: The password for the neutron service account, used by neutron agents.
165 NeutronPublicInterface:
167 description: What interface to bridge onto br-ex for network nodes.
169 NeutronPublicInterfaceTag:
172 VLAN tag for creating a public VLAN. The tag will be used to
173 create an access port on the exterior bridge for each control plane node,
174 and that port will be given the IP address returned by neutron from the
175 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
176 overcloud.yaml to include the deployment of VLAN ports to the control
179 NeutronComputeAgentMode:
181 description: Agent mode for the neutron-l3-agent on the compute hosts
185 description: Agent mode for the neutron-l3-agent on the controller hosts
189 description: Whether to configure Neutron Distributed Virtual Routers
191 NeutronMetadataProxySharedSecret:
192 description: Shared secret to prevent spoofing
197 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
198 be at least 50 bytes smaller than the MTU on the physical network. This
199 value will be used to set the MTU on the virtual Ethernet device.
200 This value will be used to construct the NeutronDnsmasqOptions, since that
201 will determine the MTU that is assigned to the VM host through DHCP.
207 The tunnel types for the Neutron tenant network.
208 type: comma_delimited_list
209 NeutronTunnelIdRanges:
211 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
212 of GRE tunnel IDs that are available for tenant network allocation
213 default: ["1:4094", ]
214 type: comma_delimited_list
217 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
218 of VXLAN VNI IDs that are available for tenant network allocation
219 default: ["1:4094", ]
220 type: comma_delimited_list
224 The core plugin for Neutron. The value should be the entrypoint to be loaded
225 from neutron.core_plugins namespace.
227 NeutronServicePlugins:
228 default: "router,qos"
230 Comma-separated list of service plugin entrypoints to be loaded from the
231 neutron.service_plugins namespace.
232 type: comma_delimited_list
234 default: "vxlan,vlan,flat,gre"
236 Comma-separated list of network type driver entrypoints to be loaded.
237 type: comma_delimited_list
238 NeutronMechanismDrivers:
239 default: 'openvswitch'
241 The mechanism drivers for the Neutron tenant network.
242 type: comma_delimited_list
243 NeutronPluginExtensions:
244 default: "qos,port_security"
246 Comma-separated list of extensions enabled for the Neutron plugin.
247 type: comma_delimited_list
248 NeutronAgentExtensions:
251 Comma-separated list of extensions enabled for the Neutron agents.
252 type: comma_delimited_list
253 NeutronAllowL3AgentFailover:
255 description: Allow automatic l3-agent failover
259 description: Whether to enable l3-agent HA
261 NeutronDhcpAgentsPerNetwork:
264 description: The number of neutron dhcp agents to schedule per network
267 description: Enable IPv6 features in Nova
270 description: The password for the nova service account, used by nova-api.
275 description: Comma-separated list of ntp servers
276 type: comma_delimited_list
279 description: Should MongoDb journaling be disabled
283 description: Enable IPv6 if MongoDB VIP is IPv6
285 PublicVirtualFixedIPs:
288 Control the IP allocation for the PublicVirtualInterface port. E.g.
289 [{'ip_address':'1.2.3.4'}]
294 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
297 description: The username for RabbitMQ
300 description: The password for RabbitMQ
306 Rabbit client subscriber parameter to specify
307 an SSL connection to the RabbitMQ host.
311 description: Set rabbit subscriber port, change this if using SSL
313 # We need to set this as string because 'unlimited' is a valid setting
316 description: Configures RabbitMQ FD limit
320 description: Enable IPv6 in RabbitMQ
323 description: The password for Redis
326 SnmpdReadonlyUserName:
327 default: ro_snmp_user
328 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
330 SnmpdReadonlyUserPassword:
331 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
334 StorageVirtualFixedIPs:
337 Control the IP allocation for the StorageVirtualInterface port. E.g.
338 [{'ip_address':'1.2.3.4'}]
340 StorageMgmtVirtualFixedIPs:
343 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
344 [{'ip_address':'1.2.3.4'}]
348 description: The timezone to be set on nodes.
351 default: 'localdomain'
354 The DNS domain used for the hosts. This should match the dhcp_domain
355 configured in the Undercloud neutron. Defaults to localdomain.
359 Extra properties or metadata passed to Nova for the created nodes in
360 the overcloud. It's accessible via the Nova metadata API.
363 # Controller-specific params
364 CinderLVMLoopDeviceSize:
366 description: The size of the loopback file used by the cinder LVM driver.
368 CinderNfsMountOptions:
371 Mount options for NFS mounts used by Cinder NFS backend. Effective
372 when CinderEnableNfsBackend is true.
377 NFS servers used by Cinder NFS backend. Effective when
378 CinderEnableNfsBackend is true.
379 type: comma_delimited_list
381 description: The password for the cinder service account, used by cinder-api.
386 description: The iSCSI helper to use with cinder.
393 controllerExtraConfig:
396 Controller specific configuration to inject into the cluster. Same
397 structure as ExtraConfig.
401 default: overcloud-full
403 - custom_constraint: glance.image
404 OvercloudControlFlavor:
405 description: Flavor for control nodes to request when deploying.
409 - custom_constraint: nova.flavor
410 ControlVirtualInterface:
412 description: Interface where virtual ip will be assigned.
416 description: Whether to enable fencing in Pacemaker or not.
420 description: Whether to use Galera instead of regular MariaDB.
422 ControllerEnableCephStorage:
424 description: Whether to deploy Ceph Storage (OSD) on the Controller
426 ControllerEnableSwiftStorage:
428 description: Whether to enable Swift Storage on the Controller
430 ControllerSchedulerHints:
432 description: Optional scheduler hints to pass to nova
437 Additional configuration to inject into the cluster. The format required
438 may be implementation specific, e.g puppet hieradata. Any role specific
439 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
444 Pacemaker fencing configuration. The JSON should have
445 the following structure:
449 "agent": "AGENT_NAME",
450 "host_mac": "HOST_MAC_ADDRESS",
451 "params": {"PARAM_NAME": "PARAM_VALUE"}
459 "agent": "fence_xvm",
460 "host_mac": "52:54:00:aa:bb:cc",
462 "multicast_address": "225.0.0.12",
463 "port": "baremetal_0",
465 "manage_key_file": true,
466 "key_file": "/etc/fence_xvm.key",
467 "key_file_password": "abcdef"
474 description: The filepath of the file to use for logging messages from Glance.
477 GlanceNotifierStrategy:
478 description: Strategy to use for Glance notification queue
482 description: The password for the glance service account, used by the glance services.
487 description: The short name of the Glance backend to use. Should be one
488 of swift, rbd or file
491 - allowed_values: ['swift', 'file', 'rbd']
494 description: The short name of the Gnocchi backend to use. Should be one
495 of swift, rbd or file
498 - allowed_values: ['swift', 'file', 'rbd']
499 GnocchiIndexerBackend:
501 description: The short name of the Gnocchi indexer backend to use.
504 description: The password for the gnocchi service account.
508 description: The password for the Heat service account, used by the Heat services.
511 HeatStackDomainAdminPassword:
512 description: Password for heat_stack_domain_admin user.
515 InstanceNameTemplate:
516 default: 'instance-%08x'
517 description: Template string to be used to generate instance names
521 description: Whether to manage IPtables rules.
525 description: Whether IPtables rules should be purged before setting up the ones.
527 MysqlInnodbBufferPoolSize:
529 Specifies the size of the buffer pool in megabytes. Setting to
530 zero should be interpreted as "no value" and will defer to the
535 description: Configures MySQL max_connections config setting
538 NeutronDnsmasqOptions:
539 default: 'dhcp-option-force=26,%MTU%'
541 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
542 to be set to the value of NeutronTenantMtu, which should be set to account
545 NeutronPublicInterfaceDefaultRoute:
547 description: A custom default route for the NeutronPublicInterface.
549 NeutronPublicInterfaceIP:
551 description: A custom IP address to put onto the NeutronPublicInterface.
553 NeutronPublicInterfaceRawDevice:
555 description: If set, the public interface is a vlan with this device as the raw device.
557 PublicVirtualInterface:
560 Specifies the interface where the public-facing virtual ip will be assigned.
561 This should be int_public when a VLAN is being used.
564 description: A random string to be used as a salt when hashing to determine mappings in the ring.
568 description: The password for the swift service account, used by the swift proxy services.
573 description: Value of mount_check in Swift account/container/object -server.conf
578 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
581 description: Partition Power to use when building Swift rings
586 description: How many replicas to use in the swift rings.
588 description: The password for the sahara service account.
592 # Compute-specific params
593 CeilometerComputeAgent:
594 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
598 - allowed_values: ['', Present]
602 HypervisorNeutronPhysicalBridge:
605 An OVS bridge to create on each hypervisor. This defaults to br-ex the
606 same as the control plane nodes, as we have a uniform configuration of
607 the openvswitch agent. Typically should not need to be changed.
609 HypervisorNeutronPublicInterface:
611 description: What interface to add to the HypervisorNeutronPhysicalBridge.
613 NeutronNetworkVLANRanges:
614 default: 'datacentre:1:1000'
616 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
617 Neutron documentation for permitted values. Defaults to permitting any
618 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
619 type: comma_delimited_list
622 default: libvirt.LibvirtDriver
623 NovaComputeExtraConfig:
626 NovaCompute specific configuration to inject into the cluster. Same
627 structure as ExtraConfig.
629 NovaComputeLibvirtType:
632 NovaComputeLibvirtVifDriver:
634 description: Libvirt VIF driver configuration for the network
636 NovaComputeSchedulerHints:
638 description: Optional scheduler hints to pass to nova
640 NovaEnableRbdBackend:
642 description: Whether to enable or not the Rbd backend for Nova
646 default: overcloud-full
648 - custom_constraint: glance.image
651 description: Name of integration bridge used by Open vSwitch
653 NovaSecurityGroupAPI:
655 description: The full class name of the security API class
657 OvercloudComputeFlavor:
658 description: Use this flavor
662 - custom_constraint: nova.flavor
665 NeutronTenantNetwork: tenant
666 CeilometerApiNetwork: internal_api
667 AodhApiNetwork: internal_api
668 GnocchiApiNetwork: internal_api
669 MongoDbNetwork: internal_api
670 CinderApiNetwork: internal_api
671 CinderIscsiNetwork: storage
672 GlanceApiNetwork: storage
673 GlanceRegistryNetwork: internal_api
674 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
675 KeystonePublicApiNetwork: internal_api
676 NeutronApiNetwork: internal_api
677 HeatApiNetwork: internal_api
678 NovaApiNetwork: internal_api
679 NovaMetadataNetwork: internal_api
680 NovaVncProxyNetwork: internal_api
681 SwiftMgmtNetwork: storage_mgmt
682 SwiftProxyNetwork: storage
683 SaharaApiNetwork: internal_api
684 HorizonNetwork: internal_api
685 MemcachedNetwork: internal_api
686 RabbitMqNetwork: internal_api
687 RedisNetwork: internal_api
688 MysqlNetwork: internal_api
689 CephClusterNetwork: storage_mgmt
690 CephPublicNetwork: storage
691 ControllerHostnameResolveNetwork: internal_api
692 ComputeHostnameResolveNetwork: internal_api
693 BlockStorageHostnameResolveNetwork: internal_api
694 ObjectStorageHostnameResolveNetwork: internal_api
695 CephStorageHostnameResolveNetwork: storage
696 description: Mapping of service_name -> network name. Typically set
697 via parameter_defaults in the resource registry.
702 - OS::TripleO::Services::Keystone
703 description: A list of service resources (configured in the Heat
704 resource_registry) which represent nested stacks
705 for each service that should get installed on the Controllers.
706 type: comma_delimited_list
708 # Block storage specific parameters
713 default: overcloud-full
715 OvercloudBlockStorageFlavor:
716 description: Flavor for block storage nodes to request when deploying.
720 - custom_constraint: nova.flavor
721 BlockStorageExtraConfig:
724 BlockStorage specific configuration to inject into the cluster. Same
725 structure as ExtraConfig.
727 BlockStorageSchedulerHints:
729 description: Optional scheduler hints to pass to nova
733 # Object storage specific parameters
737 OvercloudSwiftStorageFlavor:
738 description: Flavor for Swift storage nodes to request when deploying.
742 - custom_constraint: nova.flavor
744 default: overcloud-full
746 ObjectStorageExtraConfig:
749 ObjectStorage specific configuration to inject into the cluster. Same
750 structure as ExtraConfig.
752 ObjectStorageSchedulerHints:
754 description: Optional scheduler hints to pass to nova
757 # Ceph storage specific parameters
762 default: overcloud-full
764 OvercloudCephStorageFlavor:
766 description: Flavor for Ceph storage nodes to request when deploying.
769 - custom_constraint: nova.flavor
770 CephStorageExtraConfig:
773 CephStorage specific configuration to inject into the cluster. Same
774 structure as ExtraConfig.
776 CephStorageSchedulerHints:
778 description: Optional scheduler hints to pass to nova
782 # Hostname format for each role
783 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
784 # and %stackname% is replaced with OS::stack_name in the template below.
785 # If you want to use the heat generated names, pass '' (empty string).
786 ControllerHostnameFormat:
788 description: Format for Controller node hostnames
789 default: '%stackname%-controller-%index%'
790 ComputeHostnameFormat:
792 description: Format for Compute node hostnames
793 default: '%stackname%-novacompute-%index%'
794 BlockStorageHostnameFormat:
796 description: Format for BlockStorage node hostnames
797 default: '%stackname%-blockstorage-%index%'
798 ObjectStorageHostnameFormat:
800 description: Format for SwiftStorage node hostnames
801 default: '%stackname%-objectstorage-%index%'
802 CephStorageHostnameFormat:
804 description: Format for CephStorage node hostnames
805 default: '%stackname%-cephstorage-%index%'
807 # Identifiers to trigger tasks on nodes
812 Setting to a previously unused value during stack-update will trigger
813 package update on all nodes
818 Setting this to a unique value will re-run any deployment tasks which
819 perform configuration on a Heat stack-update.
821 # If you want to remove a specific node from a resource group, you can pass
822 # the node name or id as a <Group>RemovalPolicies parameter, for example:
823 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
824 ControllerRemovalPolicies:
828 List of resources to be removed from ControllerResourceGroup when
829 doing an update which requires removal of specific resources.
830 ComputeRemovalPolicies:
834 List of resources to be removed from ComputeResourceGroup when
835 doing an update which requires removal of specific resources.
836 BlockStorageRemovalPolicies:
840 List of resources to be removed from BlockStorageResourceGroup when
841 doing an update which requires removal of specific resources.
842 ObjectStorageRemovalPolicies:
846 List of resources to be removed from ObjectStorageResourceGroup when
847 doing an update which requires removal of specific resources.
848 CephStorageRemovalPolicies:
852 List of resources to be removed from CephStorageResourceGroup when
853 doing an update which requires removal of specific resources.
858 HeatAuthEncryptionKey:
859 type: OS::Heat::RandomString
862 type: OS::Heat::RandomString
867 type: OS::Heat::RandomString
872 type: OS::TripleO::EndpointMap
874 CloudName: {get_param: CloudName}
875 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
876 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
877 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
878 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
879 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
880 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
881 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
882 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
883 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
884 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
885 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
886 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
887 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
888 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
890 ControllerServiceChain:
891 type: OS::TripleO::Services
893 Services: {get_param: ControllerServices}
894 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
895 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
898 type: OS::Heat::ResourceGroup
901 count: {get_param: ControllerCount}
902 removal_policies: {get_param: ControllerRemovalPolicies}
904 type: OS::TripleO::Controller
906 AdminPassword: {get_param: AdminPassword}
907 AodhPassword: {get_param: AodhPassword}
908 CeilometerBackend: {get_param: CeilometerBackend}
909 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
910 CeilometerPassword: {get_param: CeilometerPassword}
911 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
912 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
913 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
914 CinderNfsServers: {get_param: CinderNfsServers}
915 CinderPassword: {get_param: CinderPassword}
916 CinderISCSIHelper: {get_param: CinderISCSIHelper}
917 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
918 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
919 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
920 CloudDomain: {get_param: CloudDomain}
921 ControlVirtualInterface: {get_param: ControlVirtualInterface}
922 ControllerExtraConfig: {get_param: controllerExtraConfig}
923 CorosyncIPv6: {get_param: CorosyncIPv6}
924 Debug: {get_param: Debug}
925 EnableFencing: {get_param: EnableFencing}
926 ManageFirewall: {get_param: ManageFirewall}
927 PurgeFirewallRules: {get_param: PurgeFirewallRules}
928 EnableGalera: {get_param: EnableGalera}
929 EnableCephStorage: {get_param: ControllerEnableCephStorage}
930 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
931 ExtraConfig: {get_param: ExtraConfig}
932 FencingConfig: {get_param: FencingConfig}
933 Flavor: {get_param: OvercloudControlFlavor}
934 GlancePassword: {get_param: GlancePassword}
935 GlanceBackend: {get_param: GlanceBackend}
936 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
937 GlanceLogFile: {get_param: GlanceLogFile}
938 GnocchiPassword: {get_param: GnocchiPassword}
939 GnocchiBackend: {get_param: GnocchiBackend}
940 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
941 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
942 HeatPassword: {get_param: HeatPassword}
943 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
944 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
945 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
946 HorizonSecret: {get_resource: HorizonSecret}
947 Image: {get_param: controllerImage}
948 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
949 InstanceNameTemplate: {get_param: InstanceNameTemplate}
950 KeyName: {get_param: KeyName}
951 MemcachedIPv6: {get_param: MemcachedIPv6}
952 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
953 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
954 MysqlMaxConnections: {get_param: MysqlMaxConnections}
955 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
956 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
957 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
958 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
959 NeutronTenantMtu: {get_param: NeutronTenantMtu}
960 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
961 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
962 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
963 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
964 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
965 NeutronPublicInterface: {get_param: NeutronPublicInterface}
966 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
967 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
968 NeutronPassword: {get_param: NeutronPassword}
969 NeutronDnsmasqOptions:
971 template: {get_param: NeutronDnsmasqOptions}
973 '%MTU%': {get_param: NeutronTenantMtu}
974 NeutronDVR: {get_param: NeutronDVR}
975 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
976 NeutronAgentMode: {get_param: NeutronAgentMode}
977 NeutronCorePlugin: {get_param: NeutronCorePlugin}
978 NeutronServicePlugins: {get_param: NeutronServicePlugins}
979 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
980 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
981 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
982 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
983 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
984 NeutronL3HA: {get_param: NeutronL3HA}
985 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
986 NeutronNetworkType: {get_param: NeutronNetworkType}
987 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
988 NovaIPv6: {get_param: NovaIPv6}
989 NovaPassword: {get_param: NovaPassword}
990 NtpServer: {get_param: NtpServer}
991 MongoDbNoJournal: {get_param: MongoDbNoJournal}
992 MongoDbIPv6: {get_param: MongoDbIPv6}
993 PcsdPassword: {get_resource: PcsdPassword}
994 PublicVirtualInterface: {get_param: PublicVirtualInterface}
995 RabbitPassword: {get_param: RabbitPassword}
996 RabbitUserName: {get_param: RabbitUserName}
997 RabbitCookie: {get_attr: [RabbitCookie, value]}
998 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
999 RabbitClientPort: {get_param: RabbitClientPort}
1000 RabbitFDLimit: {get_param: RabbitFDLimit}
1001 RabbitIPv6: {get_param: RabbitIPv6}
1002 RedisPassword: {get_param: RedisPassword}
1003 SaharaPassword: {get_param: SaharaPassword}
1004 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1005 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1006 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
1007 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
1008 SwiftHashSuffix: {get_param: SwiftHashSuffix}
1009 SwiftMountCheck: {get_param: SwiftMountCheck}
1010 SwiftMinPartHours: {get_param: SwiftMinPartHours}
1011 SwiftPartPower: {get_param: SwiftPartPower}
1012 SwiftPassword: {get_param: SwiftPassword}
1013 SwiftReplicas: { get_param: SwiftReplicas}
1014 TimeZone: {get_param: TimeZone}
1015 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
1016 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
1017 ServiceNetMap: {get_param: ServiceNetMap}
1018 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1019 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1020 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1021 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1022 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1023 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1024 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1025 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1026 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1027 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1028 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1029 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1030 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1031 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1032 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1033 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1034 UpdateIdentifier: {get_param: UpdateIdentifier}
1037 template: {get_param: ControllerHostnameFormat}
1039 '%stackname%': {get_param: 'OS::stack_name'}
1040 NodeIndex: '%index%'
1041 ServerMetadata: {get_param: ServerMetadata}
1042 SchedulerHints: {get_param: ControllerSchedulerHints}
1043 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
1046 type: OS::Heat::ResourceGroup
1047 depends_on: Networks
1049 count: {get_param: ComputeCount}
1050 removal_policies: {get_param: ComputeRemovalPolicies}
1052 type: OS::TripleO::Compute
1054 AdminPassword: {get_param: AdminPassword}
1055 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1056 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1057 CeilometerPassword: {get_param: CeilometerPassword}
1058 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1059 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1060 Debug: {get_param: Debug}
1061 ExtraConfig: {get_param: ExtraConfig}
1062 Flavor: {get_param: OvercloudComputeFlavor}
1063 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1064 Image: {get_param: NovaImage}
1065 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1066 KeyName: {get_param: KeyName}
1067 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1068 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1069 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1070 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1071 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1072 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1073 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1074 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1075 NeutronNetworkType: {get_param: NeutronNetworkType}
1076 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1077 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1078 NeutronPassword: {get_param: NeutronPassword}
1079 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1080 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1081 NeutronDVR: {get_param: NeutronDVR}
1082 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1083 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1084 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1085 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1086 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1087 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1088 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1089 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1090 # L3 HA and Failover is not relevant for Computes, should be removed
1091 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1092 NeutronL3HA: {get_param: NeutronL3HA}
1093 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1094 NovaComputeDriver: {get_param: NovaComputeDriver}
1095 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1096 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1097 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1098 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1099 NovaIPv6: {get_param: NovaIPv6}
1100 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1101 NovaPassword: {get_param: NovaPassword}
1102 NovaOVSBridge: {get_param: NovaOVSBridge}
1103 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1104 NtpServer: {get_param: NtpServer}
1105 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1106 RabbitPassword: {get_param: RabbitPassword}
1107 RabbitUserName: {get_param: RabbitUserName}
1108 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1109 RabbitClientPort: {get_param: RabbitClientPort}
1110 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1111 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1112 ServiceNetMap: {get_param: ServiceNetMap}
1113 TimeZone: {get_param: TimeZone}
1114 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1115 UpdateIdentifier: {get_param: UpdateIdentifier}
1118 template: {get_param: ComputeHostnameFormat}
1120 '%stackname%': {get_param: 'OS::stack_name'}
1121 CloudDomain: {get_param: CloudDomain}
1122 ServerMetadata: {get_param: ServerMetadata}
1123 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1124 NodeIndex: '%index%'
1127 type: OS::Heat::ResourceGroup
1128 depends_on: Networks
1130 count: {get_param: BlockStorageCount}
1131 removal_policies: {get_param: BlockStorageRemovalPolicies}
1133 type: OS::TripleO::BlockStorage
1135 Debug: {get_param: Debug}
1136 Image: {get_param: BlockStorageImage}
1137 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1138 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1139 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1140 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1141 CinderPassword: {get_param: CinderPassword}
1142 KeyName: {get_param: KeyName}
1143 Flavor: {get_param: OvercloudBlockStorageFlavor}
1144 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1145 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1146 RabbitPassword: {get_param: RabbitPassword}
1147 RabbitUserName: {get_param: RabbitUserName}
1148 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1149 RabbitClientPort: {get_param: RabbitClientPort}
1150 TimeZone: {get_param: TimeZone}
1151 NtpServer: {get_param: NtpServer}
1152 UpdateIdentifier: {get_param: UpdateIdentifier}
1155 template: {get_param: BlockStorageHostnameFormat}
1157 '%stackname%': {get_param: 'OS::stack_name'}
1158 ServiceNetMap: {get_param: ServiceNetMap}
1159 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1160 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1161 ExtraConfig: {get_param: ExtraConfig}
1162 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1163 CloudDomain: {get_param: CloudDomain}
1164 ServerMetadata: {get_param: ServerMetadata}
1165 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1166 NodeIndex: '%index%'
1169 type: OS::Heat::ResourceGroup
1170 depends_on: Networks
1172 count: {get_param: ObjectStorageCount}
1173 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1175 type: OS::TripleO::ObjectStorage
1177 KeyName: {get_param: KeyName}
1178 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1179 HashSuffix: {get_param: SwiftHashSuffix}
1180 MountCheck: {get_param: SwiftMountCheck}
1181 MinPartHours: {get_param: SwiftMinPartHours}
1182 PartPower: {get_param: SwiftPartPower}
1183 Image: {get_param: SwiftStorageImage}
1184 Replicas: { get_param: SwiftReplicas}
1185 TimeZone: {get_param: TimeZone}
1186 NtpServer: {get_param: NtpServer}
1187 UpdateIdentifier: {get_param: UpdateIdentifier}
1188 ServiceNetMap: {get_param: ServiceNetMap}
1191 template: {get_param: ObjectStorageHostnameFormat}
1193 '%stackname%': {get_param: 'OS::stack_name'}
1194 ExtraConfig: {get_param: ExtraConfig}
1195 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1196 CloudDomain: {get_param: CloudDomain}
1197 ServerMetadata: {get_param: ServerMetadata}
1198 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1199 NodeIndex: '%index%'
1202 type: OS::Heat::ResourceGroup
1203 depends_on: Networks
1205 count: {get_param: CephStorageCount}
1206 removal_policies: {get_param: CephStorageRemovalPolicies}
1208 type: OS::TripleO::CephStorage
1210 Image: {get_param: CephStorageImage}
1211 KeyName: {get_param: KeyName}
1212 Flavor: {get_param: OvercloudCephStorageFlavor}
1213 NtpServer: {get_param: NtpServer}
1214 ServiceNetMap: {get_param: ServiceNetMap}
1215 TimeZone: {get_param: TimeZone}
1216 UpdateIdentifier: {get_param: UpdateIdentifier}
1219 template: {get_param: CephStorageHostnameFormat}
1221 '%stackname%': {get_param: 'OS::stack_name'}
1222 ExtraConfig: {get_param: ExtraConfig}
1223 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1224 CloudDomain: {get_param: CloudDomain}
1225 ServerMetadata: {get_param: ServerMetadata}
1226 SchedulerHints: {get_param: CephStorageSchedulerHints}
1227 NodeIndex: '%index%'
1229 ControllerIpListMap:
1230 type: OS::TripleO::Network::Ports::NetIpListMap
1232 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1233 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1234 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1235 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1236 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1237 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1238 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1241 type: OS::TripleO::AllNodes::SoftwareConfig
1243 compute_hosts: {get_attr: [Compute, hosts_entry]}
1244 controller_hosts: {get_attr: [Controller, hosts_entry]}
1245 controller_ips: {get_attr: [Controller, ip_address]}
1246 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1247 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1248 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1249 controller_names: {get_attr: [Controller, hostname]}
1250 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1251 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1252 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1253 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1254 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1255 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1256 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1257 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1258 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1259 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1260 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1261 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1262 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1263 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1264 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1265 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1266 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1267 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1268 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1269 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1270 DeployIdentifier: {get_param: DeployIdentifier}
1271 UpdateIdentifier: {get_param: UpdateIdentifier}
1274 type: OS::Heat::RandomString
1278 MysqlClusterUniquePart:
1279 type: OS::Heat::RandomString
1284 type: OS::Heat::RandomString
1287 salt: {get_param: RabbitCookieSalt}
1289 # creates the network architecture
1291 type: OS::TripleO::Network
1294 type: OS::Neutron::Port
1295 depends_on: Networks
1297 name: control_virtual_ip
1298 network: {get_param: NeutronControlPlaneID}
1299 fixed_ips: {get_param: ControlFixedIPs}
1300 replacement_policy: AUTO
1303 depends_on: Networks
1304 type: OS::TripleO::Network::Ports::RedisVipPort
1306 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1307 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1308 PortName: redis_virtual_ip
1309 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1312 # The public VIP is on the External net, falls back to ctlplane
1314 depends_on: Networks
1315 type: OS::TripleO::Network::Ports::ExternalVipPort
1317 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1318 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1319 PortName: public_virtual_ip
1320 FixedIPs: {get_param: PublicVirtualFixedIPs}
1322 InternalApiVirtualIP:
1323 depends_on: Networks
1324 type: OS::TripleO::Network::Ports::InternalApiVipPort
1326 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1327 PortName: internal_api_virtual_ip
1328 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1331 depends_on: Networks
1332 type: OS::TripleO::Network::Ports::StorageVipPort
1334 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1335 PortName: storage_virtual_ip
1336 FixedIPs: {get_param: StorageVirtualFixedIPs}
1338 StorageMgmtVirtualIP:
1339 depends_on: Networks
1340 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1342 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1343 PortName: storage_management_virtual_ip
1344 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1347 type: OS::TripleO::Network::Ports::NetVipMap
1349 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1350 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1351 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1352 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1353 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1354 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1355 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1356 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1357 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1358 # No tenant or management VIP required
1361 type: OS::TripleO::VipConfig
1364 type: OS::Heat::StructuredDeployments
1367 config: {get_resource: VipConfig}
1368 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1370 # service VIP mappings
1371 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1372 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1373 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1374 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1375 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1376 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1377 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1378 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1379 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1380 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1381 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1382 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1383 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1384 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1385 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1386 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1387 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1388 # direct configuration of Virtual IPs for each network
1389 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1390 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1391 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1392 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1393 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1394 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1396 ControllerBootstrapNodeConfig:
1397 type: OS::TripleO::BootstrapNode::SoftwareConfig
1399 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1400 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1402 ControllerBootstrapNodeDeployment:
1403 type: OS::Heat::StructuredDeployments
1405 name: ControllerBootstrapNodeDeployment
1406 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1407 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1409 ControllerSwiftDeployment:
1410 type: OS::Heat::StructuredDeployments
1412 name: ControllerSwiftDeployment
1413 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1414 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1416 ObjectStorageSwiftDeployment:
1417 type: OS::Heat::StructuredDeployments
1419 name: ObjectStorageSwiftDeployment
1420 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1421 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1423 SwiftDevicesAndProxyConfig:
1424 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1426 controller_swift_devices: {get_attr: [Controller, swift_device]}
1427 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1428 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1430 ComputeCephDeployment:
1431 type: OS::Heat::StructuredDeployments
1433 name: ComputeCephDeployment
1434 config: {get_attr: [CephClusterConfig, config_id]}
1435 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1437 ControllerCephDeployment:
1438 type: OS::Heat::StructuredDeployments
1440 name: ControllerCephDeployment
1441 config: {get_attr: [CephClusterConfig, config_id]}
1442 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1444 CephStorageCephDeployment:
1445 type: OS::Heat::StructuredDeployments
1447 name: CephStorageCephDeployment
1448 config: {get_attr: [CephClusterConfig, config_id]}
1449 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1452 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1454 ceph_storage_count: {get_param: CephStorageCount}
1455 ceph_fsid: {get_param: CephClusterFSID}
1456 ceph_mon_key: {get_param: CephMonKey}
1457 ceph_admin_key: {get_param: CephAdminKey}
1458 ceph_client_key: {get_param: CephClientKey}
1459 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1460 ceph_mon_names: {get_attr: [Controller, hostname]}
1461 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1463 ControllerClusterConfig:
1464 type: OS::Heat::StructuredConfig
1466 group: os-apply-config
1469 nodes: {get_attr: [Controller, corosync_node]}
1473 nodes: {get_attr: [Controller, hostname]}
1475 nodes: {get_attr: [Controller, corosync_node]}
1477 nodes: {get_attr: [Controller, corosync_node]}
1479 ControllerClusterDeployment:
1480 type: OS::Heat::StructuredDeployments
1482 name: ControllerClusterDeployment
1483 config: {get_resource: ControllerClusterConfig}
1484 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1486 ControllerAllNodesDeployment:
1487 type: OS::Heat::StructuredDeployments
1489 name: ControllerAllNodesDeployment
1490 config: {get_attr: [allNodesConfig, config_id]}
1491 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1493 ComputeAllNodesDeployment:
1494 type: OS::Heat::StructuredDeployments
1496 name: ComputeAllNodesDeployment
1497 config: {get_attr: [allNodesConfig, config_id]}
1498 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1500 BlockStorageAllNodesDeployment:
1501 type: OS::Heat::StructuredDeployments
1503 name: BlockStorageAllNodesDeployment
1504 config: {get_attr: [allNodesConfig, config_id]}
1505 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1507 ObjectStorageAllNodesDeployment:
1508 type: OS::Heat::StructuredDeployments
1510 name: ObjectStorageAllNodesDeployment
1511 config: {get_attr: [allNodesConfig, config_id]}
1512 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1514 CephStorageAllNodesDeployment:
1515 type: OS::Heat::StructuredDeployments
1517 name: CephStorageAllNodesDeployment
1518 config: {get_attr: [allNodesConfig, config_id]}
1519 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1521 # All Nodes Validations
1522 AllNodesValidationConfig:
1523 type: OS::TripleO::AllNodes::Validation
1528 - - {get_attr: [Controller, resource.0.external_ip_address]}
1529 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1530 - {get_attr: [Controller, resource.0.storage_ip_address]}
1531 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1532 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1534 ControllerAllNodesValidationDeployment:
1535 type: OS::Heat::StructuredDeployments
1536 depends_on: ControllerAllNodesDeployment
1538 name: ControllerAllNodesValidationDeployment
1539 config: {get_resource: AllNodesValidationConfig}
1540 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1542 ComputeAllNodesValidationDeployment:
1543 type: OS::Heat::StructuredDeployments
1544 depends_on: ComputeAllNodesDeployment
1546 name: ComputeAllNodesValidationDeployment
1547 config: {get_resource: AllNodesValidationConfig}
1548 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1550 BlockStorageAllNodesValidationDeployment:
1551 type: OS::Heat::StructuredDeployments
1552 depends_on: BlockStorageAllNodesDeployment
1554 name: BlockStorageAllNodesValidationDeployment
1555 config: {get_resource: AllNodesValidationConfig}
1556 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1558 ObjectStorageAllNodesValidationDeployment:
1559 type: OS::Heat::StructuredDeployments
1560 depends_on: ObjectStorageAllNodesDeployment
1562 name: ObjectStorageAllNodesValidationDeployment
1563 config: {get_resource: AllNodesValidationConfig}
1564 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1566 CephStorageAllNodesValidationDeployment:
1567 type: OS::Heat::StructuredDeployments
1568 depends_on: CephStorageAllNodesDeployment
1570 name: CephStorageAllNodesValidationDeployment
1571 config: {get_resource: AllNodesValidationConfig}
1572 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1575 type: OS::TripleO::Tasks::UpdateWorkflow
1577 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1578 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1579 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1580 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1581 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1583 deploy_identifier: {get_param: DeployIdentifier}
1584 update_identifier: {get_param: UpdateIdentifier}
1586 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1587 # the nested template may configure each role differently (or not at all)
1588 AllNodesExtraConfig:
1589 type: OS::TripleO::AllNodesExtraConfig
1592 - ComputeAllNodesValidationDeployment
1593 - BlockStorageAllNodesValidationDeployment
1594 - ObjectStorageAllNodesValidationDeployment
1595 - CephStorageAllNodesValidationDeployment
1596 - ControllerAllNodesValidationDeployment
1598 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1599 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1600 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1601 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1602 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1604 # Nested stack deployment runs after all other controller deployments
1605 ControllerNodesPostDeployment:
1606 type: OS::TripleO::ControllerPostDeployment
1607 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1609 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1610 NodeConfigIdentifiers:
1611 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1612 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1613 deployment_identifier: {get_param: DeployIdentifier}
1614 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1616 ComputeNodesPostDeployment:
1617 type: OS::TripleO::ComputePostDeployment
1618 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1620 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1621 NodeConfigIdentifiers:
1622 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1623 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1624 deployment_identifier: {get_param: DeployIdentifier}
1626 ObjectStorageNodesPostDeployment:
1627 type: OS::TripleO::ObjectStoragePostDeployment
1628 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1630 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1631 NodeConfigIdentifiers:
1632 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1633 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1634 deployment_identifier: {get_param: DeployIdentifier}
1636 BlockStorageNodesPostDeployment:
1637 type: OS::TripleO::BlockStoragePostDeployment
1638 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1640 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1641 NodeConfigIdentifiers:
1642 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1643 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1644 deployment_identifier: {get_param: DeployIdentifier}
1646 CephStorageNodesPostDeployment:
1647 type: OS::TripleO::CephStoragePostDeployment
1648 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1650 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1651 NodeConfigIdentifiers:
1652 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1653 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1654 deployment_identifier: {get_param: DeployIdentifier}
1658 description: URL for the Overcloud Keystone service
1659 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1661 description: Keystone Admin VIP endpoint
1662 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1664 description: Controller VIP for public API endpoints
1665 value: {get_attr: [VipMap, net_ip_map, external]}
1667 description: VIP for Aodh API internal endpoint
1668 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1669 CeilometerInternalVip:
1670 description: VIP for Ceilometer API internal endpoint
1671 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1673 description: VIP for Cinder API internal endpoint
1674 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1676 description: VIP for Glance API internal endpoint
1677 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1679 description: VIP for Gnocchi API internal endpoint
1680 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1682 description: VIP for Heat API internal endpoint
1683 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1684 KeystoneInternalVip:
1685 description: VIP for Keystone API internal endpoint
1686 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1688 description: VIP for Neutron API internal endpoint
1689 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1691 description: VIP for Nova API internal endpoint
1692 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1694 description: VIP for Sahara API internal endpoint
1695 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1697 description: VIP for Swift Proxy internal endpoint
1698 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1701 Mapping of the resources with the needed info for their endpoints.
1702 This includes the protocol used, the IP, port and also a full
1703 representation of the URI.
1704 value: {get_attr: [EndpointMap, endpoint_map]}
1707 The content that should be appended to your /etc/hosts if you want to get
1708 hostname-based access to the deployed nodes (useful for testing without
1710 value: {get_attr: [allNodesConfig, hosts_entries]}