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 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
400 default: overcloud-full
402 - custom_constraint: glance.image
403 OvercloudControlFlavor:
404 description: Flavor for control nodes to request when deploying.
408 - custom_constraint: nova.flavor
409 ControlVirtualInterface:
411 description: Interface where virtual ip will be assigned.
415 description: Whether to enable fencing in Pacemaker or not.
419 description: Whether to use Galera instead of regular MariaDB.
421 ControllerEnableCephStorage:
423 description: Whether to deploy Ceph Storage (OSD) on the Controller
425 ControllerEnableSwiftStorage:
427 description: Whether to enable Swift Storage on the Controller
429 ControllerSchedulerHints:
431 description: Optional scheduler hints to pass to nova
436 Additional configuration to inject into the cluster. The format required
437 may be implementation specific, e.g puppet hieradata. Any role specific
438 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
443 Pacemaker fencing configuration. The JSON should have
444 the following structure:
448 "agent": "AGENT_NAME",
449 "host_mac": "HOST_MAC_ADDRESS",
450 "params": {"PARAM_NAME": "PARAM_VALUE"}
458 "agent": "fence_xvm",
459 "host_mac": "52:54:00:aa:bb:cc",
461 "multicast_address": "225.0.0.12",
462 "port": "baremetal_0",
464 "manage_key_file": true,
465 "key_file": "/etc/fence_xvm.key",
466 "key_file_password": "abcdef"
474 description: The short name of the Gnocchi backend to use. Should be one
475 of swift, rbd or file
478 - allowed_values: ['swift', 'file', 'rbd']
479 GnocchiIndexerBackend:
481 description: The short name of the Gnocchi indexer backend to use.
484 description: The password for the gnocchi service account.
488 description: The password for the Heat service account, used by the Heat services.
491 HeatStackDomainAdminPassword:
492 description: Password for heat_stack_domain_admin user.
495 InstanceNameTemplate:
496 default: 'instance-%08x'
497 description: Template string to be used to generate instance names
501 description: Whether to manage IPtables rules.
505 description: Whether IPtables rules should be purged before setting up the ones.
507 MysqlInnodbBufferPoolSize:
509 Specifies the size of the buffer pool in megabytes. Setting to
510 zero should be interpreted as "no value" and will defer to the
515 description: Configures MySQL max_connections config setting
518 NeutronDnsmasqOptions:
519 default: 'dhcp-option-force=26,%MTU%'
521 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
522 to be set to the value of NeutronTenantMtu, which should be set to account
525 NeutronPublicInterfaceDefaultRoute:
527 description: A custom default route for the NeutronPublicInterface.
529 NeutronPublicInterfaceIP:
531 description: A custom IP address to put onto the NeutronPublicInterface.
533 NeutronPublicInterfaceRawDevice:
535 description: If set, the public interface is a vlan with this device as the raw device.
537 PublicVirtualInterface:
540 Specifies the interface where the public-facing virtual ip will be assigned.
541 This should be int_public when a VLAN is being used.
544 description: A random string to be used as a salt when hashing to determine mappings in the ring.
548 description: The password for the swift service account, used by the swift proxy services.
553 description: Value of mount_check in Swift account/container/object -server.conf
558 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
561 description: Partition Power to use when building Swift rings
566 description: How many replicas to use in the swift rings.
568 description: The password for the sahara service account.
572 # Compute-specific params
573 CeilometerComputeAgent:
574 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
578 - allowed_values: ['', Present]
582 HypervisorNeutronPhysicalBridge:
585 An OVS bridge to create on each hypervisor. This defaults to br-ex the
586 same as the control plane nodes, as we have a uniform configuration of
587 the openvswitch agent. Typically should not need to be changed.
589 HypervisorNeutronPublicInterface:
591 description: What interface to add to the HypervisorNeutronPhysicalBridge.
593 NeutronNetworkVLANRanges:
594 default: 'datacentre:1:1000'
596 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
597 Neutron documentation for permitted values. Defaults to permitting any
598 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
599 type: comma_delimited_list
602 default: libvirt.LibvirtDriver
603 NovaComputeExtraConfig:
606 NovaCompute specific configuration to inject into the cluster. Same
607 structure as ExtraConfig.
609 NovaComputeLibvirtType:
612 NovaComputeLibvirtVifDriver:
614 description: Libvirt VIF driver configuration for the network
616 NovaComputeSchedulerHints:
618 description: Optional scheduler hints to pass to nova
620 NovaEnableRbdBackend:
622 description: Whether to enable or not the Rbd backend for Nova
626 default: overcloud-full
628 - custom_constraint: glance.image
631 description: Name of integration bridge used by Open vSwitch
633 NovaSecurityGroupAPI:
635 description: The full class name of the security API class
637 OvercloudComputeFlavor:
638 description: Use this flavor
642 - custom_constraint: nova.flavor
645 NeutronTenantNetwork: tenant
646 CeilometerApiNetwork: internal_api
647 AodhApiNetwork: internal_api
648 GnocchiApiNetwork: internal_api
649 MongoDbNetwork: internal_api
650 CinderApiNetwork: internal_api
651 CinderIscsiNetwork: storage
652 GlanceApiNetwork: storage
653 GlanceRegistryNetwork: internal_api
654 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
655 KeystonePublicApiNetwork: internal_api
656 NeutronApiNetwork: internal_api
657 HeatApiNetwork: internal_api
658 NovaApiNetwork: internal_api
659 NovaMetadataNetwork: internal_api
660 NovaVncProxyNetwork: internal_api
661 SwiftMgmtNetwork: storage_mgmt
662 SwiftProxyNetwork: storage
663 SaharaApiNetwork: internal_api
664 HorizonNetwork: internal_api
665 MemcachedNetwork: internal_api
666 RabbitMqNetwork: internal_api
667 RedisNetwork: internal_api
668 MysqlNetwork: internal_api
669 CephClusterNetwork: storage_mgmt
670 CephPublicNetwork: storage
671 ControllerHostnameResolveNetwork: internal_api
672 ComputeHostnameResolveNetwork: internal_api
673 BlockStorageHostnameResolveNetwork: internal_api
674 ObjectStorageHostnameResolveNetwork: internal_api
675 CephStorageHostnameResolveNetwork: storage
676 description: Mapping of service_name -> network name. Typically set
677 via parameter_defaults in the resource registry.
682 - OS::TripleO::Services::Keystone
683 - OS::TripleO::Services::GlanceApi
684 - OS::TripleO::Services::GlanceRegistry
685 description: A list of service resources (configured in the Heat
686 resource_registry) which represent nested stacks
687 for each service that should get installed on the Controllers.
688 type: comma_delimited_list
690 # Block storage specific parameters
695 default: overcloud-full
697 OvercloudBlockStorageFlavor:
698 description: Flavor for block storage nodes to request when deploying.
702 - custom_constraint: nova.flavor
703 BlockStorageExtraConfig:
706 BlockStorage specific configuration to inject into the cluster. Same
707 structure as ExtraConfig.
709 BlockStorageSchedulerHints:
711 description: Optional scheduler hints to pass to nova
715 # Object storage specific parameters
719 OvercloudSwiftStorageFlavor:
720 description: Flavor for Swift storage nodes to request when deploying.
724 - custom_constraint: nova.flavor
726 default: overcloud-full
728 ObjectStorageExtraConfig:
731 ObjectStorage specific configuration to inject into the cluster. Same
732 structure as ExtraConfig.
734 ObjectStorageSchedulerHints:
736 description: Optional scheduler hints to pass to nova
739 # Ceph storage specific parameters
744 default: overcloud-full
746 OvercloudCephStorageFlavor:
748 description: Flavor for Ceph storage nodes to request when deploying.
751 - custom_constraint: nova.flavor
752 CephStorageExtraConfig:
755 CephStorage specific configuration to inject into the cluster. Same
756 structure as ExtraConfig.
758 CephStorageSchedulerHints:
760 description: Optional scheduler hints to pass to nova
764 # Hostname format for each role
765 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
766 # and %stackname% is replaced with OS::stack_name in the template below.
767 # If you want to use the heat generated names, pass '' (empty string).
768 ControllerHostnameFormat:
770 description: Format for Controller node hostnames
771 default: '%stackname%-controller-%index%'
772 ComputeHostnameFormat:
774 description: Format for Compute node hostnames
775 default: '%stackname%-novacompute-%index%'
776 BlockStorageHostnameFormat:
778 description: Format for BlockStorage node hostnames
779 default: '%stackname%-blockstorage-%index%'
780 ObjectStorageHostnameFormat:
782 description: Format for SwiftStorage node hostnames
783 default: '%stackname%-objectstorage-%index%'
784 CephStorageHostnameFormat:
786 description: Format for CephStorage node hostnames
787 default: '%stackname%-cephstorage-%index%'
789 # Identifiers to trigger tasks on nodes
794 Setting to a previously unused value during stack-update will trigger
795 package update on all nodes
800 Setting this to a unique value will re-run any deployment tasks which
801 perform configuration on a Heat stack-update.
803 # If you want to remove a specific node from a resource group, you can pass
804 # the node name or id as a <Group>RemovalPolicies parameter, for example:
805 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
806 ControllerRemovalPolicies:
810 List of resources to be removed from ControllerResourceGroup when
811 doing an update which requires removal of specific resources.
812 ComputeRemovalPolicies:
816 List of resources to be removed from ComputeResourceGroup when
817 doing an update which requires removal of specific resources.
818 BlockStorageRemovalPolicies:
822 List of resources to be removed from BlockStorageResourceGroup when
823 doing an update which requires removal of specific resources.
824 ObjectStorageRemovalPolicies:
828 List of resources to be removed from ObjectStorageResourceGroup when
829 doing an update which requires removal of specific resources.
830 CephStorageRemovalPolicies:
834 List of resources to be removed from CephStorageResourceGroup when
835 doing an update which requires removal of specific resources.
839 description: Do not use deprecated params, they will be removed.
841 - controllerExtraConfig
846 HeatAuthEncryptionKey:
847 type: OS::Heat::RandomString
850 type: OS::Heat::RandomString
855 type: OS::Heat::RandomString
860 type: OS::TripleO::EndpointMap
862 CloudName: {get_param: CloudName}
863 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
864 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
865 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
866 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
867 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
868 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
869 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
870 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
871 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
872 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
873 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
874 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
875 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
876 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
877 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
879 ControllerServiceChain:
880 type: OS::TripleO::Services
882 Services: {get_param: ControllerServices}
883 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
884 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
887 type: OS::Heat::ResourceGroup
890 count: {get_param: ControllerCount}
891 removal_policies: {get_param: ControllerRemovalPolicies}
893 type: OS::TripleO::Controller
895 AdminPassword: {get_param: AdminPassword}
896 AodhPassword: {get_param: AodhPassword}
897 CeilometerBackend: {get_param: CeilometerBackend}
898 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
899 CeilometerPassword: {get_param: CeilometerPassword}
900 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
901 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
902 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
903 CinderNfsServers: {get_param: CinderNfsServers}
904 CinderPassword: {get_param: CinderPassword}
905 CinderISCSIHelper: {get_param: CinderISCSIHelper}
906 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
907 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
908 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
909 CloudDomain: {get_param: CloudDomain}
910 ControlVirtualInterface: {get_param: ControlVirtualInterface}
911 controllerExtraConfig: {get_param: controllerExtraConfig}
912 CorosyncIPv6: {get_param: CorosyncIPv6}
913 Debug: {get_param: Debug}
914 EnableFencing: {get_param: EnableFencing}
915 ManageFirewall: {get_param: ManageFirewall}
916 PurgeFirewallRules: {get_param: PurgeFirewallRules}
917 EnableGalera: {get_param: EnableGalera}
918 EnableCephStorage: {get_param: ControllerEnableCephStorage}
919 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
920 ExtraConfig: {get_param: ExtraConfig}
921 FencingConfig: {get_param: FencingConfig}
922 Flavor: {get_param: OvercloudControlFlavor}
923 GnocchiPassword: {get_param: GnocchiPassword}
924 GnocchiBackend: {get_param: GnocchiBackend}
925 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
926 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
927 HeatPassword: {get_param: HeatPassword}
928 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
929 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
930 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
931 HorizonSecret: {get_resource: HorizonSecret}
932 Image: {get_param: controllerImage}
933 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
934 InstanceNameTemplate: {get_param: InstanceNameTemplate}
935 KeyName: {get_param: KeyName}
936 MemcachedIPv6: {get_param: MemcachedIPv6}
937 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
938 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
939 MysqlMaxConnections: {get_param: MysqlMaxConnections}
940 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
941 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
942 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
943 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
944 NeutronTenantMtu: {get_param: NeutronTenantMtu}
945 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
946 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
947 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
948 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
949 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
950 NeutronPublicInterface: {get_param: NeutronPublicInterface}
951 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
952 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
953 NeutronPassword: {get_param: NeutronPassword}
954 NeutronDnsmasqOptions:
956 template: {get_param: NeutronDnsmasqOptions}
958 '%MTU%': {get_param: NeutronTenantMtu}
959 NeutronDVR: {get_param: NeutronDVR}
960 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
961 NeutronAgentMode: {get_param: NeutronAgentMode}
962 NeutronCorePlugin: {get_param: NeutronCorePlugin}
963 NeutronServicePlugins: {get_param: NeutronServicePlugins}
964 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
965 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
966 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
967 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
968 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
969 NeutronL3HA: {get_param: NeutronL3HA}
970 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
971 NeutronNetworkType: {get_param: NeutronNetworkType}
972 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
973 NovaIPv6: {get_param: NovaIPv6}
974 NovaPassword: {get_param: NovaPassword}
975 NtpServer: {get_param: NtpServer}
976 MongoDbNoJournal: {get_param: MongoDbNoJournal}
977 MongoDbIPv6: {get_param: MongoDbIPv6}
978 PcsdPassword: {get_resource: PcsdPassword}
979 PublicVirtualInterface: {get_param: PublicVirtualInterface}
980 RabbitPassword: {get_param: RabbitPassword}
981 RabbitUserName: {get_param: RabbitUserName}
982 RabbitCookie: {get_attr: [RabbitCookie, value]}
983 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
984 RabbitClientPort: {get_param: RabbitClientPort}
985 RabbitFDLimit: {get_param: RabbitFDLimit}
986 RabbitIPv6: {get_param: RabbitIPv6}
987 RedisPassword: {get_param: RedisPassword}
988 SaharaPassword: {get_param: SaharaPassword}
989 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
990 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
991 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
992 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
993 SwiftHashSuffix: {get_param: SwiftHashSuffix}
994 SwiftMountCheck: {get_param: SwiftMountCheck}
995 SwiftMinPartHours: {get_param: SwiftMinPartHours}
996 SwiftPartPower: {get_param: SwiftPartPower}
997 SwiftPassword: {get_param: SwiftPassword}
998 SwiftReplicas: { get_param: SwiftReplicas}
999 TimeZone: {get_param: TimeZone}
1000 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
1001 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
1002 ServiceNetMap: {get_param: ServiceNetMap}
1003 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1004 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1005 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1006 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1007 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1008 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1009 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1010 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1011 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1012 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1013 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1014 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1015 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1016 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1017 UpdateIdentifier: {get_param: UpdateIdentifier}
1020 template: {get_param: ControllerHostnameFormat}
1022 '%stackname%': {get_param: 'OS::stack_name'}
1023 NodeIndex: '%index%'
1024 ServerMetadata: {get_param: ServerMetadata}
1025 SchedulerHints: {get_param: ControllerSchedulerHints}
1026 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
1029 type: OS::Heat::ResourceGroup
1030 depends_on: Networks
1032 count: {get_param: ComputeCount}
1033 removal_policies: {get_param: ComputeRemovalPolicies}
1035 type: OS::TripleO::Compute
1037 AdminPassword: {get_param: AdminPassword}
1038 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1039 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1040 CeilometerPassword: {get_param: CeilometerPassword}
1041 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1042 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1043 Debug: {get_param: Debug}
1044 ExtraConfig: {get_param: ExtraConfig}
1045 Flavor: {get_param: OvercloudComputeFlavor}
1046 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1047 Image: {get_param: NovaImage}
1048 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1049 KeyName: {get_param: KeyName}
1050 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1051 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1052 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1053 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1054 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1055 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1056 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1057 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1058 NeutronNetworkType: {get_param: NeutronNetworkType}
1059 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1060 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1061 NeutronPassword: {get_param: NeutronPassword}
1062 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1063 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1064 NeutronDVR: {get_param: NeutronDVR}
1065 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1066 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1067 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1068 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1069 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1070 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1071 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1072 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1073 # L3 HA and Failover is not relevant for Computes, should be removed
1074 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1075 NeutronL3HA: {get_param: NeutronL3HA}
1076 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1077 NovaComputeDriver: {get_param: NovaComputeDriver}
1078 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1079 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1080 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1081 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1082 NovaIPv6: {get_param: NovaIPv6}
1083 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1084 NovaPassword: {get_param: NovaPassword}
1085 NovaOVSBridge: {get_param: NovaOVSBridge}
1086 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1087 NtpServer: {get_param: NtpServer}
1088 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1089 RabbitPassword: {get_param: RabbitPassword}
1090 RabbitUserName: {get_param: RabbitUserName}
1091 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1092 RabbitClientPort: {get_param: RabbitClientPort}
1093 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1094 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1095 ServiceNetMap: {get_param: ServiceNetMap}
1096 TimeZone: {get_param: TimeZone}
1097 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1098 UpdateIdentifier: {get_param: UpdateIdentifier}
1101 template: {get_param: ComputeHostnameFormat}
1103 '%stackname%': {get_param: 'OS::stack_name'}
1104 CloudDomain: {get_param: CloudDomain}
1105 ServerMetadata: {get_param: ServerMetadata}
1106 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1107 NodeIndex: '%index%'
1110 type: OS::Heat::ResourceGroup
1111 depends_on: Networks
1113 count: {get_param: BlockStorageCount}
1114 removal_policies: {get_param: BlockStorageRemovalPolicies}
1116 type: OS::TripleO::BlockStorage
1118 Debug: {get_param: Debug}
1119 Image: {get_param: BlockStorageImage}
1120 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1121 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1122 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1123 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1124 CinderPassword: {get_param: CinderPassword}
1125 KeyName: {get_param: KeyName}
1126 Flavor: {get_param: OvercloudBlockStorageFlavor}
1127 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1128 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1129 RabbitPassword: {get_param: RabbitPassword}
1130 RabbitUserName: {get_param: RabbitUserName}
1131 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1132 RabbitClientPort: {get_param: RabbitClientPort}
1133 TimeZone: {get_param: TimeZone}
1134 NtpServer: {get_param: NtpServer}
1135 UpdateIdentifier: {get_param: UpdateIdentifier}
1138 template: {get_param: BlockStorageHostnameFormat}
1140 '%stackname%': {get_param: 'OS::stack_name'}
1141 ServiceNetMap: {get_param: ServiceNetMap}
1142 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1143 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1144 ExtraConfig: {get_param: ExtraConfig}
1145 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1146 CloudDomain: {get_param: CloudDomain}
1147 ServerMetadata: {get_param: ServerMetadata}
1148 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1149 NodeIndex: '%index%'
1152 type: OS::Heat::ResourceGroup
1153 depends_on: Networks
1155 count: {get_param: ObjectStorageCount}
1156 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1158 type: OS::TripleO::ObjectStorage
1160 KeyName: {get_param: KeyName}
1161 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1162 HashSuffix: {get_param: SwiftHashSuffix}
1163 MountCheck: {get_param: SwiftMountCheck}
1164 MinPartHours: {get_param: SwiftMinPartHours}
1165 PartPower: {get_param: SwiftPartPower}
1166 Image: {get_param: SwiftStorageImage}
1167 Replicas: { get_param: SwiftReplicas}
1168 TimeZone: {get_param: TimeZone}
1169 NtpServer: {get_param: NtpServer}
1170 UpdateIdentifier: {get_param: UpdateIdentifier}
1171 ServiceNetMap: {get_param: ServiceNetMap}
1174 template: {get_param: ObjectStorageHostnameFormat}
1176 '%stackname%': {get_param: 'OS::stack_name'}
1177 ExtraConfig: {get_param: ExtraConfig}
1178 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1179 CloudDomain: {get_param: CloudDomain}
1180 ServerMetadata: {get_param: ServerMetadata}
1181 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1182 NodeIndex: '%index%'
1185 type: OS::Heat::ResourceGroup
1186 depends_on: Networks
1188 count: {get_param: CephStorageCount}
1189 removal_policies: {get_param: CephStorageRemovalPolicies}
1191 type: OS::TripleO::CephStorage
1193 Image: {get_param: CephStorageImage}
1194 KeyName: {get_param: KeyName}
1195 Flavor: {get_param: OvercloudCephStorageFlavor}
1196 NtpServer: {get_param: NtpServer}
1197 ServiceNetMap: {get_param: ServiceNetMap}
1198 TimeZone: {get_param: TimeZone}
1199 UpdateIdentifier: {get_param: UpdateIdentifier}
1202 template: {get_param: CephStorageHostnameFormat}
1204 '%stackname%': {get_param: 'OS::stack_name'}
1205 ExtraConfig: {get_param: ExtraConfig}
1206 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1207 CloudDomain: {get_param: CloudDomain}
1208 ServerMetadata: {get_param: ServerMetadata}
1209 SchedulerHints: {get_param: CephStorageSchedulerHints}
1210 NodeIndex: '%index%'
1212 ControllerIpListMap:
1213 type: OS::TripleO::Network::Ports::NetIpListMap
1215 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1216 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1217 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1218 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1219 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1220 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1221 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1224 type: OS::TripleO::AllNodes::SoftwareConfig
1226 compute_hosts: {get_attr: [Compute, hosts_entry]}
1227 controller_hosts: {get_attr: [Controller, hosts_entry]}
1228 controller_ips: {get_attr: [Controller, ip_address]}
1229 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1230 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1231 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1232 controller_names: {get_attr: [Controller, hostname]}
1233 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1234 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1235 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1236 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1237 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1238 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1239 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1240 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1241 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1242 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1243 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1244 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1245 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1246 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1247 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1248 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1249 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1250 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1251 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1252 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1253 DeployIdentifier: {get_param: DeployIdentifier}
1254 UpdateIdentifier: {get_param: UpdateIdentifier}
1257 type: OS::Heat::RandomString
1261 MysqlClusterUniquePart:
1262 type: OS::Heat::RandomString
1267 type: OS::Heat::RandomString
1270 salt: {get_param: RabbitCookieSalt}
1272 # creates the network architecture
1274 type: OS::TripleO::Network
1277 type: OS::Neutron::Port
1278 depends_on: Networks
1280 name: control_virtual_ip
1281 network: {get_param: NeutronControlPlaneID}
1282 fixed_ips: {get_param: ControlFixedIPs}
1283 replacement_policy: AUTO
1286 depends_on: Networks
1287 type: OS::TripleO::Network::Ports::RedisVipPort
1289 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1290 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1291 PortName: redis_virtual_ip
1292 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1295 # The public VIP is on the External net, falls back to ctlplane
1297 depends_on: Networks
1298 type: OS::TripleO::Network::Ports::ExternalVipPort
1300 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1301 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1302 PortName: public_virtual_ip
1303 FixedIPs: {get_param: PublicVirtualFixedIPs}
1305 InternalApiVirtualIP:
1306 depends_on: Networks
1307 type: OS::TripleO::Network::Ports::InternalApiVipPort
1309 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1310 PortName: internal_api_virtual_ip
1311 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1314 depends_on: Networks
1315 type: OS::TripleO::Network::Ports::StorageVipPort
1317 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1318 PortName: storage_virtual_ip
1319 FixedIPs: {get_param: StorageVirtualFixedIPs}
1321 StorageMgmtVirtualIP:
1322 depends_on: Networks
1323 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1325 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1326 PortName: storage_management_virtual_ip
1327 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1330 type: OS::TripleO::Network::Ports::NetVipMap
1332 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1333 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1334 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1335 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1336 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1337 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1338 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1339 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1340 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1341 # No tenant or management VIP required
1344 type: OS::TripleO::VipConfig
1347 type: OS::Heat::StructuredDeployments
1350 config: {get_resource: VipConfig}
1351 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1353 # service VIP mappings
1354 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1355 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1356 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1357 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1358 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1359 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1360 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1361 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1362 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1363 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1364 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1365 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1366 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1367 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1368 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1369 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1370 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1371 # direct configuration of Virtual IPs for each network
1372 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1373 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1374 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1375 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1376 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1377 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1379 ControllerBootstrapNodeConfig:
1380 type: OS::TripleO::BootstrapNode::SoftwareConfig
1382 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1383 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1385 ControllerBootstrapNodeDeployment:
1386 type: OS::Heat::StructuredDeployments
1388 name: ControllerBootstrapNodeDeployment
1389 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1390 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1392 ControllerSwiftDeployment:
1393 type: OS::Heat::StructuredDeployments
1395 name: ControllerSwiftDeployment
1396 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1397 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1399 ObjectStorageSwiftDeployment:
1400 type: OS::Heat::StructuredDeployments
1402 name: ObjectStorageSwiftDeployment
1403 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1404 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1406 SwiftDevicesAndProxyConfig:
1407 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1409 controller_swift_devices: {get_attr: [Controller, swift_device]}
1410 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1411 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1413 ComputeCephDeployment:
1414 type: OS::Heat::StructuredDeployments
1416 name: ComputeCephDeployment
1417 config: {get_attr: [CephClusterConfig, config_id]}
1418 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1420 ControllerCephDeployment:
1421 type: OS::Heat::StructuredDeployments
1423 name: ControllerCephDeployment
1424 config: {get_attr: [CephClusterConfig, config_id]}
1425 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1427 CephStorageCephDeployment:
1428 type: OS::Heat::StructuredDeployments
1430 name: CephStorageCephDeployment
1431 config: {get_attr: [CephClusterConfig, config_id]}
1432 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1435 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1437 ceph_storage_count: {get_param: CephStorageCount}
1438 ceph_fsid: {get_param: CephClusterFSID}
1439 ceph_mon_key: {get_param: CephMonKey}
1440 ceph_admin_key: {get_param: CephAdminKey}
1441 ceph_client_key: {get_param: CephClientKey}
1442 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1443 ceph_mon_names: {get_attr: [Controller, hostname]}
1444 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1446 ControllerClusterConfig:
1447 type: OS::Heat::StructuredConfig
1449 group: os-apply-config
1452 nodes: {get_attr: [Controller, corosync_node]}
1456 nodes: {get_attr: [Controller, hostname]}
1458 nodes: {get_attr: [Controller, corosync_node]}
1460 nodes: {get_attr: [Controller, corosync_node]}
1462 ControllerClusterDeployment:
1463 type: OS::Heat::StructuredDeployments
1465 name: ControllerClusterDeployment
1466 config: {get_resource: ControllerClusterConfig}
1467 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1469 ControllerAllNodesDeployment:
1470 type: OS::Heat::StructuredDeployments
1472 name: ControllerAllNodesDeployment
1473 config: {get_attr: [allNodesConfig, config_id]}
1474 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1476 ComputeAllNodesDeployment:
1477 type: OS::Heat::StructuredDeployments
1479 name: ComputeAllNodesDeployment
1480 config: {get_attr: [allNodesConfig, config_id]}
1481 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1483 BlockStorageAllNodesDeployment:
1484 type: OS::Heat::StructuredDeployments
1486 name: BlockStorageAllNodesDeployment
1487 config: {get_attr: [allNodesConfig, config_id]}
1488 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1490 ObjectStorageAllNodesDeployment:
1491 type: OS::Heat::StructuredDeployments
1493 name: ObjectStorageAllNodesDeployment
1494 config: {get_attr: [allNodesConfig, config_id]}
1495 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1497 CephStorageAllNodesDeployment:
1498 type: OS::Heat::StructuredDeployments
1500 name: CephStorageAllNodesDeployment
1501 config: {get_attr: [allNodesConfig, config_id]}
1502 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1504 # All Nodes Validations
1505 AllNodesValidationConfig:
1506 type: OS::TripleO::AllNodes::Validation
1511 - - {get_attr: [Controller, resource.0.external_ip_address]}
1512 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1513 - {get_attr: [Controller, resource.0.storage_ip_address]}
1514 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1515 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1517 ControllerAllNodesValidationDeployment:
1518 type: OS::Heat::StructuredDeployments
1519 depends_on: ControllerAllNodesDeployment
1521 name: ControllerAllNodesValidationDeployment
1522 config: {get_resource: AllNodesValidationConfig}
1523 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1525 ComputeAllNodesValidationDeployment:
1526 type: OS::Heat::StructuredDeployments
1527 depends_on: ComputeAllNodesDeployment
1529 name: ComputeAllNodesValidationDeployment
1530 config: {get_resource: AllNodesValidationConfig}
1531 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1533 BlockStorageAllNodesValidationDeployment:
1534 type: OS::Heat::StructuredDeployments
1535 depends_on: BlockStorageAllNodesDeployment
1537 name: BlockStorageAllNodesValidationDeployment
1538 config: {get_resource: AllNodesValidationConfig}
1539 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1541 ObjectStorageAllNodesValidationDeployment:
1542 type: OS::Heat::StructuredDeployments
1543 depends_on: ObjectStorageAllNodesDeployment
1545 name: ObjectStorageAllNodesValidationDeployment
1546 config: {get_resource: AllNodesValidationConfig}
1547 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1549 CephStorageAllNodesValidationDeployment:
1550 type: OS::Heat::StructuredDeployments
1551 depends_on: CephStorageAllNodesDeployment
1553 name: CephStorageAllNodesValidationDeployment
1554 config: {get_resource: AllNodesValidationConfig}
1555 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1558 type: OS::TripleO::Tasks::UpdateWorkflow
1560 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1561 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1562 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1563 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1564 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1566 deploy_identifier: {get_param: DeployIdentifier}
1567 update_identifier: {get_param: UpdateIdentifier}
1569 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1570 # the nested template may configure each role differently (or not at all)
1571 AllNodesExtraConfig:
1572 type: OS::TripleO::AllNodesExtraConfig
1575 - ComputeAllNodesValidationDeployment
1576 - BlockStorageAllNodesValidationDeployment
1577 - ObjectStorageAllNodesValidationDeployment
1578 - CephStorageAllNodesValidationDeployment
1579 - ControllerAllNodesValidationDeployment
1581 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1582 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1583 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1584 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1585 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1587 # Nested stack deployment runs after all other controller deployments
1588 ControllerNodesPostDeployment:
1589 type: OS::TripleO::ControllerPostDeployment
1590 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1592 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1593 NodeConfigIdentifiers:
1594 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1595 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1596 deployment_identifier: {get_param: DeployIdentifier}
1597 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1599 ComputeNodesPostDeployment:
1600 type: OS::TripleO::ComputePostDeployment
1601 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1603 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1604 NodeConfigIdentifiers:
1605 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1606 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1607 deployment_identifier: {get_param: DeployIdentifier}
1609 ObjectStorageNodesPostDeployment:
1610 type: OS::TripleO::ObjectStoragePostDeployment
1611 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1613 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1614 NodeConfigIdentifiers:
1615 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1616 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1617 deployment_identifier: {get_param: DeployIdentifier}
1619 BlockStorageNodesPostDeployment:
1620 type: OS::TripleO::BlockStoragePostDeployment
1621 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1623 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1624 NodeConfigIdentifiers:
1625 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1626 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1627 deployment_identifier: {get_param: DeployIdentifier}
1629 CephStorageNodesPostDeployment:
1630 type: OS::TripleO::CephStoragePostDeployment
1631 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1633 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1634 NodeConfigIdentifiers:
1635 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1636 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1637 deployment_identifier: {get_param: DeployIdentifier}
1641 description: URL for the Overcloud Keystone service
1642 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1644 description: Keystone Admin VIP endpoint
1645 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1647 description: Controller VIP for public API endpoints
1648 value: {get_attr: [VipMap, net_ip_map, external]}
1650 description: VIP for Aodh API internal endpoint
1651 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1652 CeilometerInternalVip:
1653 description: VIP for Ceilometer API internal endpoint
1654 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1656 description: VIP for Cinder API internal endpoint
1657 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1659 description: VIP for Glance API internal endpoint
1660 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1662 description: VIP for Gnocchi API internal endpoint
1663 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1665 description: VIP for Heat API internal endpoint
1666 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1667 KeystoneInternalVip:
1668 description: VIP for Keystone API internal endpoint
1669 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1671 description: VIP for Neutron API internal endpoint
1672 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1674 description: VIP for Nova API internal endpoint
1675 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1677 description: VIP for Sahara API internal endpoint
1678 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1680 description: VIP for Swift Proxy internal endpoint
1681 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1684 Mapping of the resources with the needed info for their endpoints.
1685 This includes the protocol used, the IP, port and also a full
1686 representation of the URI.
1687 value: {get_attr: [EndpointMap, endpoint_map]}
1690 The content that should be appended to your /etc/hosts if you want to get
1691 hostname-based access to the deployed nodes (useful for testing without
1693 value: {get_attr: [allNodesConfig, hosts_entries]}