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 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
880 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
881 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
882 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
883 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
884 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
885 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
886 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
887 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
888 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
889 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
891 ControllerServiceChain:
892 type: OS::TripleO::Services
894 Services: {get_param: ControllerServices}
895 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
896 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
899 type: OS::Heat::ResourceGroup
902 count: {get_param: ControllerCount}
903 removal_policies: {get_param: ControllerRemovalPolicies}
905 type: OS::TripleO::Controller
907 AdminPassword: {get_param: AdminPassword}
908 AodhPassword: {get_param: AodhPassword}
909 CeilometerBackend: {get_param: CeilometerBackend}
910 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
911 CeilometerPassword: {get_param: CeilometerPassword}
912 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
913 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
914 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
915 CinderNfsServers: {get_param: CinderNfsServers}
916 CinderPassword: {get_param: CinderPassword}
917 CinderISCSIHelper: {get_param: CinderISCSIHelper}
918 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
919 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
920 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
921 CloudDomain: {get_param: CloudDomain}
922 ControlVirtualInterface: {get_param: ControlVirtualInterface}
923 ControllerExtraConfig: {get_param: controllerExtraConfig}
924 CorosyncIPv6: {get_param: CorosyncIPv6}
925 Debug: {get_param: Debug}
926 EnableFencing: {get_param: EnableFencing}
927 ManageFirewall: {get_param: ManageFirewall}
928 PurgeFirewallRules: {get_param: PurgeFirewallRules}
929 EnableGalera: {get_param: EnableGalera}
930 EnableCephStorage: {get_param: ControllerEnableCephStorage}
931 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
932 ExtraConfig: {get_param: ExtraConfig}
933 FencingConfig: {get_param: FencingConfig}
934 Flavor: {get_param: OvercloudControlFlavor}
935 GlancePassword: {get_param: GlancePassword}
936 GlanceBackend: {get_param: GlanceBackend}
937 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
938 GlanceLogFile: {get_param: GlanceLogFile}
939 GnocchiPassword: {get_param: GnocchiPassword}
940 GnocchiBackend: {get_param: GnocchiBackend}
941 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
942 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
943 HeatPassword: {get_param: HeatPassword}
944 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
945 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
946 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
947 HorizonSecret: {get_resource: HorizonSecret}
948 Image: {get_param: controllerImage}
949 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
950 InstanceNameTemplate: {get_param: InstanceNameTemplate}
951 KeyName: {get_param: KeyName}
952 MemcachedIPv6: {get_param: MemcachedIPv6}
953 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
954 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
955 MysqlMaxConnections: {get_param: MysqlMaxConnections}
956 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
957 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
958 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
959 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
960 NeutronTenantMtu: {get_param: NeutronTenantMtu}
961 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
962 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
963 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
964 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
965 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
966 NeutronPublicInterface: {get_param: NeutronPublicInterface}
967 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
968 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
969 NeutronPassword: {get_param: NeutronPassword}
970 NeutronDnsmasqOptions:
972 template: {get_param: NeutronDnsmasqOptions}
974 '%MTU%': {get_param: NeutronTenantMtu}
975 NeutronDVR: {get_param: NeutronDVR}
976 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
977 NeutronAgentMode: {get_param: NeutronAgentMode}
978 NeutronCorePlugin: {get_param: NeutronCorePlugin}
979 NeutronServicePlugins: {get_param: NeutronServicePlugins}
980 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
981 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
982 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
983 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
984 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
985 NeutronL3HA: {get_param: NeutronL3HA}
986 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
987 NeutronNetworkType: {get_param: NeutronNetworkType}
988 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
989 NovaIPv6: {get_param: NovaIPv6}
990 NovaPassword: {get_param: NovaPassword}
991 NtpServer: {get_param: NtpServer}
992 MongoDbNoJournal: {get_param: MongoDbNoJournal}
993 MongoDbIPv6: {get_param: MongoDbIPv6}
994 PcsdPassword: {get_resource: PcsdPassword}
995 PublicVirtualInterface: {get_param: PublicVirtualInterface}
996 RabbitPassword: {get_param: RabbitPassword}
997 RabbitUserName: {get_param: RabbitUserName}
998 RabbitCookie: {get_attr: [RabbitCookie, value]}
999 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1000 RabbitClientPort: {get_param: RabbitClientPort}
1001 RabbitFDLimit: {get_param: RabbitFDLimit}
1002 RabbitIPv6: {get_param: RabbitIPv6}
1003 RedisPassword: {get_param: RedisPassword}
1004 SaharaPassword: {get_param: SaharaPassword}
1005 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1006 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1007 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
1008 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
1009 SwiftHashSuffix: {get_param: SwiftHashSuffix}
1010 SwiftMountCheck: {get_param: SwiftMountCheck}
1011 SwiftMinPartHours: {get_param: SwiftMinPartHours}
1012 SwiftPartPower: {get_param: SwiftPartPower}
1013 SwiftPassword: {get_param: SwiftPassword}
1014 SwiftReplicas: { get_param: SwiftReplicas}
1015 TimeZone: {get_param: TimeZone}
1016 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
1017 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
1018 ServiceNetMap: {get_param: ServiceNetMap}
1019 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1020 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1021 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1022 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1023 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1024 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1025 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1026 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1027 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1028 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1029 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1030 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1031 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1032 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1033 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1034 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1035 UpdateIdentifier: {get_param: UpdateIdentifier}
1038 template: {get_param: ControllerHostnameFormat}
1040 '%stackname%': {get_param: 'OS::stack_name'}
1041 NodeIndex: '%index%'
1042 ServerMetadata: {get_param: ServerMetadata}
1043 SchedulerHints: {get_param: ControllerSchedulerHints}
1044 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
1047 type: OS::Heat::ResourceGroup
1048 depends_on: Networks
1050 count: {get_param: ComputeCount}
1051 removal_policies: {get_param: ComputeRemovalPolicies}
1053 type: OS::TripleO::Compute
1055 AdminPassword: {get_param: AdminPassword}
1056 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1057 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1058 CeilometerPassword: {get_param: CeilometerPassword}
1059 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1060 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1061 Debug: {get_param: Debug}
1062 ExtraConfig: {get_param: ExtraConfig}
1063 Flavor: {get_param: OvercloudComputeFlavor}
1064 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1065 Image: {get_param: NovaImage}
1066 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1067 KeyName: {get_param: KeyName}
1068 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1069 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1070 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1071 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1072 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1073 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1074 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1075 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1076 NeutronNetworkType: {get_param: NeutronNetworkType}
1077 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1078 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1079 NeutronPassword: {get_param: NeutronPassword}
1080 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1081 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1082 NeutronDVR: {get_param: NeutronDVR}
1083 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1084 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1085 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1086 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1087 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1088 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1089 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1090 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1091 # L3 HA and Failover is not relevant for Computes, should be removed
1092 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1093 NeutronL3HA: {get_param: NeutronL3HA}
1094 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1095 NovaComputeDriver: {get_param: NovaComputeDriver}
1096 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1097 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1098 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1099 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1100 NovaIPv6: {get_param: NovaIPv6}
1101 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1102 NovaPassword: {get_param: NovaPassword}
1103 NovaOVSBridge: {get_param: NovaOVSBridge}
1104 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1105 NtpServer: {get_param: NtpServer}
1106 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1107 RabbitPassword: {get_param: RabbitPassword}
1108 RabbitUserName: {get_param: RabbitUserName}
1109 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1110 RabbitClientPort: {get_param: RabbitClientPort}
1111 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1112 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1113 ServiceNetMap: {get_param: ServiceNetMap}
1114 TimeZone: {get_param: TimeZone}
1115 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1116 UpdateIdentifier: {get_param: UpdateIdentifier}
1119 template: {get_param: ComputeHostnameFormat}
1121 '%stackname%': {get_param: 'OS::stack_name'}
1122 CloudDomain: {get_param: CloudDomain}
1123 ServerMetadata: {get_param: ServerMetadata}
1124 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1125 NodeIndex: '%index%'
1128 type: OS::Heat::ResourceGroup
1129 depends_on: Networks
1131 count: {get_param: BlockStorageCount}
1132 removal_policies: {get_param: BlockStorageRemovalPolicies}
1134 type: OS::TripleO::BlockStorage
1136 Debug: {get_param: Debug}
1137 Image: {get_param: BlockStorageImage}
1138 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1139 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1140 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1141 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1142 CinderPassword: {get_param: CinderPassword}
1143 KeyName: {get_param: KeyName}
1144 Flavor: {get_param: OvercloudBlockStorageFlavor}
1145 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1146 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1147 RabbitPassword: {get_param: RabbitPassword}
1148 RabbitUserName: {get_param: RabbitUserName}
1149 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1150 RabbitClientPort: {get_param: RabbitClientPort}
1151 TimeZone: {get_param: TimeZone}
1152 NtpServer: {get_param: NtpServer}
1153 UpdateIdentifier: {get_param: UpdateIdentifier}
1156 template: {get_param: BlockStorageHostnameFormat}
1158 '%stackname%': {get_param: 'OS::stack_name'}
1159 ServiceNetMap: {get_param: ServiceNetMap}
1160 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1161 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1162 ExtraConfig: {get_param: ExtraConfig}
1163 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1164 CloudDomain: {get_param: CloudDomain}
1165 ServerMetadata: {get_param: ServerMetadata}
1166 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1167 NodeIndex: '%index%'
1170 type: OS::Heat::ResourceGroup
1171 depends_on: Networks
1173 count: {get_param: ObjectStorageCount}
1174 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1176 type: OS::TripleO::ObjectStorage
1178 KeyName: {get_param: KeyName}
1179 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1180 HashSuffix: {get_param: SwiftHashSuffix}
1181 MountCheck: {get_param: SwiftMountCheck}
1182 MinPartHours: {get_param: SwiftMinPartHours}
1183 PartPower: {get_param: SwiftPartPower}
1184 Image: {get_param: SwiftStorageImage}
1185 Replicas: { get_param: SwiftReplicas}
1186 TimeZone: {get_param: TimeZone}
1187 NtpServer: {get_param: NtpServer}
1188 UpdateIdentifier: {get_param: UpdateIdentifier}
1189 ServiceNetMap: {get_param: ServiceNetMap}
1192 template: {get_param: ObjectStorageHostnameFormat}
1194 '%stackname%': {get_param: 'OS::stack_name'}
1195 ExtraConfig: {get_param: ExtraConfig}
1196 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1197 CloudDomain: {get_param: CloudDomain}
1198 ServerMetadata: {get_param: ServerMetadata}
1199 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1200 NodeIndex: '%index%'
1203 type: OS::Heat::ResourceGroup
1204 depends_on: Networks
1206 count: {get_param: CephStorageCount}
1207 removal_policies: {get_param: CephStorageRemovalPolicies}
1209 type: OS::TripleO::CephStorage
1211 Image: {get_param: CephStorageImage}
1212 KeyName: {get_param: KeyName}
1213 Flavor: {get_param: OvercloudCephStorageFlavor}
1214 NtpServer: {get_param: NtpServer}
1215 ServiceNetMap: {get_param: ServiceNetMap}
1216 TimeZone: {get_param: TimeZone}
1217 UpdateIdentifier: {get_param: UpdateIdentifier}
1220 template: {get_param: CephStorageHostnameFormat}
1222 '%stackname%': {get_param: 'OS::stack_name'}
1223 ExtraConfig: {get_param: ExtraConfig}
1224 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1225 CloudDomain: {get_param: CloudDomain}
1226 ServerMetadata: {get_param: ServerMetadata}
1227 SchedulerHints: {get_param: CephStorageSchedulerHints}
1228 NodeIndex: '%index%'
1230 ControllerIpListMap:
1231 type: OS::TripleO::Network::Ports::NetIpListMap
1233 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1234 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1235 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1236 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1237 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1238 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1239 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1242 type: OS::TripleO::AllNodes::SoftwareConfig
1244 compute_hosts: {get_attr: [Compute, hosts_entry]}
1245 controller_hosts: {get_attr: [Controller, hosts_entry]}
1246 controller_ips: {get_attr: [Controller, ip_address]}
1247 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1248 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1249 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1250 controller_names: {get_attr: [Controller, hostname]}
1251 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1252 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1253 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1254 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1255 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1256 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1257 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1258 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1259 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1260 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1261 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1262 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1263 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1264 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1265 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1266 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1267 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1268 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1269 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1270 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1271 DeployIdentifier: {get_param: DeployIdentifier}
1272 UpdateIdentifier: {get_param: UpdateIdentifier}
1275 type: OS::Heat::RandomString
1279 MysqlClusterUniquePart:
1280 type: OS::Heat::RandomString
1285 type: OS::Heat::RandomString
1288 salt: {get_param: RabbitCookieSalt}
1290 # creates the network architecture
1292 type: OS::TripleO::Network
1295 type: OS::Neutron::Port
1296 depends_on: Networks
1298 name: control_virtual_ip
1299 network: {get_param: NeutronControlPlaneID}
1300 fixed_ips: {get_param: ControlFixedIPs}
1301 replacement_policy: AUTO
1304 depends_on: Networks
1305 type: OS::TripleO::Network::Ports::RedisVipPort
1307 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1308 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1309 PortName: redis_virtual_ip
1310 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1313 # The public VIP is on the External net, falls back to ctlplane
1315 depends_on: Networks
1316 type: OS::TripleO::Network::Ports::ExternalVipPort
1318 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1319 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1320 PortName: public_virtual_ip
1321 FixedIPs: {get_param: PublicVirtualFixedIPs}
1323 InternalApiVirtualIP:
1324 depends_on: Networks
1325 type: OS::TripleO::Network::Ports::InternalApiVipPort
1327 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1328 PortName: internal_api_virtual_ip
1329 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1332 depends_on: Networks
1333 type: OS::TripleO::Network::Ports::StorageVipPort
1335 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1336 PortName: storage_virtual_ip
1337 FixedIPs: {get_param: StorageVirtualFixedIPs}
1339 StorageMgmtVirtualIP:
1340 depends_on: Networks
1341 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1343 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1344 PortName: storage_management_virtual_ip
1345 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1348 type: OS::TripleO::Network::Ports::NetVipMap
1350 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1351 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1352 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1353 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1354 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1355 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1356 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1357 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1358 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1359 # No tenant or management VIP required
1362 type: OS::TripleO::VipConfig
1365 type: OS::Heat::StructuredDeployments
1368 config: {get_resource: VipConfig}
1369 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1371 # service VIP mappings
1372 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1373 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1374 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1375 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1376 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1377 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1378 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1379 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1380 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1381 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1382 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1383 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1384 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1385 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1386 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1387 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1388 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1389 # direct configuration of Virtual IPs for each network
1390 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1391 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1392 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1393 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1394 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1395 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1397 ControllerBootstrapNodeConfig:
1398 type: OS::TripleO::BootstrapNode::SoftwareConfig
1400 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1401 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1403 ControllerBootstrapNodeDeployment:
1404 type: OS::Heat::StructuredDeployments
1406 name: ControllerBootstrapNodeDeployment
1407 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1408 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1410 ControllerSwiftDeployment:
1411 type: OS::Heat::StructuredDeployments
1413 name: ControllerSwiftDeployment
1414 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1415 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1417 ObjectStorageSwiftDeployment:
1418 type: OS::Heat::StructuredDeployments
1420 name: ObjectStorageSwiftDeployment
1421 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1422 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1424 SwiftDevicesAndProxyConfig:
1425 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1427 controller_swift_devices: {get_attr: [Controller, swift_device]}
1428 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1429 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1431 ComputeCephDeployment:
1432 type: OS::Heat::StructuredDeployments
1434 name: ComputeCephDeployment
1435 config: {get_attr: [CephClusterConfig, config_id]}
1436 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1438 ControllerCephDeployment:
1439 type: OS::Heat::StructuredDeployments
1441 name: ControllerCephDeployment
1442 config: {get_attr: [CephClusterConfig, config_id]}
1443 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1445 CephStorageCephDeployment:
1446 type: OS::Heat::StructuredDeployments
1448 name: CephStorageCephDeployment
1449 config: {get_attr: [CephClusterConfig, config_id]}
1450 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1453 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1455 ceph_storage_count: {get_param: CephStorageCount}
1456 ceph_fsid: {get_param: CephClusterFSID}
1457 ceph_mon_key: {get_param: CephMonKey}
1458 ceph_admin_key: {get_param: CephAdminKey}
1459 ceph_client_key: {get_param: CephClientKey}
1460 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1461 ceph_mon_names: {get_attr: [Controller, hostname]}
1462 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1464 ControllerClusterConfig:
1465 type: OS::Heat::StructuredConfig
1467 group: os-apply-config
1470 nodes: {get_attr: [Controller, corosync_node]}
1474 nodes: {get_attr: [Controller, hostname]}
1476 nodes: {get_attr: [Controller, corosync_node]}
1478 nodes: {get_attr: [Controller, corosync_node]}
1480 ControllerClusterDeployment:
1481 type: OS::Heat::StructuredDeployments
1483 name: ControllerClusterDeployment
1484 config: {get_resource: ControllerClusterConfig}
1485 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1487 ControllerAllNodesDeployment:
1488 type: OS::Heat::StructuredDeployments
1490 name: ControllerAllNodesDeployment
1491 config: {get_attr: [allNodesConfig, config_id]}
1492 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1494 ComputeAllNodesDeployment:
1495 type: OS::Heat::StructuredDeployments
1497 name: ComputeAllNodesDeployment
1498 config: {get_attr: [allNodesConfig, config_id]}
1499 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1501 BlockStorageAllNodesDeployment:
1502 type: OS::Heat::StructuredDeployments
1504 name: BlockStorageAllNodesDeployment
1505 config: {get_attr: [allNodesConfig, config_id]}
1506 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1508 ObjectStorageAllNodesDeployment:
1509 type: OS::Heat::StructuredDeployments
1511 name: ObjectStorageAllNodesDeployment
1512 config: {get_attr: [allNodesConfig, config_id]}
1513 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1515 CephStorageAllNodesDeployment:
1516 type: OS::Heat::StructuredDeployments
1518 name: CephStorageAllNodesDeployment
1519 config: {get_attr: [allNodesConfig, config_id]}
1520 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1522 # All Nodes Validations
1523 AllNodesValidationConfig:
1524 type: OS::TripleO::AllNodes::Validation
1529 - - {get_attr: [Controller, resource.0.external_ip_address]}
1530 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1531 - {get_attr: [Controller, resource.0.storage_ip_address]}
1532 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1533 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1535 ControllerAllNodesValidationDeployment:
1536 type: OS::Heat::StructuredDeployments
1537 depends_on: ControllerAllNodesDeployment
1539 name: ControllerAllNodesValidationDeployment
1540 config: {get_resource: AllNodesValidationConfig}
1541 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1543 ComputeAllNodesValidationDeployment:
1544 type: OS::Heat::StructuredDeployments
1545 depends_on: ComputeAllNodesDeployment
1547 name: ComputeAllNodesValidationDeployment
1548 config: {get_resource: AllNodesValidationConfig}
1549 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1551 BlockStorageAllNodesValidationDeployment:
1552 type: OS::Heat::StructuredDeployments
1553 depends_on: BlockStorageAllNodesDeployment
1555 name: BlockStorageAllNodesValidationDeployment
1556 config: {get_resource: AllNodesValidationConfig}
1557 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1559 ObjectStorageAllNodesValidationDeployment:
1560 type: OS::Heat::StructuredDeployments
1561 depends_on: ObjectStorageAllNodesDeployment
1563 name: ObjectStorageAllNodesValidationDeployment
1564 config: {get_resource: AllNodesValidationConfig}
1565 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1567 CephStorageAllNodesValidationDeployment:
1568 type: OS::Heat::StructuredDeployments
1569 depends_on: CephStorageAllNodesDeployment
1571 name: CephStorageAllNodesValidationDeployment
1572 config: {get_resource: AllNodesValidationConfig}
1573 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1576 type: OS::TripleO::Tasks::UpdateWorkflow
1578 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1579 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1580 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1581 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1582 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1584 deploy_identifier: {get_param: DeployIdentifier}
1585 update_identifier: {get_param: UpdateIdentifier}
1587 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1588 # the nested template may configure each role differently (or not at all)
1589 AllNodesExtraConfig:
1590 type: OS::TripleO::AllNodesExtraConfig
1593 - ComputeAllNodesValidationDeployment
1594 - BlockStorageAllNodesValidationDeployment
1595 - ObjectStorageAllNodesValidationDeployment
1596 - CephStorageAllNodesValidationDeployment
1597 - ControllerAllNodesValidationDeployment
1599 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1600 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1601 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1602 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1603 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1605 # Nested stack deployment runs after all other controller deployments
1606 ControllerNodesPostDeployment:
1607 type: OS::TripleO::ControllerPostDeployment
1608 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1610 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1611 NodeConfigIdentifiers:
1612 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1613 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1614 deployment_identifier: {get_param: DeployIdentifier}
1615 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1617 ComputeNodesPostDeployment:
1618 type: OS::TripleO::ComputePostDeployment
1619 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1621 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1622 NodeConfigIdentifiers:
1623 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1624 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1625 deployment_identifier: {get_param: DeployIdentifier}
1627 ObjectStorageNodesPostDeployment:
1628 type: OS::TripleO::ObjectStoragePostDeployment
1629 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1631 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1632 NodeConfigIdentifiers:
1633 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1634 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1635 deployment_identifier: {get_param: DeployIdentifier}
1637 BlockStorageNodesPostDeployment:
1638 type: OS::TripleO::BlockStoragePostDeployment
1639 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1641 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1642 NodeConfigIdentifiers:
1643 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1644 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1645 deployment_identifier: {get_param: DeployIdentifier}
1647 CephStorageNodesPostDeployment:
1648 type: OS::TripleO::CephStoragePostDeployment
1649 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1651 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1652 NodeConfigIdentifiers:
1653 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1654 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1655 deployment_identifier: {get_param: DeployIdentifier}
1659 description: URL for the Overcloud Keystone service
1660 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1662 description: Keystone Admin VIP endpoint
1663 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1665 description: Controller VIP for public API endpoints
1666 value: {get_attr: [VipMap, net_ip_map, external]}
1668 description: VIP for Aodh API internal endpoint
1669 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1670 CeilometerInternalVip:
1671 description: VIP for Ceilometer API internal endpoint
1672 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1674 description: VIP for Cinder API internal endpoint
1675 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1677 description: VIP for Glance API internal endpoint
1678 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1680 description: VIP for Gnocchi API internal endpoint
1681 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1683 description: VIP for Heat API internal endpoint
1684 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1685 KeystoneInternalVip:
1686 description: VIP for Keystone API internal endpoint
1687 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1689 description: VIP for Neutron API internal endpoint
1690 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1692 description: VIP for Nova API internal endpoint
1693 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1695 description: VIP for Sahara API internal endpoint
1696 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1698 description: VIP for Swift Proxy internal endpoint
1699 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1702 Mapping of the resources with the needed info for their endpoints.
1703 This includes the protocol used, the IP, port and also a full
1704 representation of the URI.
1705 value: {get_attr: [EndpointMap, endpoint_map]}
1708 The content that should be appended to your /etc/hosts if you want to get
1709 hostname-based access to the deployed nodes (useful for testing without
1711 value: {get_attr: [allNodesConfig, hosts_entries]}