1 heat_template_version: 2015-04-30
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 # This has to be an UUID so for now we generate it outside the template
39 description: The Ceph cluster FSID. Must be a UUID.
42 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
47 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
50 CinderEnableNfsBackend:
52 description: Whether to enable or not the NFS backend for Cinder
56 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.
62 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
63 CinderEnableIscsiBackend:
65 description: Whether to enable or not the Iscsi backend for Cinder
67 CinderEnableRbdBackend:
69 description: Whether to enable or not the Rbd backend for Cinder
73 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
77 description: Should be used for arbitrary ips.
81 description: Enable IPv6 in Corosync
85 description: Set to True to enable debugging on all services.
89 description: Syslog address where HAproxy will send its log
93 description: A list of IP/Hostname allowed to connect to horizon
94 type: comma_delimited_list
96 default: 'REBUILD_PRESERVE_EPHEMERAL'
97 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
99 InternalApiVirtualFixedIPs:
102 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
103 [{'ip_address':'1.2.3.4'}]
107 description: Name of an existing Nova key pair to enable SSH access to the instances
110 - custom_constraint: nova.keypair
113 description: Enable IPv6 features in Memcached.
115 NeutronExternalNetworkBridge:
116 description: Name of bridge used for external network traffic.
119 NeutronBridgeMappings:
121 The OVS logical->physical bridge mappings to use. See the Neutron
122 documentation for details. Defaults to mapping br-ex - the external
123 bridge on hosts - to a physical name 'datacentre' which can be used
124 to create provider networks (and we use this for the default floating
125 network) - if changing this either use different post-install network
126 scripts or be sure to keep 'datacentre' as a mapping network name.
127 type: comma_delimited_list
128 default: "datacentre:br-ex"
129 NeutronControlPlaneID:
132 description: Neutron ID or name for ctlplane network.
133 NeutronEnableIsolatedMetadata:
135 description: If True, DHCP provide metadata route to VM.
137 NeutronEnableTunnelling:
143 Enable/disable the L2 population feature in the Neutron agents.
146 type: comma_delimited_list
147 default: 'datacentre'
149 If set, flat networks to configure in neutron plugins. Defaults to
150 'datacentre' to permit external network creation.
153 description: The tenant network type for Neutron.
154 type: comma_delimited_list
156 description: The password for the neutron service account, used by neutron agents.
159 NeutronPublicInterface:
161 description: What interface to bridge onto br-ex for network nodes.
163 NeutronPublicInterfaceTag:
166 VLAN tag for creating a public VLAN. The tag will be used to
167 create an access port on the exterior bridge for each control plane node,
168 and that port will be given the IP address returned by neutron from the
169 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
170 overcloud.yaml to include the deployment of VLAN ports to the control
173 NeutronComputeAgentMode:
175 description: Agent mode for the neutron-l3-agent on the compute hosts
179 description: Agent mode for the neutron-l3-agent on the controller hosts
183 description: Whether to configure Neutron Distributed Virtual Routers
185 NeutronMetadataProxySharedSecret:
186 description: Shared secret to prevent spoofing
191 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
192 be at least 50 bytes smaller than the MTU on the physical network. This
193 value will be used to set the MTU on the virtual Ethernet device.
194 This value will be used to construct the NeutronDnsmasqOptions, since that
195 will determine the MTU that is assigned to the VM host through DHCP.
201 The tunnel types for the Neutron tenant network.
202 type: comma_delimited_list
203 NeutronTunnelIdRanges:
205 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
206 of GRE tunnel IDs that are available for tenant network allocation
207 default: ["1:4094", ]
208 type: comma_delimited_list
211 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
212 of VXLAN VNI IDs that are available for tenant network allocation
213 default: ["1:4094", ]
214 type: comma_delimited_list
218 The core plugin for Neutron. The value should be the entrypoint to be loaded
219 from neutron.core_plugins namespace.
221 NeutronServicePlugins:
222 default: "router,qos"
224 Comma-separated list of service plugin entrypoints to be loaded from the
225 neutron.service_plugins namespace.
226 type: comma_delimited_list
228 default: "vxlan,vlan,flat,gre"
230 Comma-separated list of network type driver entrypoints to be loaded.
231 type: comma_delimited_list
232 NeutronMechanismDrivers:
233 default: 'openvswitch'
235 The mechanism drivers for the Neutron tenant network.
236 type: comma_delimited_list
237 NeutronPluginExtensions:
238 default: "qos,port_security"
240 Comma-separated list of extensions enabled for the Neutron plugin.
241 type: comma_delimited_list
242 NeutronAgentExtensions:
245 Comma-separated list of extensions enabled for the Neutron agents.
246 type: comma_delimited_list
247 NeutronAllowL3AgentFailover:
249 description: Allow automatic l3-agent failover
253 description: Whether to enable l3-agent HA
255 NeutronDhcpAgentsPerNetwork:
258 description: The number of neutron dhcp agents to schedule per network
261 description: Enable IPv6 features in Nova
264 description: The password for the nova service account, used by nova-api.
269 description: Comma-separated list of ntp servers
270 type: comma_delimited_list
273 description: Should MongoDb journaling be disabled
277 description: Enable IPv6 if MongoDB VIP is IPv6
279 PublicVirtualFixedIPs:
282 Control the IP allocation for the PublicVirtualInterface port. E.g.
283 [{'ip_address':'1.2.3.4'}]
288 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
291 description: The username for RabbitMQ
294 description: The password for RabbitMQ
300 Rabbit client subscriber parameter to specify
301 an SSL connection to the RabbitMQ host.
305 description: Set rabbit subscriber port, change this if using SSL
307 # We need to set this as string because 'unlimited' is a valid setting
310 description: Configures RabbitMQ FD limit
314 description: Enable IPv6 in RabbitMQ
317 description: The password for Redis
320 SnmpdReadonlyUserName:
321 default: ro_snmp_user
322 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
324 SnmpdReadonlyUserPassword:
325 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
328 StorageVirtualFixedIPs:
331 Control the IP allocation for the StorageVirtualInterface port. E.g.
332 [{'ip_address':'1.2.3.4'}]
334 StorageMgmtVirtualFixedIPs:
337 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
338 [{'ip_address':'1.2.3.4'}]
342 description: The timezone to be set on nodes.
345 default: 'localdomain'
348 The DNS domain used for the hosts. This should match the dhcp_domain
349 configured in the Undercloud neutron. Defaults to localdomain.
353 Extra properties or metadata passed to Nova for the created nodes in
354 the overcloud. It's accessible via the Nova metadata API.
357 # Controller-specific params
359 description: The keystone auth secret.
362 CinderLVMLoopDeviceSize:
364 description: The size of the loopback file used by the cinder LVM driver.
366 CinderNfsMountOptions:
369 Mount options for NFS mounts used by Cinder NFS backend. Effective
370 when CinderEnableNfsBackend is true.
375 NFS servers used by Cinder NFS backend. Effective when
376 CinderEnableNfsBackend is true.
377 type: comma_delimited_list
379 description: The password for the cinder service account, used by cinder-api.
384 description: The iSCSI helper to use with cinder.
391 controllerExtraConfig:
394 Controller specific configuration to inject into the cluster. Same
395 structure as ExtraConfig.
399 default: overcloud-full
401 - custom_constraint: glance.image
402 OvercloudControlFlavor:
403 description: Flavor for control nodes to request when deploying.
407 - custom_constraint: nova.flavor
408 ControlVirtualInterface:
410 description: Interface where virtual ip will be assigned.
414 description: Whether to enable fencing in Pacemaker or not.
418 description: Whether to use Galera instead of regular MariaDB.
420 ControllerEnableCephStorage:
422 description: Whether to deploy Ceph Storage (OSD) on the Controller
424 ControllerEnableSwiftStorage:
426 description: Whether to enable Swift Storage on the Controller
428 ControllerSchedulerHints:
430 description: Optional scheduler hints to pass to nova
435 Additional configuration to inject into the cluster. The format required
436 may be implementation specific, e.g puppet hieradata. Any role specific
437 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
442 Pacemaker fencing configuration. The JSON should have
443 the following structure:
447 "agent": "AGENT_NAME",
448 "host_mac": "HOST_MAC_ADDRESS",
449 "params": {"PARAM_NAME": "PARAM_VALUE"}
457 "agent": "fence_xvm",
458 "host_mac": "52:54:00:aa:bb:cc",
460 "multicast_address": "225.0.0.12",
461 "port": "baremetal_0",
463 "manage_key_file": true,
464 "key_file": "/etc/fence_xvm.key",
465 "key_file_password": "abcdef"
472 description: The filepath of the file to use for logging messages from Glance.
475 GlanceNotifierStrategy:
476 description: Strategy to use for Glance notification queue
480 description: The password for the glance service account, used by the glance services.
485 description: The short name of the Glance backend to use. Should be one
486 of swift, rbd or file
489 - allowed_values: ['swift', 'file', 'rbd']
491 description: The password for the Heat service account, used by the Heat services.
494 HeatStackDomainAdminPassword:
495 description: Password for heat_stack_domain_admin user.
498 InstanceNameTemplate:
499 default: 'instance-%08x'
500 description: Template string to be used to generate instance names
502 KeystoneCACertificate:
504 description: Keystone self-signed certificate authority certificate.
506 KeystoneSigningCertificate:
508 description: Keystone certificate for verifying token validity.
512 description: Keystone key for signing tokens.
515 KeystoneSSLCertificate:
517 description: Keystone certificate for verifying token validity.
519 KeystoneSSLCertificateKey:
521 description: Keystone key for signing tokens.
524 KeystoneNotificationDriver:
525 description: Comma-separated list of Oslo notification drivers used by Keystone
526 default: ['messaging']
527 type: comma_delimited_list
528 KeystoneNotificationFormat:
529 description: The Keystone notification format
533 - allowed_values: [ 'basic', 'cadf' ]
536 description: Whether to manage IPtables rules.
540 description: Whether IPtables rules should be purged before setting up the ones.
542 MysqlInnodbBufferPoolSize:
544 Specifies the size of the buffer pool in megabytes. Setting to
545 zero should be interpreted as "no value" and will defer to the
550 description: Configures MySQL max_connections config setting
553 NeutronDnsmasqOptions:
554 default: 'dhcp-option-force=26,%MTU%'
556 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
557 to be set to the value of NeutronTenantMtu, which should be set to account
560 NeutronPublicInterfaceDefaultRoute:
562 description: A custom default route for the NeutronPublicInterface.
564 NeutronPublicInterfaceIP:
566 description: A custom IP address to put onto the NeutronPublicInterface.
568 NeutronPublicInterfaceRawDevice:
570 description: If set, the public interface is a vlan with this device as the raw device.
572 PublicVirtualInterface:
575 Specifies the interface where the public-facing virtual ip will be assigned.
576 This should be int_public when a VLAN is being used.
579 description: A random string to be used as a salt when hashing to determine mappings in the ring.
583 description: The password for the swift service account, used by the swift proxy services.
588 description: Value of mount_check in Swift account/container/object -server.conf
593 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
596 description: Partition Power to use when building Swift rings
601 description: How many replicas to use in the swift rings.
603 description: The password for the sahara service account.
607 # Compute-specific params
608 CeilometerComputeAgent:
609 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
613 - allowed_values: ['', Present]
617 HypervisorNeutronPhysicalBridge:
620 An OVS bridge to create on each hypervisor. This defaults to br-ex the
621 same as the control plane nodes, as we have a uniform configuration of
622 the openvswitch agent. Typically should not need to be changed.
624 HypervisorNeutronPublicInterface:
626 description: What interface to add to the HypervisorNeutronPhysicalBridge.
628 NeutronNetworkVLANRanges:
629 default: 'datacentre:1:1000'
631 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
632 Neutron documentation for permitted values. Defaults to permitting any
633 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
634 type: comma_delimited_list
637 default: libvirt.LibvirtDriver
638 NovaComputeExtraConfig:
641 NovaCompute specific configuration to inject into the cluster. Same
642 structure as ExtraConfig.
644 NovaComputeLibvirtType:
647 NovaComputeLibvirtVifDriver:
649 description: Libvirt VIF driver configuration for the network
651 NovaComputeSchedulerHints:
653 description: Optional scheduler hints to pass to nova
655 NovaEnableRbdBackend:
657 description: Whether to enable or not the Rbd backend for Nova
661 default: overcloud-full
663 - custom_constraint: glance.image
666 description: Name of integration bridge used by Open vSwitch
668 NovaSecurityGroupAPI:
670 description: The full class name of the security API class
672 OvercloudComputeFlavor:
673 description: Use this flavor
677 - custom_constraint: nova.flavor
680 NeutronTenantNetwork: tenant
681 CeilometerApiNetwork: internal_api
682 AodhApiNetwork: internal_api
683 MongoDbNetwork: internal_api
684 CinderApiNetwork: internal_api
685 CinderIscsiNetwork: storage
686 GlanceApiNetwork: storage
687 GlanceRegistryNetwork: internal_api
688 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
689 KeystonePublicApiNetwork: internal_api
690 NeutronApiNetwork: internal_api
691 HeatApiNetwork: internal_api
692 NovaApiNetwork: internal_api
693 NovaMetadataNetwork: internal_api
694 NovaVncProxyNetwork: internal_api
695 SwiftMgmtNetwork: storage_mgmt
696 SwiftProxyNetwork: storage
697 SaharaApiNetwork: internal_api
698 HorizonNetwork: internal_api
699 MemcachedNetwork: internal_api
700 RabbitMqNetwork: internal_api
701 RedisNetwork: internal_api
702 MysqlNetwork: internal_api
703 CephClusterNetwork: storage_mgmt
704 CephPublicNetwork: storage
705 ControllerHostnameResolveNetwork: internal_api
706 ComputeHostnameResolveNetwork: internal_api
707 BlockStorageHostnameResolveNetwork: internal_api
708 ObjectStorageHostnameResolveNetwork: internal_api
709 CephStorageHostnameResolveNetwork: storage
710 description: Mapping of service_name -> network name. Typically set
711 via parameter_defaults in the resource registry.
714 # Block storage specific parameters
719 default: overcloud-full
721 OvercloudBlockStorageFlavor:
722 description: Flavor for block storage nodes to request when deploying.
726 - custom_constraint: nova.flavor
727 BlockStorageExtraConfig:
730 BlockStorage specific configuration to inject into the cluster. Same
731 structure as ExtraConfig.
733 BlockStorageSchedulerHints:
735 description: Optional scheduler hints to pass to nova
739 # Object storage specific parameters
743 OvercloudSwiftStorageFlavor:
744 description: Flavor for Swift storage nodes to request when deploying.
748 - custom_constraint: nova.flavor
750 default: overcloud-full
752 ObjectStorageExtraConfig:
755 ObjectStorage specific configuration to inject into the cluster. Same
756 structure as ExtraConfig.
758 ObjectStorageSchedulerHints:
760 description: Optional scheduler hints to pass to nova
763 # Ceph storage specific parameters
768 default: overcloud-full
770 OvercloudCephStorageFlavor:
772 description: Flavor for Ceph storage nodes to request when deploying.
775 - custom_constraint: nova.flavor
776 CephStorageExtraConfig:
779 CephStorage specific configuration to inject into the cluster. Same
780 structure as ExtraConfig.
782 CephStorageSchedulerHints:
784 description: Optional scheduler hints to pass to nova
788 # Hostname format for each role
789 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
790 # and %stackname% is replaced with OS::stack_name in the template below.
791 # If you want to use the heat generated names, pass '' (empty string).
792 ControllerHostnameFormat:
794 description: Format for Controller node hostnames
795 default: '%stackname%-controller-%index%'
796 ComputeHostnameFormat:
798 description: Format for Compute node hostnames
799 default: '%stackname%-novacompute-%index%'
800 BlockStorageHostnameFormat:
802 description: Format for BlockStorage node hostnames
803 default: '%stackname%-blockstorage-%index%'
804 ObjectStorageHostnameFormat:
806 description: Format for SwiftStorage node hostnames
807 default: '%stackname%-objectstorage-%index%'
808 CephStorageHostnameFormat:
810 description: Format for CephStorage node hostnames
811 default: '%stackname%-cephstorage-%index%'
813 # Identifiers to trigger tasks on nodes
818 Setting to a previously unused value during stack-update will trigger
819 package update on all nodes
824 Setting this to a unique value will re-run any deployment tasks which
825 perform configuration on a Heat stack-update.
827 # If you want to remove a specific node from a resource group, you can pass
828 # the node name or id as a <Group>RemovalPolicies parameter, for example:
829 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
830 ControllerRemovalPolicies:
834 List of resources to be removed from ControllerResourceGroup when
835 doing an update which requires removal of specific resources.
836 ComputeRemovalPolicies:
840 List of resources to be removed from ComputeResourceGroup when
841 doing an update which requires removal of specific resources.
842 BlockStorageRemovalPolicies:
846 List of resources to be removed from BlockStorageResourceGroup when
847 doing an update which requires removal of specific resources.
848 ObjectStorageRemovalPolicies:
852 List of resources to be removed from ObjectStorageResourceGroup when
853 doing an update which requires removal of specific resources.
854 CephStorageRemovalPolicies:
858 List of resources to be removed from CephStorageResourceGroup when
859 doing an update which requires removal of specific resources.
864 HeatAuthEncryptionKey:
865 type: OS::Heat::RandomString
868 type: OS::Heat::RandomString
873 type: OS::Heat::RandomString
878 type: OS::TripleO::EndpointMap
880 CloudName: {get_param: CloudName}
881 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
882 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
883 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
884 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
885 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
886 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
887 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
888 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
889 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
890 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
891 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
892 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
893 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
896 type: OS::Heat::ResourceGroup
899 count: {get_param: ControllerCount}
900 removal_policies: {get_param: ControllerRemovalPolicies}
902 type: OS::TripleO::Controller
904 AdminPassword: {get_param: AdminPassword}
905 AdminToken: {get_param: AdminToken}
906 AodhPassword: {get_param: AodhPassword}
907 CeilometerBackend: {get_param: CeilometerBackend}
908 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
909 CeilometerPassword: {get_param: CeilometerPassword}
910 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
911 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
912 CinderNfsServers: {get_param: CinderNfsServers}
913 CinderPassword: {get_param: CinderPassword}
914 CinderISCSIHelper: {get_param: CinderISCSIHelper}
915 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
916 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
917 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
918 CloudDomain: {get_param: CloudDomain}
919 ControlVirtualInterface: {get_param: ControlVirtualInterface}
920 ControllerExtraConfig: {get_param: controllerExtraConfig}
921 CorosyncIPv6: {get_param: CorosyncIPv6}
922 Debug: {get_param: Debug}
923 EnableFencing: {get_param: EnableFencing}
924 ManageFirewall: {get_param: ManageFirewall}
925 PurgeFirewallRules: {get_param: PurgeFirewallRules}
926 EnableGalera: {get_param: EnableGalera}
927 EnableCephStorage: {get_param: ControllerEnableCephStorage}
928 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
929 ExtraConfig: {get_param: ExtraConfig}
930 FencingConfig: {get_param: FencingConfig}
931 Flavor: {get_param: OvercloudControlFlavor}
932 GlancePassword: {get_param: GlancePassword}
933 GlanceBackend: {get_param: GlanceBackend}
934 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
935 GlanceLogFile: {get_param: GlanceLogFile}
936 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
937 HeatPassword: {get_param: HeatPassword}
938 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
939 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
940 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
941 HorizonSecret: {get_resource: HorizonSecret}
942 Image: {get_param: controllerImage}
943 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
944 InstanceNameTemplate: {get_param: InstanceNameTemplate}
945 KeyName: {get_param: KeyName}
946 KeystoneCACertificate: {get_param: KeystoneCACertificate}
947 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
948 KeystoneSigningKey: {get_param: KeystoneSigningKey}
949 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
950 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
951 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
952 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
953 MemcachedIPv6: {get_param: MemcachedIPv6}
954 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
955 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
956 MysqlMaxConnections: {get_param: MysqlMaxConnections}
957 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
958 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
959 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
960 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
961 NeutronTenantMtu: {get_param: NeutronTenantMtu}
962 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
963 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
964 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
965 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
966 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
967 NeutronPublicInterface: {get_param: NeutronPublicInterface}
968 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
969 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
970 NeutronPassword: {get_param: NeutronPassword}
971 NeutronDnsmasqOptions:
973 template: {get_param: NeutronDnsmasqOptions}
975 '%MTU%': {get_param: NeutronTenantMtu}
976 NeutronDVR: {get_param: NeutronDVR}
977 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
978 NeutronAgentMode: {get_param: NeutronAgentMode}
979 NeutronCorePlugin: {get_param: NeutronCorePlugin}
980 NeutronServicePlugins: {get_param: NeutronServicePlugins}
981 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
982 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
983 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
984 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
985 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
986 NeutronL3HA: {get_param: NeutronL3HA}
987 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
988 NeutronNetworkType: {get_param: NeutronNetworkType}
989 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
990 NovaIPv6: {get_param: NovaIPv6}
991 NovaPassword: {get_param: NovaPassword}
992 NtpServer: {get_param: NtpServer}
993 MongoDbNoJournal: {get_param: MongoDbNoJournal}
994 MongoDbIPv6: {get_param: MongoDbIPv6}
995 PcsdPassword: {get_resource: PcsdPassword}
996 PublicVirtualInterface: {get_param: PublicVirtualInterface}
997 RabbitPassword: {get_param: RabbitPassword}
998 RabbitUserName: {get_param: RabbitUserName}
999 RabbitCookie: {get_attr: [RabbitCookie, value]}
1000 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1001 RabbitClientPort: {get_param: RabbitClientPort}
1002 RabbitFDLimit: {get_param: RabbitFDLimit}
1003 RabbitIPv6: {get_param: RabbitIPv6}
1004 RedisPassword: {get_param: RedisPassword}
1005 SaharaPassword: {get_param: SaharaPassword}
1006 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1007 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1008 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
1009 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
1010 SwiftHashSuffix: {get_param: SwiftHashSuffix}
1011 SwiftMountCheck: {get_param: SwiftMountCheck}
1012 SwiftMinPartHours: {get_param: SwiftMinPartHours}
1013 SwiftPartPower: {get_param: SwiftPartPower}
1014 SwiftPassword: {get_param: SwiftPassword}
1015 SwiftReplicas: { get_param: SwiftReplicas}
1016 TimeZone: {get_param: TimeZone}
1017 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
1018 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
1019 ServiceNetMap: {get_param: ServiceNetMap}
1020 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1021 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1022 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1023 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1024 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1025 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1026 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1027 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1028 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1029 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1030 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1031 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1032 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1033 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1034 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1035 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1036 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1037 UpdateIdentifier: {get_param: UpdateIdentifier}
1040 template: {get_param: ControllerHostnameFormat}
1042 '%stackname%': {get_param: 'OS::stack_name'}
1043 NodeIndex: '%index%'
1044 ServerMetadata: {get_param: ServerMetadata}
1045 SchedulerHints: {get_param: ControllerSchedulerHints}
1048 type: OS::Heat::ResourceGroup
1049 depends_on: Networks
1051 count: {get_param: ComputeCount}
1052 removal_policies: {get_param: ComputeRemovalPolicies}
1054 type: OS::TripleO::Compute
1056 AdminPassword: {get_param: AdminPassword}
1057 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1058 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1059 CeilometerPassword: {get_param: CeilometerPassword}
1060 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1061 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1062 Debug: {get_param: Debug}
1063 ExtraConfig: {get_param: ExtraConfig}
1064 Flavor: {get_param: OvercloudComputeFlavor}
1065 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1066 Image: {get_param: NovaImage}
1067 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1068 KeyName: {get_param: KeyName}
1069 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1070 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1071 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1072 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1073 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1074 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1075 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1076 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1077 NeutronNetworkType: {get_param: NeutronNetworkType}
1078 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1079 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1080 NeutronPassword: {get_param: NeutronPassword}
1081 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1082 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1083 NeutronDVR: {get_param: NeutronDVR}
1084 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1085 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1086 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1087 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1088 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1089 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1090 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1091 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1092 # L3 HA and Failover is not relevant for Computes, should be removed
1093 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1094 NeutronL3HA: {get_param: NeutronL3HA}
1095 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1096 NovaComputeDriver: {get_param: NovaComputeDriver}
1097 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1098 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1099 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1100 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1101 NovaIPv6: {get_param: NovaIPv6}
1102 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1103 NovaPassword: {get_param: NovaPassword}
1104 NovaOVSBridge: {get_param: NovaOVSBridge}
1105 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1106 NtpServer: {get_param: NtpServer}
1107 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1108 RabbitPassword: {get_param: RabbitPassword}
1109 RabbitUserName: {get_param: RabbitUserName}
1110 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1111 RabbitClientPort: {get_param: RabbitClientPort}
1112 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1113 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1114 ServiceNetMap: {get_param: ServiceNetMap}
1115 TimeZone: {get_param: TimeZone}
1116 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1117 UpdateIdentifier: {get_param: UpdateIdentifier}
1120 template: {get_param: ComputeHostnameFormat}
1122 '%stackname%': {get_param: 'OS::stack_name'}
1123 CloudDomain: {get_param: CloudDomain}
1124 ServerMetadata: {get_param: ServerMetadata}
1125 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1126 NodeIndex: '%index%'
1129 type: OS::Heat::ResourceGroup
1130 depends_on: Networks
1132 count: {get_param: BlockStorageCount}
1133 removal_policies: {get_param: BlockStorageRemovalPolicies}
1135 type: OS::TripleO::BlockStorage
1137 Debug: {get_param: Debug}
1138 Image: {get_param: BlockStorageImage}
1139 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1140 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1141 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1142 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1143 CinderPassword: {get_param: CinderPassword}
1144 KeyName: {get_param: KeyName}
1145 Flavor: {get_param: OvercloudBlockStorageFlavor}
1146 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1147 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1148 RabbitPassword: {get_param: RabbitPassword}
1149 RabbitUserName: {get_param: RabbitUserName}
1150 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1151 RabbitClientPort: {get_param: RabbitClientPort}
1152 TimeZone: {get_param: TimeZone}
1153 NtpServer: {get_param: NtpServer}
1154 UpdateIdentifier: {get_param: UpdateIdentifier}
1157 template: {get_param: BlockStorageHostnameFormat}
1159 '%stackname%': {get_param: 'OS::stack_name'}
1160 ServiceNetMap: {get_param: ServiceNetMap}
1161 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1162 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1163 ExtraConfig: {get_param: ExtraConfig}
1164 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1165 CloudDomain: {get_param: CloudDomain}
1166 ServerMetadata: {get_param: ServerMetadata}
1167 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1168 NodeIndex: '%index%'
1171 type: OS::Heat::ResourceGroup
1172 depends_on: Networks
1174 count: {get_param: ObjectStorageCount}
1175 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1177 type: OS::TripleO::ObjectStorage
1179 KeyName: {get_param: KeyName}
1180 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1181 HashSuffix: {get_param: SwiftHashSuffix}
1182 MountCheck: {get_param: SwiftMountCheck}
1183 MinPartHours: {get_param: SwiftMinPartHours}
1184 PartPower: {get_param: SwiftPartPower}
1185 Image: {get_param: SwiftStorageImage}
1186 Replicas: { get_param: SwiftReplicas}
1187 TimeZone: {get_param: TimeZone}
1188 NtpServer: {get_param: NtpServer}
1189 UpdateIdentifier: {get_param: UpdateIdentifier}
1190 ServiceNetMap: {get_param: ServiceNetMap}
1193 template: {get_param: ObjectStorageHostnameFormat}
1195 '%stackname%': {get_param: 'OS::stack_name'}
1196 ExtraConfig: {get_param: ExtraConfig}
1197 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1198 CloudDomain: {get_param: CloudDomain}
1199 ServerMetadata: {get_param: ServerMetadata}
1200 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1201 NodeIndex: '%index%'
1204 type: OS::Heat::ResourceGroup
1205 depends_on: Networks
1207 count: {get_param: CephStorageCount}
1208 removal_policies: {get_param: CephStorageRemovalPolicies}
1210 type: OS::TripleO::CephStorage
1212 Image: {get_param: CephStorageImage}
1213 KeyName: {get_param: KeyName}
1214 Flavor: {get_param: OvercloudCephStorageFlavor}
1215 NtpServer: {get_param: NtpServer}
1216 ServiceNetMap: {get_param: ServiceNetMap}
1217 TimeZone: {get_param: TimeZone}
1218 UpdateIdentifier: {get_param: UpdateIdentifier}
1221 template: {get_param: CephStorageHostnameFormat}
1223 '%stackname%': {get_param: 'OS::stack_name'}
1224 ExtraConfig: {get_param: ExtraConfig}
1225 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1226 CloudDomain: {get_param: CloudDomain}
1227 ServerMetadata: {get_param: ServerMetadata}
1228 SchedulerHints: {get_param: CephStorageSchedulerHints}
1229 NodeIndex: '%index%'
1231 ControllerIpListMap:
1232 type: OS::TripleO::Network::Ports::NetIpListMap
1234 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1235 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1236 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1237 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1238 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1239 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1240 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1243 type: OS::TripleO::AllNodes::SoftwareConfig
1245 compute_hosts: {get_attr: [Compute, hosts_entry]}
1246 controller_hosts: {get_attr: [Controller, hosts_entry]}
1247 controller_ips: {get_attr: [Controller, ip_address]}
1248 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1249 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1250 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1251 controller_names: {get_attr: [Controller, hostname]}
1252 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1253 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1254 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1255 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1256 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1257 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1258 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1259 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1260 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1261 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1262 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1263 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1264 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1265 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1266 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1267 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1268 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1269 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1270 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1271 DeployIdentifier: {get_param: DeployIdentifier}
1272 UpdateIdentifier: {get_param: UpdateIdentifier}
1275 type: OS::Heat::RandomString
1279 MysqlClusterUniquePart:
1280 type: OS::Heat::RandomString
1285 type: OS::Heat::RandomString
1288 salt: {get_param: RabbitCookieSalt}
1290 # creates the network architecture
1292 type: OS::TripleO::Network
1295 type: OS::Neutron::Port
1296 depends_on: Networks
1298 name: control_virtual_ip
1299 network: {get_param: NeutronControlPlaneID}
1300 fixed_ips: {get_param: ControlFixedIPs}
1301 replacement_policy: AUTO
1304 depends_on: Networks
1305 type: OS::TripleO::Network::Ports::RedisVipPort
1307 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1308 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1309 PortName: redis_virtual_ip
1310 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1313 # The public VIP is on the External net, falls back to ctlplane
1315 depends_on: Networks
1316 type: OS::TripleO::Network::Ports::ExternalVipPort
1318 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1319 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1320 PortName: public_virtual_ip
1321 FixedIPs: {get_param: PublicVirtualFixedIPs}
1323 InternalApiVirtualIP:
1324 depends_on: Networks
1325 type: OS::TripleO::Network::Ports::InternalApiVipPort
1327 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1328 PortName: internal_api_virtual_ip
1329 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1332 depends_on: Networks
1333 type: OS::TripleO::Network::Ports::StorageVipPort
1335 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1336 PortName: storage_virtual_ip
1337 FixedIPs: {get_param: StorageVirtualFixedIPs}
1339 StorageMgmtVirtualIP:
1340 depends_on: Networks
1341 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1343 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1344 PortName: storage_management_virtual_ip
1345 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1348 type: OS::TripleO::Network::Ports::NetVipMap
1350 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1351 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1352 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1353 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1354 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1355 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1356 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1357 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1358 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1359 # No tenant or management VIP required
1362 type: OS::TripleO::VipConfig
1365 type: OS::Heat::StructuredDeployments
1368 config: {get_resource: VipConfig}
1369 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1371 # service VIP mappings
1372 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1373 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1374 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1375 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1376 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1377 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1378 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1379 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1380 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1381 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1382 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1383 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1384 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1385 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1386 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1387 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1388 # direct configuration of Virtual IPs for each network
1389 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1390 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1391 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1392 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1393 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1394 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1396 ControllerBootstrapNodeConfig:
1397 type: OS::TripleO::BootstrapNode::SoftwareConfig
1399 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1400 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1402 ControllerBootstrapNodeDeployment:
1403 type: OS::Heat::StructuredDeployments
1405 name: ControllerBootstrapNodeDeployment
1406 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1407 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1409 ControllerSwiftDeployment:
1410 type: OS::Heat::StructuredDeployments
1412 name: ControllerSwiftDeployment
1413 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1414 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1416 ObjectStorageSwiftDeployment:
1417 type: OS::Heat::StructuredDeployments
1419 name: ObjectStorageSwiftDeployment
1420 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1421 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1423 SwiftDevicesAndProxyConfig:
1424 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1426 controller_swift_devices: {get_attr: [Controller, swift_device]}
1427 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1428 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1430 ComputeCephDeployment:
1431 type: OS::Heat::StructuredDeployments
1433 name: ComputeCephDeployment
1434 config: {get_attr: [CephClusterConfig, config_id]}
1435 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1437 ControllerCephDeployment:
1438 type: OS::Heat::StructuredDeployments
1440 name: ControllerCephDeployment
1441 config: {get_attr: [CephClusterConfig, config_id]}
1442 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1444 CephStorageCephDeployment:
1445 type: OS::Heat::StructuredDeployments
1447 name: CephStorageCephDeployment
1448 config: {get_attr: [CephClusterConfig, config_id]}
1449 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1452 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1454 ceph_storage_count: {get_param: CephStorageCount}
1455 ceph_fsid: {get_param: CephClusterFSID}
1456 ceph_mon_key: {get_param: CephMonKey}
1457 ceph_admin_key: {get_param: CephAdminKey}
1458 ceph_client_key: {get_param: CephClientKey}
1459 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1460 ceph_mon_names: {get_attr: [Controller, hostname]}
1461 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1463 ControllerClusterConfig:
1464 type: OS::Heat::StructuredConfig
1466 group: os-apply-config
1469 nodes: {get_attr: [Controller, corosync_node]}
1473 nodes: {get_attr: [Controller, hostname]}
1475 nodes: {get_attr: [Controller, corosync_node]}
1477 nodes: {get_attr: [Controller, corosync_node]}
1479 ControllerClusterDeployment:
1480 type: OS::Heat::StructuredDeployments
1482 name: ControllerClusterDeployment
1483 config: {get_resource: ControllerClusterConfig}
1484 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1486 ControllerAllNodesDeployment:
1487 type: OS::Heat::StructuredDeployments
1489 name: ControllerAllNodesDeployment
1490 config: {get_attr: [allNodesConfig, config_id]}
1491 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1493 ComputeAllNodesDeployment:
1494 type: OS::Heat::StructuredDeployments
1496 name: ComputeAllNodesDeployment
1497 config: {get_attr: [allNodesConfig, config_id]}
1498 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1500 BlockStorageAllNodesDeployment:
1501 type: OS::Heat::StructuredDeployments
1503 name: BlockStorageAllNodesDeployment
1504 config: {get_attr: [allNodesConfig, config_id]}
1505 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1507 ObjectStorageAllNodesDeployment:
1508 type: OS::Heat::StructuredDeployments
1510 name: ObjectStorageAllNodesDeployment
1511 config: {get_attr: [allNodesConfig, config_id]}
1512 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1514 CephStorageAllNodesDeployment:
1515 type: OS::Heat::StructuredDeployments
1517 name: CephStorageAllNodesDeployment
1518 config: {get_attr: [allNodesConfig, config_id]}
1519 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1521 # All Nodes Validations
1522 AllNodesValidationConfig:
1523 type: OS::TripleO::AllNodes::Validation
1528 - - {get_attr: [Controller, resource.0.external_ip_address]}
1529 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1530 - {get_attr: [Controller, resource.0.storage_ip_address]}
1531 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1532 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1534 ControllerAllNodesValidationDeployment:
1535 type: OS::Heat::StructuredDeployments
1536 depends_on: ControllerAllNodesDeployment
1538 name: ControllerAllNodesValidationDeployment
1539 config: {get_resource: AllNodesValidationConfig}
1540 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1542 ComputeAllNodesValidationDeployment:
1543 type: OS::Heat::StructuredDeployments
1544 depends_on: ComputeAllNodesDeployment
1546 name: ComputeAllNodesValidationDeployment
1547 config: {get_resource: AllNodesValidationConfig}
1548 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1550 BlockStorageAllNodesValidationDeployment:
1551 type: OS::Heat::StructuredDeployments
1552 depends_on: BlockStorageAllNodesDeployment
1554 name: BlockStorageAllNodesValidationDeployment
1555 config: {get_resource: AllNodesValidationConfig}
1556 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1558 ObjectStorageAllNodesValidationDeployment:
1559 type: OS::Heat::StructuredDeployments
1560 depends_on: ObjectStorageAllNodesDeployment
1562 name: ObjectStorageAllNodesValidationDeployment
1563 config: {get_resource: AllNodesValidationConfig}
1564 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1566 CephStorageAllNodesValidationDeployment:
1567 type: OS::Heat::StructuredDeployments
1568 depends_on: CephStorageAllNodesDeployment
1570 name: CephStorageAllNodesValidationDeployment
1571 config: {get_resource: AllNodesValidationConfig}
1572 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1575 type: OS::TripleO::Tasks::UpdateWorkflow
1577 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1578 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1579 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1580 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1581 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1583 deploy_identifier: {get_param: DeployIdentifier}
1584 update_identifier: {get_param: UpdateIdentifier}
1586 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1587 # the nested template may configure each role differently (or not at all)
1588 AllNodesExtraConfig:
1589 type: OS::TripleO::AllNodesExtraConfig
1592 - ComputeAllNodesValidationDeployment
1593 - BlockStorageAllNodesValidationDeployment
1594 - ObjectStorageAllNodesValidationDeployment
1595 - CephStorageAllNodesValidationDeployment
1596 - ControllerAllNodesValidationDeployment
1598 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1599 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1600 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1601 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1602 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1604 # Nested stack deployment runs after all other controller deployments
1605 ControllerNodesPostDeployment:
1606 type: OS::TripleO::ControllerPostDeployment
1607 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1609 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1610 NodeConfigIdentifiers:
1611 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1612 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1613 deployment_identifier: {get_param: DeployIdentifier}
1615 ComputeNodesPostDeployment:
1616 type: OS::TripleO::ComputePostDeployment
1617 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1619 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1620 NodeConfigIdentifiers:
1621 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1622 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1623 deployment_identifier: {get_param: DeployIdentifier}
1625 ObjectStorageNodesPostDeployment:
1626 type: OS::TripleO::ObjectStoragePostDeployment
1627 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1629 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1630 NodeConfigIdentifiers:
1631 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1632 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1633 deployment_identifier: {get_param: DeployIdentifier}
1635 BlockStorageNodesPostDeployment:
1636 type: OS::TripleO::BlockStoragePostDeployment
1637 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1639 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1640 NodeConfigIdentifiers:
1641 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1642 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1643 deployment_identifier: {get_param: DeployIdentifier}
1645 CephStorageNodesPostDeployment:
1646 type: OS::TripleO::CephStoragePostDeployment
1647 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1649 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1650 NodeConfigIdentifiers:
1651 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1652 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1653 deployment_identifier: {get_param: DeployIdentifier}
1657 description: URL for the Overcloud Keystone service
1658 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1660 description: Keystone Admin VIP endpoint
1661 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1663 description: Controller VIP for public API endpoints
1664 value: {get_attr: [VipMap, net_ip_map, external]}
1666 description: VIP for Aodh API internal endpoint
1667 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1668 CeilometerInternalVip:
1669 description: VIP for Ceilometer API internal endpoint
1670 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1672 description: VIP for Cinder API internal endpoint
1673 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1675 description: VIP for Glance API internal endpoint
1676 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1678 description: VIP for Heat API internal endpoint
1679 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1680 KeystoneInternalVip:
1681 description: VIP for Keystone API internal endpoint
1682 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1684 description: VIP for Neutron API internal endpoint
1685 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1687 description: VIP for Nova API internal endpoint
1688 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1690 description: VIP for Sahara API internal endpoint
1691 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1693 description: VIP for Swift Proxy internal endpoint
1694 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1697 The content that should be appended to your /etc/hosts if you want to get
1698 hostname-based access to the deployed nodes (useful for testing without
1700 value: {get_attr: [allNodesConfig, hosts_entries]}