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"
475 description: The short name of the Gnocchi backend to use. Should be one
476 of swift, rbd or file
479 - allowed_values: ['swift', 'file', 'rbd']
480 GnocchiIndexerBackend:
482 description: The short name of the Gnocchi indexer backend to use.
485 description: The password for the gnocchi service account.
489 description: The password for the Heat service account, used by the Heat services.
492 HeatStackDomainAdminPassword:
493 description: Password for heat_stack_domain_admin user.
496 InstanceNameTemplate:
497 default: 'instance-%08x'
498 description: Template string to be used to generate instance names
502 description: Whether to manage IPtables rules.
506 description: Whether IPtables rules should be purged before setting up the ones.
508 MysqlInnodbBufferPoolSize:
510 Specifies the size of the buffer pool in megabytes. Setting to
511 zero should be interpreted as "no value" and will defer to the
516 description: Configures MySQL max_connections config setting
519 NeutronDnsmasqOptions:
520 default: 'dhcp-option-force=26,%MTU%'
522 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
523 to be set to the value of NeutronTenantMtu, which should be set to account
526 NeutronPublicInterfaceDefaultRoute:
528 description: A custom default route for the NeutronPublicInterface.
530 NeutronPublicInterfaceIP:
532 description: A custom IP address to put onto the NeutronPublicInterface.
534 NeutronPublicInterfaceRawDevice:
536 description: If set, the public interface is a vlan with this device as the raw device.
538 PublicVirtualInterface:
541 Specifies the interface where the public-facing virtual ip will be assigned.
542 This should be int_public when a VLAN is being used.
545 description: A random string to be used as a salt when hashing to determine mappings in the ring.
549 description: The password for the swift service account, used by the swift proxy services.
554 description: Value of mount_check in Swift account/container/object -server.conf
559 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
562 description: Partition Power to use when building Swift rings
567 description: How many replicas to use in the swift rings.
569 description: The password for the sahara service account.
573 # Compute-specific params
574 CeilometerComputeAgent:
575 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
579 - allowed_values: ['', Present]
583 HypervisorNeutronPhysicalBridge:
586 An OVS bridge to create on each hypervisor. This defaults to br-ex the
587 same as the control plane nodes, as we have a uniform configuration of
588 the openvswitch agent. Typically should not need to be changed.
590 HypervisorNeutronPublicInterface:
592 description: What interface to add to the HypervisorNeutronPhysicalBridge.
594 NeutronNetworkVLANRanges:
595 default: 'datacentre:1:1000'
597 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
598 Neutron documentation for permitted values. Defaults to permitting any
599 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
600 type: comma_delimited_list
603 default: libvirt.LibvirtDriver
604 NovaComputeExtraConfig:
607 NovaCompute specific configuration to inject into the cluster. Same
608 structure as ExtraConfig.
610 NovaComputeLibvirtType:
613 NovaComputeLibvirtVifDriver:
615 description: Libvirt VIF driver configuration for the network
617 NovaComputeSchedulerHints:
619 description: Optional scheduler hints to pass to nova
621 NovaEnableRbdBackend:
623 description: Whether to enable or not the Rbd backend for Nova
627 default: overcloud-full
629 - custom_constraint: glance.image
632 description: Name of integration bridge used by Open vSwitch
634 NovaSecurityGroupAPI:
636 description: The full class name of the security API class
638 OvercloudComputeFlavor:
639 description: Use this flavor
643 - custom_constraint: nova.flavor
646 NeutronTenantNetwork: tenant
647 CeilometerApiNetwork: internal_api
648 AodhApiNetwork: internal_api
649 GnocchiApiNetwork: internal_api
650 MongoDbNetwork: internal_api
651 CinderApiNetwork: internal_api
652 CinderIscsiNetwork: storage
653 GlanceApiNetwork: storage
654 GlanceRegistryNetwork: internal_api
655 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
656 KeystonePublicApiNetwork: internal_api
657 NeutronApiNetwork: internal_api
658 HeatApiNetwork: internal_api
659 NovaApiNetwork: internal_api
660 NovaMetadataNetwork: internal_api
661 NovaVncProxyNetwork: internal_api
662 SwiftMgmtNetwork: storage_mgmt
663 SwiftProxyNetwork: storage
664 SaharaApiNetwork: internal_api
665 HorizonNetwork: internal_api
666 MemcachedNetwork: internal_api
667 RabbitMqNetwork: internal_api
668 RedisNetwork: internal_api
669 MysqlNetwork: internal_api
670 CephClusterNetwork: storage_mgmt
671 CephPublicNetwork: storage
672 ControllerHostnameResolveNetwork: internal_api
673 ComputeHostnameResolveNetwork: internal_api
674 BlockStorageHostnameResolveNetwork: internal_api
675 ObjectStorageHostnameResolveNetwork: internal_api
676 CephStorageHostnameResolveNetwork: storage
677 description: Mapping of service_name -> network name. Typically set
678 via parameter_defaults in the resource registry.
683 - OS::TripleO::Services::Keystone
684 - OS::TripleO::Services::GlanceApi
685 - OS::TripleO::Services::GlanceRegistry
686 description: A list of service resources (configured in the Heat
687 resource_registry) which represent nested stacks
688 for each service that should get installed on the Controllers.
689 type: comma_delimited_list
691 # Block storage specific parameters
696 default: overcloud-full
698 OvercloudBlockStorageFlavor:
699 description: Flavor for block storage nodes to request when deploying.
703 - custom_constraint: nova.flavor
704 BlockStorageExtraConfig:
707 BlockStorage specific configuration to inject into the cluster. Same
708 structure as ExtraConfig.
710 BlockStorageSchedulerHints:
712 description: Optional scheduler hints to pass to nova
716 # Object storage specific parameters
720 OvercloudSwiftStorageFlavor:
721 description: Flavor for Swift storage nodes to request when deploying.
725 - custom_constraint: nova.flavor
727 default: overcloud-full
729 ObjectStorageExtraConfig:
732 ObjectStorage specific configuration to inject into the cluster. Same
733 structure as ExtraConfig.
735 ObjectStorageSchedulerHints:
737 description: Optional scheduler hints to pass to nova
740 # Ceph storage specific parameters
745 default: overcloud-full
747 OvercloudCephStorageFlavor:
749 description: Flavor for Ceph storage nodes to request when deploying.
752 - custom_constraint: nova.flavor
753 CephStorageExtraConfig:
756 CephStorage specific configuration to inject into the cluster. Same
757 structure as ExtraConfig.
759 CephStorageSchedulerHints:
761 description: Optional scheduler hints to pass to nova
765 # Hostname format for each role
766 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
767 # and %stackname% is replaced with OS::stack_name in the template below.
768 # If you want to use the heat generated names, pass '' (empty string).
769 ControllerHostnameFormat:
771 description: Format for Controller node hostnames
772 default: '%stackname%-controller-%index%'
773 ComputeHostnameFormat:
775 description: Format for Compute node hostnames
776 default: '%stackname%-novacompute-%index%'
777 BlockStorageHostnameFormat:
779 description: Format for BlockStorage node hostnames
780 default: '%stackname%-blockstorage-%index%'
781 ObjectStorageHostnameFormat:
783 description: Format for SwiftStorage node hostnames
784 default: '%stackname%-objectstorage-%index%'
785 CephStorageHostnameFormat:
787 description: Format for CephStorage node hostnames
788 default: '%stackname%-cephstorage-%index%'
790 # Identifiers to trigger tasks on nodes
795 Setting to a previously unused value during stack-update will trigger
796 package update on all nodes
801 Setting this to a unique value will re-run any deployment tasks which
802 perform configuration on a Heat stack-update.
804 # If you want to remove a specific node from a resource group, you can pass
805 # the node name or id as a <Group>RemovalPolicies parameter, for example:
806 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
807 ControllerRemovalPolicies:
811 List of resources to be removed from ControllerResourceGroup when
812 doing an update which requires removal of specific resources.
813 ComputeRemovalPolicies:
817 List of resources to be removed from ComputeResourceGroup when
818 doing an update which requires removal of specific resources.
819 BlockStorageRemovalPolicies:
823 List of resources to be removed from BlockStorageResourceGroup when
824 doing an update which requires removal of specific resources.
825 ObjectStorageRemovalPolicies:
829 List of resources to be removed from ObjectStorageResourceGroup when
830 doing an update which requires removal of specific resources.
831 CephStorageRemovalPolicies:
835 List of resources to be removed from CephStorageResourceGroup when
836 doing an update which requires removal of specific resources.
841 HeatAuthEncryptionKey:
842 type: OS::Heat::RandomString
845 type: OS::Heat::RandomString
850 type: OS::Heat::RandomString
855 type: OS::TripleO::EndpointMap
857 CloudName: {get_param: CloudName}
858 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
859 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
860 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
861 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
862 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
863 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
864 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
865 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
866 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
867 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
868 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
869 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
870 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
871 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
872 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
874 ControllerServiceChain:
875 type: OS::TripleO::Services
877 Services: {get_param: ControllerServices}
878 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
879 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
882 type: OS::Heat::ResourceGroup
885 count: {get_param: ControllerCount}
886 removal_policies: {get_param: ControllerRemovalPolicies}
888 type: OS::TripleO::Controller
890 AdminPassword: {get_param: AdminPassword}
891 AodhPassword: {get_param: AodhPassword}
892 CeilometerBackend: {get_param: CeilometerBackend}
893 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
894 CeilometerPassword: {get_param: CeilometerPassword}
895 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
896 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
897 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
898 CinderNfsServers: {get_param: CinderNfsServers}
899 CinderPassword: {get_param: CinderPassword}
900 CinderISCSIHelper: {get_param: CinderISCSIHelper}
901 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
902 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
903 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
904 CloudDomain: {get_param: CloudDomain}
905 ControlVirtualInterface: {get_param: ControlVirtualInterface}
906 ControllerExtraConfig: {get_param: controllerExtraConfig}
907 CorosyncIPv6: {get_param: CorosyncIPv6}
908 Debug: {get_param: Debug}
909 EnableFencing: {get_param: EnableFencing}
910 ManageFirewall: {get_param: ManageFirewall}
911 PurgeFirewallRules: {get_param: PurgeFirewallRules}
912 EnableGalera: {get_param: EnableGalera}
913 EnableCephStorage: {get_param: ControllerEnableCephStorage}
914 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
915 ExtraConfig: {get_param: ExtraConfig}
916 FencingConfig: {get_param: FencingConfig}
917 Flavor: {get_param: OvercloudControlFlavor}
918 GnocchiPassword: {get_param: GnocchiPassword}
919 GnocchiBackend: {get_param: GnocchiBackend}
920 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
921 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
922 HeatPassword: {get_param: HeatPassword}
923 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
924 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
925 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
926 HorizonSecret: {get_resource: HorizonSecret}
927 Image: {get_param: controllerImage}
928 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
929 InstanceNameTemplate: {get_param: InstanceNameTemplate}
930 KeyName: {get_param: KeyName}
931 MemcachedIPv6: {get_param: MemcachedIPv6}
932 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
933 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
934 MysqlMaxConnections: {get_param: MysqlMaxConnections}
935 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
936 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
937 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
938 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
939 NeutronTenantMtu: {get_param: NeutronTenantMtu}
940 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
941 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
942 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
943 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
944 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
945 NeutronPublicInterface: {get_param: NeutronPublicInterface}
946 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
947 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
948 NeutronPassword: {get_param: NeutronPassword}
949 NeutronDnsmasqOptions:
951 template: {get_param: NeutronDnsmasqOptions}
953 '%MTU%': {get_param: NeutronTenantMtu}
954 NeutronDVR: {get_param: NeutronDVR}
955 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
956 NeutronAgentMode: {get_param: NeutronAgentMode}
957 NeutronCorePlugin: {get_param: NeutronCorePlugin}
958 NeutronServicePlugins: {get_param: NeutronServicePlugins}
959 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
960 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
961 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
962 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
963 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
964 NeutronL3HA: {get_param: NeutronL3HA}
965 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
966 NeutronNetworkType: {get_param: NeutronNetworkType}
967 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
968 NovaIPv6: {get_param: NovaIPv6}
969 NovaPassword: {get_param: NovaPassword}
970 NtpServer: {get_param: NtpServer}
971 MongoDbNoJournal: {get_param: MongoDbNoJournal}
972 MongoDbIPv6: {get_param: MongoDbIPv6}
973 PcsdPassword: {get_resource: PcsdPassword}
974 PublicVirtualInterface: {get_param: PublicVirtualInterface}
975 RabbitPassword: {get_param: RabbitPassword}
976 RabbitUserName: {get_param: RabbitUserName}
977 RabbitCookie: {get_attr: [RabbitCookie, value]}
978 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
979 RabbitClientPort: {get_param: RabbitClientPort}
980 RabbitFDLimit: {get_param: RabbitFDLimit}
981 RabbitIPv6: {get_param: RabbitIPv6}
982 RedisPassword: {get_param: RedisPassword}
983 SaharaPassword: {get_param: SaharaPassword}
984 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
985 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
986 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
987 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
988 SwiftHashSuffix: {get_param: SwiftHashSuffix}
989 SwiftMountCheck: {get_param: SwiftMountCheck}
990 SwiftMinPartHours: {get_param: SwiftMinPartHours}
991 SwiftPartPower: {get_param: SwiftPartPower}
992 SwiftPassword: {get_param: SwiftPassword}
993 SwiftReplicas: { get_param: SwiftReplicas}
994 TimeZone: {get_param: TimeZone}
995 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
996 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
997 ServiceNetMap: {get_param: ServiceNetMap}
998 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
999 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1000 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1001 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1002 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1003 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1004 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1005 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1006 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1007 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1008 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1009 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1010 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1011 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1012 UpdateIdentifier: {get_param: UpdateIdentifier}
1015 template: {get_param: ControllerHostnameFormat}
1017 '%stackname%': {get_param: 'OS::stack_name'}
1018 NodeIndex: '%index%'
1019 ServerMetadata: {get_param: ServerMetadata}
1020 SchedulerHints: {get_param: ControllerSchedulerHints}
1021 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
1024 type: OS::Heat::ResourceGroup
1025 depends_on: Networks
1027 count: {get_param: ComputeCount}
1028 removal_policies: {get_param: ComputeRemovalPolicies}
1030 type: OS::TripleO::Compute
1032 AdminPassword: {get_param: AdminPassword}
1033 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1034 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1035 CeilometerPassword: {get_param: CeilometerPassword}
1036 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1037 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1038 Debug: {get_param: Debug}
1039 ExtraConfig: {get_param: ExtraConfig}
1040 Flavor: {get_param: OvercloudComputeFlavor}
1041 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1042 Image: {get_param: NovaImage}
1043 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1044 KeyName: {get_param: KeyName}
1045 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1046 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1047 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1048 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1049 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1050 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1051 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1052 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1053 NeutronNetworkType: {get_param: NeutronNetworkType}
1054 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1055 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1056 NeutronPassword: {get_param: NeutronPassword}
1057 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1058 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1059 NeutronDVR: {get_param: NeutronDVR}
1060 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1061 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1062 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1063 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1064 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1065 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1066 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1067 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1068 # L3 HA and Failover is not relevant for Computes, should be removed
1069 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1070 NeutronL3HA: {get_param: NeutronL3HA}
1071 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1072 NovaComputeDriver: {get_param: NovaComputeDriver}
1073 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1074 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1075 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1076 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1077 NovaIPv6: {get_param: NovaIPv6}
1078 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1079 NovaPassword: {get_param: NovaPassword}
1080 NovaOVSBridge: {get_param: NovaOVSBridge}
1081 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1082 NtpServer: {get_param: NtpServer}
1083 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1084 RabbitPassword: {get_param: RabbitPassword}
1085 RabbitUserName: {get_param: RabbitUserName}
1086 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1087 RabbitClientPort: {get_param: RabbitClientPort}
1088 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1089 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1090 ServiceNetMap: {get_param: ServiceNetMap}
1091 TimeZone: {get_param: TimeZone}
1092 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1093 UpdateIdentifier: {get_param: UpdateIdentifier}
1096 template: {get_param: ComputeHostnameFormat}
1098 '%stackname%': {get_param: 'OS::stack_name'}
1099 CloudDomain: {get_param: CloudDomain}
1100 ServerMetadata: {get_param: ServerMetadata}
1101 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1102 NodeIndex: '%index%'
1105 type: OS::Heat::ResourceGroup
1106 depends_on: Networks
1108 count: {get_param: BlockStorageCount}
1109 removal_policies: {get_param: BlockStorageRemovalPolicies}
1111 type: OS::TripleO::BlockStorage
1113 Debug: {get_param: Debug}
1114 Image: {get_param: BlockStorageImage}
1115 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1116 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1117 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1118 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1119 CinderPassword: {get_param: CinderPassword}
1120 KeyName: {get_param: KeyName}
1121 Flavor: {get_param: OvercloudBlockStorageFlavor}
1122 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1123 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1124 RabbitPassword: {get_param: RabbitPassword}
1125 RabbitUserName: {get_param: RabbitUserName}
1126 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1127 RabbitClientPort: {get_param: RabbitClientPort}
1128 TimeZone: {get_param: TimeZone}
1129 NtpServer: {get_param: NtpServer}
1130 UpdateIdentifier: {get_param: UpdateIdentifier}
1133 template: {get_param: BlockStorageHostnameFormat}
1135 '%stackname%': {get_param: 'OS::stack_name'}
1136 ServiceNetMap: {get_param: ServiceNetMap}
1137 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1138 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1139 ExtraConfig: {get_param: ExtraConfig}
1140 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1141 CloudDomain: {get_param: CloudDomain}
1142 ServerMetadata: {get_param: ServerMetadata}
1143 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1144 NodeIndex: '%index%'
1147 type: OS::Heat::ResourceGroup
1148 depends_on: Networks
1150 count: {get_param: ObjectStorageCount}
1151 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1153 type: OS::TripleO::ObjectStorage
1155 KeyName: {get_param: KeyName}
1156 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1157 HashSuffix: {get_param: SwiftHashSuffix}
1158 MountCheck: {get_param: SwiftMountCheck}
1159 MinPartHours: {get_param: SwiftMinPartHours}
1160 PartPower: {get_param: SwiftPartPower}
1161 Image: {get_param: SwiftStorageImage}
1162 Replicas: { get_param: SwiftReplicas}
1163 TimeZone: {get_param: TimeZone}
1164 NtpServer: {get_param: NtpServer}
1165 UpdateIdentifier: {get_param: UpdateIdentifier}
1166 ServiceNetMap: {get_param: ServiceNetMap}
1169 template: {get_param: ObjectStorageHostnameFormat}
1171 '%stackname%': {get_param: 'OS::stack_name'}
1172 ExtraConfig: {get_param: ExtraConfig}
1173 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1174 CloudDomain: {get_param: CloudDomain}
1175 ServerMetadata: {get_param: ServerMetadata}
1176 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1177 NodeIndex: '%index%'
1180 type: OS::Heat::ResourceGroup
1181 depends_on: Networks
1183 count: {get_param: CephStorageCount}
1184 removal_policies: {get_param: CephStorageRemovalPolicies}
1186 type: OS::TripleO::CephStorage
1188 Image: {get_param: CephStorageImage}
1189 KeyName: {get_param: KeyName}
1190 Flavor: {get_param: OvercloudCephStorageFlavor}
1191 NtpServer: {get_param: NtpServer}
1192 ServiceNetMap: {get_param: ServiceNetMap}
1193 TimeZone: {get_param: TimeZone}
1194 UpdateIdentifier: {get_param: UpdateIdentifier}
1197 template: {get_param: CephStorageHostnameFormat}
1199 '%stackname%': {get_param: 'OS::stack_name'}
1200 ExtraConfig: {get_param: ExtraConfig}
1201 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1202 CloudDomain: {get_param: CloudDomain}
1203 ServerMetadata: {get_param: ServerMetadata}
1204 SchedulerHints: {get_param: CephStorageSchedulerHints}
1205 NodeIndex: '%index%'
1207 ControllerIpListMap:
1208 type: OS::TripleO::Network::Ports::NetIpListMap
1210 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1211 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1212 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1213 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1214 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1215 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1216 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1219 type: OS::TripleO::AllNodes::SoftwareConfig
1221 compute_hosts: {get_attr: [Compute, hosts_entry]}
1222 controller_hosts: {get_attr: [Controller, hosts_entry]}
1223 controller_ips: {get_attr: [Controller, ip_address]}
1224 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1225 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1226 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1227 controller_names: {get_attr: [Controller, hostname]}
1228 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1229 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1230 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1231 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1232 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1233 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1234 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1235 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1236 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1237 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1238 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1239 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1240 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1241 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1242 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1243 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1244 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1245 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1246 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1247 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1248 DeployIdentifier: {get_param: DeployIdentifier}
1249 UpdateIdentifier: {get_param: UpdateIdentifier}
1252 type: OS::Heat::RandomString
1256 MysqlClusterUniquePart:
1257 type: OS::Heat::RandomString
1262 type: OS::Heat::RandomString
1265 salt: {get_param: RabbitCookieSalt}
1267 # creates the network architecture
1269 type: OS::TripleO::Network
1272 type: OS::Neutron::Port
1273 depends_on: Networks
1275 name: control_virtual_ip
1276 network: {get_param: NeutronControlPlaneID}
1277 fixed_ips: {get_param: ControlFixedIPs}
1278 replacement_policy: AUTO
1281 depends_on: Networks
1282 type: OS::TripleO::Network::Ports::RedisVipPort
1284 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1285 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1286 PortName: redis_virtual_ip
1287 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1290 # The public VIP is on the External net, falls back to ctlplane
1292 depends_on: Networks
1293 type: OS::TripleO::Network::Ports::ExternalVipPort
1295 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1296 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1297 PortName: public_virtual_ip
1298 FixedIPs: {get_param: PublicVirtualFixedIPs}
1300 InternalApiVirtualIP:
1301 depends_on: Networks
1302 type: OS::TripleO::Network::Ports::InternalApiVipPort
1304 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1305 PortName: internal_api_virtual_ip
1306 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1309 depends_on: Networks
1310 type: OS::TripleO::Network::Ports::StorageVipPort
1312 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1313 PortName: storage_virtual_ip
1314 FixedIPs: {get_param: StorageVirtualFixedIPs}
1316 StorageMgmtVirtualIP:
1317 depends_on: Networks
1318 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1320 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1321 PortName: storage_management_virtual_ip
1322 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1325 type: OS::TripleO::Network::Ports::NetVipMap
1327 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1328 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1329 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1330 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1331 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1332 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1333 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1334 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1335 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1336 # No tenant or management VIP required
1339 type: OS::TripleO::VipConfig
1342 type: OS::Heat::StructuredDeployments
1345 config: {get_resource: VipConfig}
1346 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1348 # service VIP mappings
1349 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1350 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1351 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1352 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1353 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1354 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1355 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1356 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1357 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1358 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1359 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1360 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1361 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1362 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1363 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1364 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1365 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1366 # direct configuration of Virtual IPs for each network
1367 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1368 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1369 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1370 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1371 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1372 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1374 ControllerBootstrapNodeConfig:
1375 type: OS::TripleO::BootstrapNode::SoftwareConfig
1377 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1378 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1380 ControllerBootstrapNodeDeployment:
1381 type: OS::Heat::StructuredDeployments
1383 name: ControllerBootstrapNodeDeployment
1384 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1385 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1387 ControllerSwiftDeployment:
1388 type: OS::Heat::StructuredDeployments
1390 name: ControllerSwiftDeployment
1391 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1392 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1394 ObjectStorageSwiftDeployment:
1395 type: OS::Heat::StructuredDeployments
1397 name: ObjectStorageSwiftDeployment
1398 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1399 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1401 SwiftDevicesAndProxyConfig:
1402 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1404 controller_swift_devices: {get_attr: [Controller, swift_device]}
1405 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1406 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1408 ComputeCephDeployment:
1409 type: OS::Heat::StructuredDeployments
1411 name: ComputeCephDeployment
1412 config: {get_attr: [CephClusterConfig, config_id]}
1413 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1415 ControllerCephDeployment:
1416 type: OS::Heat::StructuredDeployments
1418 name: ControllerCephDeployment
1419 config: {get_attr: [CephClusterConfig, config_id]}
1420 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1422 CephStorageCephDeployment:
1423 type: OS::Heat::StructuredDeployments
1425 name: CephStorageCephDeployment
1426 config: {get_attr: [CephClusterConfig, config_id]}
1427 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1430 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1432 ceph_storage_count: {get_param: CephStorageCount}
1433 ceph_fsid: {get_param: CephClusterFSID}
1434 ceph_mon_key: {get_param: CephMonKey}
1435 ceph_admin_key: {get_param: CephAdminKey}
1436 ceph_client_key: {get_param: CephClientKey}
1437 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1438 ceph_mon_names: {get_attr: [Controller, hostname]}
1439 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1441 ControllerClusterConfig:
1442 type: OS::Heat::StructuredConfig
1444 group: os-apply-config
1447 nodes: {get_attr: [Controller, corosync_node]}
1451 nodes: {get_attr: [Controller, hostname]}
1453 nodes: {get_attr: [Controller, corosync_node]}
1455 nodes: {get_attr: [Controller, corosync_node]}
1457 ControllerClusterDeployment:
1458 type: OS::Heat::StructuredDeployments
1460 name: ControllerClusterDeployment
1461 config: {get_resource: ControllerClusterConfig}
1462 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1464 ControllerAllNodesDeployment:
1465 type: OS::Heat::StructuredDeployments
1467 name: ControllerAllNodesDeployment
1468 config: {get_attr: [allNodesConfig, config_id]}
1469 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1471 ComputeAllNodesDeployment:
1472 type: OS::Heat::StructuredDeployments
1474 name: ComputeAllNodesDeployment
1475 config: {get_attr: [allNodesConfig, config_id]}
1476 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1478 BlockStorageAllNodesDeployment:
1479 type: OS::Heat::StructuredDeployments
1481 name: BlockStorageAllNodesDeployment
1482 config: {get_attr: [allNodesConfig, config_id]}
1483 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1485 ObjectStorageAllNodesDeployment:
1486 type: OS::Heat::StructuredDeployments
1488 name: ObjectStorageAllNodesDeployment
1489 config: {get_attr: [allNodesConfig, config_id]}
1490 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1492 CephStorageAllNodesDeployment:
1493 type: OS::Heat::StructuredDeployments
1495 name: CephStorageAllNodesDeployment
1496 config: {get_attr: [allNodesConfig, config_id]}
1497 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1499 # All Nodes Validations
1500 AllNodesValidationConfig:
1501 type: OS::TripleO::AllNodes::Validation
1506 - - {get_attr: [Controller, resource.0.external_ip_address]}
1507 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1508 - {get_attr: [Controller, resource.0.storage_ip_address]}
1509 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1510 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1512 ControllerAllNodesValidationDeployment:
1513 type: OS::Heat::StructuredDeployments
1514 depends_on: ControllerAllNodesDeployment
1516 name: ControllerAllNodesValidationDeployment
1517 config: {get_resource: AllNodesValidationConfig}
1518 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1520 ComputeAllNodesValidationDeployment:
1521 type: OS::Heat::StructuredDeployments
1522 depends_on: ComputeAllNodesDeployment
1524 name: ComputeAllNodesValidationDeployment
1525 config: {get_resource: AllNodesValidationConfig}
1526 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1528 BlockStorageAllNodesValidationDeployment:
1529 type: OS::Heat::StructuredDeployments
1530 depends_on: BlockStorageAllNodesDeployment
1532 name: BlockStorageAllNodesValidationDeployment
1533 config: {get_resource: AllNodesValidationConfig}
1534 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1536 ObjectStorageAllNodesValidationDeployment:
1537 type: OS::Heat::StructuredDeployments
1538 depends_on: ObjectStorageAllNodesDeployment
1540 name: ObjectStorageAllNodesValidationDeployment
1541 config: {get_resource: AllNodesValidationConfig}
1542 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1544 CephStorageAllNodesValidationDeployment:
1545 type: OS::Heat::StructuredDeployments
1546 depends_on: CephStorageAllNodesDeployment
1548 name: CephStorageAllNodesValidationDeployment
1549 config: {get_resource: AllNodesValidationConfig}
1550 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1553 type: OS::TripleO::Tasks::UpdateWorkflow
1555 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1556 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1557 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1558 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1559 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1561 deploy_identifier: {get_param: DeployIdentifier}
1562 update_identifier: {get_param: UpdateIdentifier}
1564 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1565 # the nested template may configure each role differently (or not at all)
1566 AllNodesExtraConfig:
1567 type: OS::TripleO::AllNodesExtraConfig
1570 - ComputeAllNodesValidationDeployment
1571 - BlockStorageAllNodesValidationDeployment
1572 - ObjectStorageAllNodesValidationDeployment
1573 - CephStorageAllNodesValidationDeployment
1574 - ControllerAllNodesValidationDeployment
1576 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1577 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1578 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1579 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1580 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1582 # Nested stack deployment runs after all other controller deployments
1583 ControllerNodesPostDeployment:
1584 type: OS::TripleO::ControllerPostDeployment
1585 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1587 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1588 NodeConfigIdentifiers:
1589 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1590 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1591 deployment_identifier: {get_param: DeployIdentifier}
1592 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1594 ComputeNodesPostDeployment:
1595 type: OS::TripleO::ComputePostDeployment
1596 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1598 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1599 NodeConfigIdentifiers:
1600 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1601 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1602 deployment_identifier: {get_param: DeployIdentifier}
1604 ObjectStorageNodesPostDeployment:
1605 type: OS::TripleO::ObjectStoragePostDeployment
1606 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1608 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1609 NodeConfigIdentifiers:
1610 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1611 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1612 deployment_identifier: {get_param: DeployIdentifier}
1614 BlockStorageNodesPostDeployment:
1615 type: OS::TripleO::BlockStoragePostDeployment
1616 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1618 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1619 NodeConfigIdentifiers:
1620 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1621 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1622 deployment_identifier: {get_param: DeployIdentifier}
1624 CephStorageNodesPostDeployment:
1625 type: OS::TripleO::CephStoragePostDeployment
1626 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1628 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1629 NodeConfigIdentifiers:
1630 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1631 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1632 deployment_identifier: {get_param: DeployIdentifier}
1636 description: URL for the Overcloud Keystone service
1637 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1639 description: Keystone Admin VIP endpoint
1640 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1642 description: Controller VIP for public API endpoints
1643 value: {get_attr: [VipMap, net_ip_map, external]}
1645 description: VIP for Aodh API internal endpoint
1646 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1647 CeilometerInternalVip:
1648 description: VIP for Ceilometer API internal endpoint
1649 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1651 description: VIP for Cinder API internal endpoint
1652 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1654 description: VIP for Glance API internal endpoint
1655 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1657 description: VIP for Gnocchi API internal endpoint
1658 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1660 description: VIP for Heat API internal endpoint
1661 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1662 KeystoneInternalVip:
1663 description: VIP for Keystone API internal endpoint
1664 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1666 description: VIP for Neutron API internal endpoint
1667 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1669 description: VIP for Nova API internal endpoint
1670 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1672 description: VIP for Sahara API internal endpoint
1673 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1675 description: VIP for Swift Proxy internal endpoint
1676 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1679 Mapping of the resources with the needed info for their endpoints.
1680 This includes the protocol used, the IP, port and also a full
1681 representation of the URI.
1682 value: {get_attr: [EndpointMap, endpoint_map]}
1685 The content that should be appended to your /etc/hosts if you want to get
1686 hostname-based access to the deployed nodes (useful for testing without
1688 value: {get_attr: [allNodesConfig, hosts_entries]}