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.
21 description: The ceilometer backend type.
23 CeilometerMeteringSecret:
24 description: Secret shared by the ceilometer services.
28 description: The password for the ceilometer service account.
31 # This has to be an UUID so for now we generate it outside the template
35 description: The Ceph cluster FSID. Must be a UUID.
38 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
43 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
46 CinderEnableNfsBackend:
48 description: Whether to enable or not the NFS backend for Cinder
52 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.
58 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
59 CinderEnableIscsiBackend:
61 description: Whether to enable or not the Iscsi backend for Cinder
63 CinderEnableRbdBackend:
65 description: Whether to enable or not the Rbd backend for Cinder
69 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
73 description: Should be used for arbitrary ips.
77 description: Set to True to enable debugging on all services.
81 description: Syslog address where HAproxy will send its log
85 description: A list of IP/Hostname allowed to connect to horizon
86 type: comma_delimited_list
88 default: 'REBUILD_PRESERVE_EPHEMERAL'
89 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
93 description: Name of an existing Nova key pair to enable SSH access to the instances
96 - custom_constraint: nova.keypair
97 NeutronExternalNetworkBridge:
98 description: Name of bridge used for external network traffic.
101 NeutronBridgeMappings:
103 The OVS logical->physical bridge mappings to use. See the Neutron
104 documentation for details. Defaults to mapping br-ex - the external
105 bridge on hosts - to a physical name 'datacentre' which can be used
106 to create provider networks (and we use this for the default floating
107 network) - if changing this either use different post-install network
108 scripts or be sure to keep 'datacentre' as a mapping network name.
109 type: comma_delimited_list
110 default: "datacentre:br-ex"
111 NeutronControlPlaneID:
114 description: Neutron ID or name for ctlplane network.
115 NeutronEnableIsolatedMetadata:
117 description: If True, DHCP provide metadata route to VM.
119 NeutronEnableTunnelling:
125 Enable/disable the L2 population feature in the Neutron agents.
128 type: comma_delimited_list
129 default: 'datacentre'
131 If set, flat networks to configure in neutron plugins. Defaults to
132 'datacentre' to permit external network creation.
135 description: The tenant network type for Neutron.
136 type: comma_delimited_list
138 description: The password for the neutron service account, used by neutron agents.
141 NeutronPublicInterface:
143 description: What interface to bridge onto br-ex for network nodes.
145 NeutronPublicInterfaceTag:
148 VLAN tag for creating a public VLAN. The tag will be used to
149 create an access port on the exterior bridge for each control plane node,
150 and that port will be given the IP address returned by neutron from the
151 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
152 overcloud.yaml to include the deployment of VLAN ports to the control
155 NeutronComputeAgentMode:
157 description: Agent mode for the neutron-l3-agent on the compute hosts
161 description: Agent mode for the neutron-l3-agent on the controller hosts
165 description: Whether to configure Neutron Distributed Virtual Routers
167 NeutronMetadataProxySharedSecret:
168 description: Shared secret to prevent spoofing
174 The tunnel types for the Neutron tenant network.
175 type: comma_delimited_list
176 NeutronTunnelIdRanges:
178 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
179 of GRE tunnel IDs that are available for tenant network allocation
180 default: ["1:1000", ]
181 type: comma_delimited_list
184 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
185 of VXLAN VNI IDs that are available for tenant network allocation
186 default: ["1:1000", ]
187 type: comma_delimited_list
191 The core plugin for Neutron. The value should be the entrypoint to be loaded
192 from neutron.core_plugins namespace.
194 NeutronServicePlugins:
197 Comma-separated list of service plugin entrypoints to be loaded from the
198 neutron.service_plugins namespace.
199 type: comma_delimited_list
201 default: "vxlan,vlan,flat,gre"
203 Comma-separated list of network type driver entrypoints to be loaded.
204 type: comma_delimited_list
205 NeutronMechanismDrivers:
206 default: 'openvswitch'
208 The mechanism drivers for the Neutron tenant network.
209 type: comma_delimited_list
210 NeutronAllowL3AgentFailover:
212 description: Allow automatic l3-agent failover
216 description: Whether to enable l3-agent HA
218 NeutronDhcpAgentsPerNetwork:
221 description: The number of neutron dhcp agents to schedule per network
223 description: The password for the nova service account, used by nova-api.
228 description: Comma-separated list of ntp servers
229 type: comma_delimited_list
232 description: Should MongoDb journaling be disabled
234 PublicVirtualFixedIPs:
237 Control the IP allocation for the PublicVirtualInterface port. E.g.
238 [{'ip_address':'1.2.3.4'}]
243 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
244 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
247 description: The username for RabbitMQ
251 description: The password for RabbitMQ
257 Rabbit client subscriber parameter to specify
258 an SSL connection to the RabbitMQ host.
262 description: Set rabbit subscriber port, change this if using SSL
264 # We need to set this as string because 'unlimited' is a valid setting
267 description: Configures RabbitMQ FD limit
269 SnmpdReadonlyUserName:
270 default: ro_snmp_user
271 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
273 SnmpdReadonlyUserPassword:
274 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
278 default: 'localdomain'
281 The DNS domain used for the hosts. This should match the dhcp_domain
282 configured in the Undercloud neutron. Defaults to localdomain.
286 Extra properties or metadata passed to Nova for the created nodes in
287 the overcloud. It's accessible via the Nova metadata API.
290 # Controller-specific params
292 description: The keystone auth secret.
295 CinderLVMLoopDeviceSize:
297 description: The size of the loopback file used by the cinder LVM driver.
299 CinderNfsMountOptions:
302 Mount options for NFS mounts used by Cinder NFS backend. Effective
303 when CinderEnableNfsBackend is true.
308 NFS servers used by Cinder NFS backend. Effective when
309 CinderEnableNfsBackend is true.
310 type: comma_delimited_list
312 description: The password for the cinder service account, used by cinder-api.
317 description: The iSCSI helper to use with cinder.
324 controllerExtraConfig:
327 Controller specific configuration to inject into the cluster. Same
328 structure as ExtraConfig.
332 default: overcloud-full
334 - custom_constraint: glance.image
335 OvercloudControlFlavor:
336 description: Flavor for control nodes to request when deploying.
340 - custom_constraint: nova.flavor
341 ControlVirtualInterface:
343 description: Interface where virtual ip will be assigned.
347 description: Whether to enable fencing in Pacemaker or not.
351 description: Whether to use Galera instead of regular MariaDB.
353 ControllerEnableCephStorage:
355 description: Whether to deploy Ceph Storage (OSD) on the Controller
357 ControllerEnableSwiftStorage:
359 description: Whether to enable Swift Storage on the Controller
361 ControllerSchedulerHints:
363 description: Optional scheduler hints to pass to nova
368 Additional configuration to inject into the cluster. The format required
369 may be implementation specific, e.g puppet hieradata. Any role specific
370 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
375 Pacemaker fencing configuration. The JSON should have
376 the following structure:
380 "agent": "AGENT_NAME",
381 "host_mac": "HOST_MAC_ADDRESS",
382 "params": {"PARAM_NAME": "PARAM_VALUE"}
390 "agent": "fence_xvm",
391 "host_mac": "52:54:00:aa:bb:cc",
393 "multicast_address": "225.0.0.12",
394 "port": "baremetal_0",
396 "manage_key_file": true,
397 "key_file": "/etc/fence_xvm.key",
398 "key_file_password": "abcdef"
405 description: The filepath of the file to use for logging messages from Glance.
408 GlanceNotifierStrategy:
409 description: Strategy to use for Glance notification queue
413 description: The password for the glance service account, used by the glance services.
418 description: The short name of the Glance backend to use. Should be one
419 of swift, rbd or file
422 - allowed_values: ['swift', 'file', 'rbd']
424 description: The password for the Heat service account, used by the Heat services.
427 HeatStackDomainAdminPassword:
428 description: Password for heat_domain_admin user.
431 InstanceNameTemplate:
432 default: 'instance-%08x'
433 description: Template string to be used to generate instance names
435 KeystoneCACertificate:
437 description: Keystone self-signed certificate authority certificate.
439 KeystoneSigningCertificate:
441 description: Keystone certificate for verifying token validity.
445 description: Keystone key for signing tokens.
448 KeystoneSSLCertificate:
450 description: Keystone certificate for verifying token validity.
452 KeystoneSSLCertificateKey:
454 description: Keystone key for signing tokens.
457 KeystoneNotificationDriver:
458 description: Comma-separated list of Oslo notification drivers used by Keystone
459 default: ['messaging']
460 type: comma_delimited_list
461 KeystoneNotificationFormat:
462 description: The Keystone notification format
466 - allowed_values: [ 'basic', 'cadf' ]
469 description: Whether to manage IPtables rules.
473 description: Whether IPtables rules should be purged before setting up the ones.
475 MysqlInnodbBufferPoolSize:
477 Specifies the size of the buffer pool in megabytes. Setting to
478 zero should be interpreted as "no value" and will defer to the
483 description: Configures MySQL max_connections config setting
486 NeutronDnsmasqOptions:
487 default: 'dhcp-option-force=26,1400'
488 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
490 NeutronPublicInterfaceDefaultRoute:
492 description: A custom default route for the NeutronPublicInterface.
494 NeutronPublicInterfaceIP:
496 description: A custom IP address to put onto the NeutronPublicInterface.
498 NeutronPublicInterfaceRawDevice:
500 description: If set, the public interface is a vlan with this device as the raw device.
502 PublicVirtualInterface:
505 Specifies the interface where the public-facing virtual ip will be assigned.
506 This should be int_public when a VLAN is being used.
509 description: A random string to be used as a salt when hashing to determine mappings in the ring.
513 description: The password for the swift service account, used by the swift proxy services.
518 description: Value of mount_check in Swift account/container/object -server.conf
523 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
526 description: Partition Power to use when building Swift rings
531 description: How many replicas to use in the swift rings.
533 # Compute-specific params
534 CeilometerComputeAgent:
535 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
539 - allowed_values: ['', Present]
543 HypervisorNeutronPhysicalBridge:
546 An OVS bridge to create on each hypervisor. This defaults to br-ex the
547 same as the control plane nodes, as we have a uniform configuration of
548 the openvswitch agent. Typically should not need to be changed.
550 HypervisorNeutronPublicInterface:
552 description: What interface to add to the HypervisorNeutronPhysicalBridge.
554 NeutronNetworkVLANRanges:
555 default: 'datacentre:1:1000'
557 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
558 Neutron documentation for permitted values. Defaults to permitting any
559 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
560 type: comma_delimited_list
563 default: libvirt.LibvirtDriver
564 NovaComputeExtraConfig:
567 NovaCompute specific configuration to inject into the cluster. Same
568 structure as ExtraConfig.
570 NovaComputeLibvirtType:
573 NovaComputeLibvirtVifDriver:
575 description: Libvirt VIF driver configuration for the network
577 NovaComputeSchedulerHints:
579 description: Optional scheduler hints to pass to nova
581 NovaEnableRbdBackend:
583 description: Whether to enable or not the Rbd backend for Nova
587 default: overcloud-full
589 - custom_constraint: glance.image
592 description: Name of integration bridge used by Open vSwitch
594 NovaSecurityGroupAPI:
596 description: The full class name of the security API class
598 OvercloudComputeFlavor:
599 description: Use this flavor
603 - custom_constraint: nova.flavor
606 NeutronTenantNetwork: tenant
607 CeilometerApiNetwork: internal_api
608 MongoDbNetwork: internal_api
609 CinderApiNetwork: internal_api
610 CinderIscsiNetwork: storage
611 GlanceApiNetwork: storage
612 GlanceRegistryNetwork: internal_api
613 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
614 KeystonePublicApiNetwork: internal_api
615 NeutronApiNetwork: internal_api
616 HeatApiNetwork: internal_api
617 NovaApiNetwork: internal_api
618 NovaMetadataNetwork: internal_api
619 NovaVncProxyNetwork: internal_api
620 SwiftMgmtNetwork: storage_mgmt
621 SwiftProxyNetwork: storage
622 HorizonNetwork: internal_api
623 MemcachedNetwork: internal_api
624 RabbitMqNetwork: internal_api
625 RedisNetwork: internal_api
626 MysqlNetwork: internal_api
627 CephClusterNetwork: storage_mgmt
628 CephPublicNetwork: storage
629 ControllerHostnameResolveNetwork: internal_api
630 ComputeHostnameResolveNetwork: internal_api
631 BlockStorageHostnameResolveNetwork: internal_api
632 ObjectStorageHostnameResolveNetwork: internal_api
633 CephStorageHostnameResolveNetwork: storage
634 description: Mapping of service_name -> network name. Typically set
635 via parameter_defaults in the resource registry.
638 # Block storage specific parameters
643 default: overcloud-full
645 OvercloudBlockStorageFlavor:
646 description: Flavor for block storage nodes to request when deploying.
650 - custom_constraint: nova.flavor
651 BlockStorageExtraConfig:
654 BlockStorage specific configuration to inject into the cluster. Same
655 structure as ExtraConfig.
657 BlockStorageSchedulerHints:
659 description: Optional scheduler hints to pass to nova
663 # Object storage specific parameters
667 OvercloudSwiftStorageFlavor:
668 description: Flavor for Swift storage nodes to request when deploying.
672 - custom_constraint: nova.flavor
674 default: overcloud-full
676 ObjectStorageExtraConfig:
679 ObjectStorage specific configuration to inject into the cluster. Same
680 structure as ExtraConfig.
682 ObjectStorageSchedulerHints:
684 description: Optional scheduler hints to pass to nova
687 # Ceph storage specific parameters
692 default: overcloud-full
694 OvercloudCephStorageFlavor:
696 description: Flavor for Ceph storage nodes to request when deploying.
699 - custom_constraint: nova.flavor
700 CephStorageExtraConfig:
703 CephStorage specific configuration to inject into the cluster. Same
704 structure as ExtraConfig.
706 CephStorageSchedulerHints:
708 description: Optional scheduler hints to pass to nova
712 # Hostname format for each role
713 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
714 # and %stackname% is replaced with OS::stack_name in the template below.
715 # If you want to use the heat generated names, pass '' (empty string).
716 ControllerHostnameFormat:
718 description: Format for Controller node hostnames
719 default: '%stackname%-controller-%index%'
720 ComputeHostnameFormat:
722 description: Format for Compute node hostnames
723 default: '%stackname%-novacompute-%index%'
724 BlockStorageHostnameFormat:
726 description: Format for BlockStorage node hostnames
727 default: '%stackname%-blockstorage-%index%'
728 ObjectStorageHostnameFormat:
730 description: Format for SwiftStorage node hostnames
731 default: '%stackname%-objectstorage-%index%'
732 CephStorageHostnameFormat:
734 description: Format for CephStorage node hostnames
735 default: '%stackname%-cephstorage-%index%'
737 # Identifiers to trigger tasks on nodes
742 Setting to a previously unused value during stack-update will trigger
743 package update on all nodes
748 Setting this to a unique value will re-run any deployment tasks which
749 perform configuration on a Heat stack-update.
751 # If you want to remove a specific node from a resource group, you can pass
752 # the node name or id as a <Group>RemovalPolicies parameter, for example:
753 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
754 ControllerRemovalPolicies:
758 List of resources to be removed from ControllerResourceGroup when
759 doing an update which requires removal of specific resources.
760 ComputeRemovalPolicies:
764 List of resources to be removed from ComputeResourceGroup when
765 doing an update which requires removal of specific resources.
766 BlockStorageRemovalPolicies:
770 List of resources to be removed from BlockStorageResourceGroup when
771 doing an update which requires removal of specific resources.
772 ObjectStorageRemovalPolicies:
776 List of resources to be removed from ObjectStorageResourceGroup when
777 doing an update which requires removal of specific resources.
778 CephStorageRemovalPolicies:
782 List of resources to be removed from CephStorageResourceGroup when
783 doing an update which requires removal of specific resources.
788 HeatAuthEncryptionKey:
789 type: OS::Heat::RandomString
792 type: OS::Heat::RandomString
797 type: OS::Heat::RandomString
802 type: OS::TripleO::EndpointMap
804 CloudName: {get_param: CloudName}
805 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
806 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
807 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
808 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
809 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
810 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
811 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
812 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
813 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
814 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
815 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
816 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
819 type: OS::Heat::ResourceGroup
822 count: {get_param: ControllerCount}
823 removal_policies: {get_param: ControllerRemovalPolicies}
825 type: OS::TripleO::Controller
827 AdminPassword: {get_param: AdminPassword}
828 AdminToken: {get_param: AdminToken}
829 CeilometerBackend: {get_param: CeilometerBackend}
830 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
831 CeilometerPassword: {get_param: CeilometerPassword}
832 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
833 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
834 CinderNfsServers: {get_param: CinderNfsServers}
835 CinderPassword: {get_param: CinderPassword}
836 CinderISCSIHelper: {get_param: CinderISCSIHelper}
837 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
838 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
839 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
840 CloudName: {get_param: CloudName}
841 CloudDomain: {get_param: CloudDomain}
842 ControlVirtualInterface: {get_param: ControlVirtualInterface}
843 ControllerExtraConfig: {get_param: controllerExtraConfig}
844 Debug: {get_param: Debug}
845 EnableFencing: {get_param: EnableFencing}
846 ManageFirewall: {get_param: ManageFirewall}
847 PurgeFirewallRules: {get_param: PurgeFirewallRules}
848 EnableGalera: {get_param: EnableGalera}
849 EnableCephStorage: {get_param: ControllerEnableCephStorage}
850 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
851 ExtraConfig: {get_param: ExtraConfig}
852 FencingConfig: {get_param: FencingConfig}
853 Flavor: {get_param: OvercloudControlFlavor}
854 GlancePassword: {get_param: GlancePassword}
855 GlanceBackend: {get_param: GlanceBackend}
856 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
857 GlanceLogFile: {get_param: GlanceLogFile}
858 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
859 HeatPassword: {get_param: HeatPassword}
860 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
861 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
862 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
863 HorizonSecret: {get_resource: HorizonSecret}
864 Image: {get_param: controllerImage}
865 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
866 InstanceNameTemplate: {get_param: InstanceNameTemplate}
867 KeyName: {get_param: KeyName}
868 KeystoneCACertificate: {get_param: KeystoneCACertificate}
869 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
870 KeystoneSigningKey: {get_param: KeystoneSigningKey}
871 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
872 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
873 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
874 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
875 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
876 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
877 MysqlMaxConnections: {get_param: MysqlMaxConnections}
878 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
879 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
880 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
881 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
882 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
883 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
884 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
885 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
886 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
887 NeutronPublicInterface: {get_param: NeutronPublicInterface}
888 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
889 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
890 NeutronPassword: {get_param: NeutronPassword}
891 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
892 NeutronDVR: {get_param: NeutronDVR}
893 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
894 NeutronAgentMode: {get_param: NeutronAgentMode}
895 NeutronCorePlugin: {get_param: NeutronCorePlugin}
896 NeutronServicePlugins: {get_param: NeutronServicePlugins}
897 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
898 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
899 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
900 NeutronL3HA: {get_param: NeutronL3HA}
901 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
902 NeutronNetworkType: {get_param: NeutronNetworkType}
903 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
904 NovaPassword: {get_param: NovaPassword}
905 NtpServer: {get_param: NtpServer}
906 MongoDbNoJournal: {get_param: MongoDbNoJournal}
907 PcsdPassword: {get_resource: PcsdPassword}
908 PublicVirtualInterface: {get_param: PublicVirtualInterface}
909 RabbitPassword: {get_param: RabbitPassword}
910 RabbitUserName: {get_param: RabbitUserName}
911 RabbitCookie: {get_attr: [RabbitCookie, value]}
912 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
913 RabbitClientPort: {get_param: RabbitClientPort}
914 RabbitFDLimit: {get_param: RabbitFDLimit}
915 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
916 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
917 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
918 SwiftHashSuffix: {get_param: SwiftHashSuffix}
919 SwiftMountCheck: {get_param: SwiftMountCheck}
920 SwiftMinPartHours: {get_param: SwiftMinPartHours}
921 SwiftPartPower: {get_param: SwiftPartPower}
922 SwiftPassword: {get_param: SwiftPassword}
923 SwiftReplicas: { get_param: SwiftReplicas}
924 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
925 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
926 ServiceNetMap: {get_param: ServiceNetMap}
927 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
928 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
929 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
930 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
931 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
932 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
933 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
934 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
935 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
936 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
937 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
938 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
939 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
940 UpdateIdentifier: {get_param: UpdateIdentifier}
943 template: {get_param: ControllerHostnameFormat}
945 '%stackname%': {get_param: 'OS::stack_name'}
947 ServerMetadata: {get_param: ServerMetadata}
948 SchedulerHints: {get_param: ControllerSchedulerHints}
951 type: OS::Heat::ResourceGroup
954 count: {get_param: ComputeCount}
955 removal_policies: {get_param: ComputeRemovalPolicies}
957 type: OS::TripleO::Compute
959 AdminPassword: {get_param: AdminPassword}
960 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
961 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
962 CeilometerPassword: {get_param: CeilometerPassword}
963 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
964 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
965 Debug: {get_param: Debug}
966 ExtraConfig: {get_param: ExtraConfig}
967 Flavor: {get_param: OvercloudComputeFlavor}
968 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
969 Image: {get_param: NovaImage}
970 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
971 KeyName: {get_param: KeyName}
972 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
973 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
974 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
975 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
976 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
977 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
978 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
979 NeutronNetworkType: {get_param: NeutronNetworkType}
980 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
981 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
982 NeutronPassword: {get_param: NeutronPassword}
983 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
984 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
985 NeutronDVR: {get_param: NeutronDVR}
986 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
987 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
988 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
989 NeutronCorePlugin: {get_param: NeutronCorePlugin}
990 NeutronServicePlugins: {get_param: NeutronServicePlugins}
991 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
992 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
993 # L3 HA and Failover is not relevant for Computes, should be removed
994 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
995 NeutronL3HA: {get_param: NeutronL3HA}
996 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
997 NovaComputeDriver: {get_param: NovaComputeDriver}
998 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
999 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1000 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1001 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1002 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1003 NovaPassword: {get_param: NovaPassword}
1004 NovaOVSBridge: {get_param: NovaOVSBridge}
1005 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1006 NtpServer: {get_param: NtpServer}
1007 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1008 RabbitPassword: {get_param: RabbitPassword}
1009 RabbitUserName: {get_param: RabbitUserName}
1010 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1011 RabbitClientPort: {get_param: RabbitClientPort}
1012 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1013 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1014 ServiceNetMap: {get_param: ServiceNetMap}
1015 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1016 UpdateIdentifier: {get_param: UpdateIdentifier}
1019 template: {get_param: ComputeHostnameFormat}
1021 '%stackname%': {get_param: 'OS::stack_name'}
1022 CloudDomain: {get_param: CloudDomain}
1023 ServerMetadata: {get_param: ServerMetadata}
1024 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1027 type: OS::Heat::ResourceGroup
1028 depends_on: Networks
1030 count: {get_param: BlockStorageCount}
1031 removal_policies: {get_param: BlockStorageRemovalPolicies}
1033 type: OS::TripleO::BlockStorage
1035 Debug: {get_param: Debug}
1036 Image: {get_param: BlockStorageImage}
1037 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1038 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1039 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1040 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1041 CinderPassword: {get_param: CinderPassword}
1042 KeyName: {get_param: KeyName}
1043 Flavor: {get_param: OvercloudBlockStorageFlavor}
1044 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1045 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1046 RabbitPassword: {get_param: RabbitPassword}
1047 RabbitUserName: {get_param: RabbitUserName}
1048 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1049 RabbitClientPort: {get_param: RabbitClientPort}
1050 NtpServer: {get_param: NtpServer}
1051 UpdateIdentifier: {get_param: UpdateIdentifier}
1054 template: {get_param: BlockStorageHostnameFormat}
1056 '%stackname%': {get_param: 'OS::stack_name'}
1057 ServiceNetMap: {get_param: ServiceNetMap}
1058 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1059 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1060 ExtraConfig: {get_param: ExtraConfig}
1061 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1062 CloudDomain: {get_param: CloudDomain}
1063 ServerMetadata: {get_param: ServerMetadata}
1064 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1067 type: OS::Heat::ResourceGroup
1068 depends_on: Networks
1070 count: {get_param: ObjectStorageCount}
1071 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1073 type: OS::TripleO::ObjectStorage
1075 KeyName: {get_param: KeyName}
1076 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1077 HashSuffix: {get_param: SwiftHashSuffix}
1078 MountCheck: {get_param: SwiftMountCheck}
1079 MinPartHours: {get_param: SwiftMinPartHours}
1080 PartPower: {get_param: SwiftPartPower}
1081 Image: {get_param: SwiftStorageImage}
1082 Replicas: { get_param: SwiftReplicas}
1083 NtpServer: {get_param: NtpServer}
1084 UpdateIdentifier: {get_param: UpdateIdentifier}
1085 ServiceNetMap: {get_param: ServiceNetMap}
1088 template: {get_param: ObjectStorageHostnameFormat}
1090 '%stackname%': {get_param: 'OS::stack_name'}
1091 ExtraConfig: {get_param: ExtraConfig}
1092 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1093 CloudDomain: {get_param: CloudDomain}
1094 ServerMetadata: {get_param: ServerMetadata}
1095 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1098 type: OS::Heat::ResourceGroup
1099 depends_on: Networks
1101 count: {get_param: CephStorageCount}
1102 removal_policies: {get_param: CephStorageRemovalPolicies}
1104 type: OS::TripleO::CephStorage
1106 Image: {get_param: CephStorageImage}
1107 KeyName: {get_param: KeyName}
1108 Flavor: {get_param: OvercloudCephStorageFlavor}
1109 NtpServer: {get_param: NtpServer}
1110 ServiceNetMap: {get_param: ServiceNetMap}
1111 UpdateIdentifier: {get_param: UpdateIdentifier}
1114 template: {get_param: CephStorageHostnameFormat}
1116 '%stackname%': {get_param: 'OS::stack_name'}
1117 ExtraConfig: {get_param: ExtraConfig}
1118 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1119 CloudDomain: {get_param: CloudDomain}
1120 ServerMetadata: {get_param: ServerMetadata}
1121 SchedulerHints: {get_param: CephStorageSchedulerHints}
1123 ControllerIpListMap:
1124 type: OS::TripleO::Network::Ports::NetIpListMap
1126 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1127 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1128 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1129 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1130 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1131 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1132 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1135 type: OS::TripleO::AllNodes::SoftwareConfig
1137 compute_hosts: {get_attr: [Compute, hosts_entry]}
1138 controller_hosts: {get_attr: [Controller, hosts_entry]}
1139 controller_ips: {get_attr: [Controller, ip_address]}
1140 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1141 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1142 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1143 controller_names: {get_attr: [Controller, hostname]}
1144 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1145 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1146 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1147 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1148 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1149 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1150 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1151 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1152 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1153 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1154 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1155 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1156 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1157 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1158 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1159 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1160 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1161 DeployIdentifier: {get_param: DeployIdentifier}
1162 UpdateIdentifier: {get_param: UpdateIdentifier}
1165 type: OS::Heat::RandomString
1169 MysqlClusterUniquePart:
1170 type: OS::Heat::RandomString
1175 type: OS::Heat::RandomString
1178 salt: {get_param: RabbitCookieSalt}
1180 # creates the network architecture
1182 type: OS::TripleO::Network
1185 type: OS::Neutron::Port
1186 depends_on: Networks
1188 name: control_virtual_ip
1189 network: {get_param: NeutronControlPlaneID}
1190 fixed_ips: {get_param: ControlFixedIPs}
1191 replacement_policy: AUTO
1194 depends_on: Networks
1195 type: OS::TripleO::Network::Ports::RedisVipPort
1197 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1198 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1199 PortName: redis_virtual_ip
1200 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1203 # The public VIP is on the External net, falls back to ctlplane
1205 depends_on: Networks
1206 type: OS::TripleO::Network::Ports::ExternalVipPort
1208 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1209 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1210 PortName: public_virtual_ip
1211 FixedIPs: {get_param: PublicVirtualFixedIPs}
1213 InternalApiVirtualIP:
1214 depends_on: Networks
1215 type: OS::TripleO::Network::Ports::InternalApiVipPort
1217 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1218 PortName: internal_api_virtual_ip
1221 depends_on: Networks
1222 type: OS::TripleO::Network::Ports::StorageVipPort
1224 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1225 PortName: storage_virtual_ip
1227 StorageMgmtVirtualIP:
1228 depends_on: Networks
1229 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1231 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1232 PortName: storage_management_virtual_ip
1235 type: OS::TripleO::Network::Ports::NetVipMap
1237 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1238 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1239 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1240 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1241 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1242 # No tenant or management VIP required
1245 type: OS::TripleO::VipConfig
1248 type: OS::Heat::StructuredDeployments
1250 config: {get_resource: VipConfig}
1251 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1253 # service VIP mappings
1254 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1255 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1256 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1257 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1258 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1259 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1260 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1261 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1262 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1263 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1264 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1265 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1266 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1267 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1268 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1269 # direct configuration of Virtual IPs for each network
1270 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1271 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1272 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1273 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1274 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1276 ControllerBootstrapNodeConfig:
1277 type: OS::TripleO::BootstrapNode::SoftwareConfig
1279 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1280 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1282 ControllerBootstrapNodeDeployment:
1283 type: OS::Heat::StructuredDeployments
1285 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1286 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1288 ControllerSwiftDeployment:
1289 type: OS::Heat::StructuredDeployments
1291 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1292 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1294 ObjectStorageSwiftDeployment:
1295 type: OS::Heat::StructuredDeployments
1297 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1298 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1300 SwiftDevicesAndProxyConfig:
1301 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1303 controller_swift_devices: {get_attr: [Controller, swift_device]}
1304 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1305 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1307 ComputeCephDeployment:
1308 type: OS::Heat::StructuredDeployments
1310 config: {get_attr: [CephClusterConfig, config_id]}
1311 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1313 ControllerCephDeployment:
1314 type: OS::Heat::StructuredDeployments
1316 config: {get_attr: [CephClusterConfig, config_id]}
1317 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1319 CephStorageCephDeployment:
1320 type: OS::Heat::StructuredDeployments
1322 config: {get_attr: [CephClusterConfig, config_id]}
1323 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1326 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1328 ceph_storage_count: {get_param: CephStorageCount}
1329 ceph_fsid: {get_param: CephClusterFSID}
1330 ceph_mon_key: {get_param: CephMonKey}
1331 ceph_admin_key: {get_param: CephAdminKey}
1332 ceph_client_key: {get_param: CephClientKey}
1333 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1334 ceph_mon_names: {get_attr: [Controller, hostname]}
1335 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1337 ControllerClusterConfig:
1338 type: OS::Heat::StructuredConfig
1340 group: os-apply-config
1343 nodes: {get_attr: [Controller, corosync_node]}
1347 nodes: {get_attr: [Controller, hostname]}
1349 nodes: {get_attr: [Controller, corosync_node]}
1351 nodes: {get_attr: [Controller, corosync_node]}
1353 ControllerClusterDeployment:
1354 type: OS::Heat::StructuredDeployments
1356 config: {get_resource: ControllerClusterConfig}
1357 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1359 ControllerAllNodesDeployment:
1360 type: OS::Heat::StructuredDeployments
1362 config: {get_attr: [allNodesConfig, config_id]}
1363 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1365 ComputeAllNodesDeployment:
1366 type: OS::Heat::StructuredDeployments
1368 config: {get_attr: [allNodesConfig, config_id]}
1369 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1371 BlockStorageAllNodesDeployment:
1372 type: OS::Heat::StructuredDeployments
1374 config: {get_attr: [allNodesConfig, config_id]}
1375 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1377 ObjectStorageAllNodesDeployment:
1378 type: OS::Heat::StructuredDeployments
1380 config: {get_attr: [allNodesConfig, config_id]}
1381 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1383 CephStorageAllNodesDeployment:
1384 type: OS::Heat::StructuredDeployments
1386 config: {get_attr: [allNodesConfig, config_id]}
1387 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1389 # All Nodes Validations
1390 AllNodesValidationConfig:
1391 type: OS::TripleO::AllNodes::Validation
1396 - - {get_attr: [Controller, resource.0.external_ip_address]}
1397 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1398 - {get_attr: [Controller, resource.0.storage_ip_address]}
1399 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1400 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1402 ControllerAllNodesValidationDeployment:
1403 type: OS::Heat::StructuredDeployments
1404 depends_on: ControllerAllNodesDeployment
1406 config: {get_resource: AllNodesValidationConfig}
1407 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1409 ComputeAllNodesValidationDeployment:
1410 type: OS::Heat::StructuredDeployments
1411 depends_on: ComputeAllNodesDeployment
1413 config: {get_resource: AllNodesValidationConfig}
1414 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1416 BlockStorageAllNodesValidationDeployment:
1417 type: OS::Heat::StructuredDeployments
1418 depends_on: BlockStorageAllNodesDeployment
1420 config: {get_resource: AllNodesValidationConfig}
1421 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1423 ObjectStorageAllNodesValidationDeployment:
1424 type: OS::Heat::StructuredDeployments
1425 depends_on: ObjectStorageAllNodesDeployment
1427 config: {get_resource: AllNodesValidationConfig}
1428 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1430 CephStorageAllNodesValidationDeployment:
1431 type: OS::Heat::StructuredDeployments
1432 depends_on: CephStorageAllNodesDeployment
1434 config: {get_resource: AllNodesValidationConfig}
1435 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1437 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1438 # the nested template may configure each role differently (or not at all)
1439 AllNodesExtraConfig:
1440 type: OS::TripleO::AllNodesExtraConfig
1442 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1443 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1444 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1445 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1446 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1448 # Nested stack deployment runs after all other controller deployments
1449 ControllerNodesPostDeployment:
1450 type: OS::TripleO::ControllerPostDeployment
1451 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1453 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1454 NodeConfigIdentifiers:
1455 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1456 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1457 deployment_identifier: {get_param: DeployIdentifier}
1459 ComputeNodesPostDeployment:
1460 type: OS::TripleO::ComputePostDeployment
1461 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1463 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1464 NodeConfigIdentifiers:
1465 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1466 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1467 deployment_identifier: {get_param: DeployIdentifier}
1469 ObjectStorageNodesPostDeployment:
1470 type: OS::TripleO::ObjectStoragePostDeployment
1471 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1473 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1474 NodeConfigIdentifiers:
1475 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1476 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1477 deployment_identifier: {get_param: DeployIdentifier}
1479 BlockStorageNodesPostDeployment:
1480 type: OS::TripleO::BlockStoragePostDeployment
1481 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1483 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1484 NodeConfigIdentifiers:
1485 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1486 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1487 deployment_identifier: {get_param: DeployIdentifier}
1489 CephStorageNodesPostDeployment:
1490 type: OS::TripleO::CephStoragePostDeployment
1491 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1493 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1494 NodeConfigIdentifiers:
1495 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1496 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1497 deployment_identifier: {get_param: DeployIdentifier}
1501 description: URL for the Overcloud Keystone service
1502 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1504 description: Keystone Admin VIP endpoint
1505 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1507 description: Controller VIP for public API endpoints
1508 value: {get_attr: [VipMap, net_ip_map, external]}
1509 CeilometerInternalVip:
1510 description: VIP for Ceilometer API internal endpoint
1511 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1513 description: VIP for Cinder API internal endpoint
1514 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1516 description: VIP for Glance API internal endpoint
1517 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1519 description: VIP for Heat API internal endpoint
1520 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1521 KeystoneInternalVip:
1522 description: VIP for Keystone API internal endpoint
1523 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1525 description: VIP for Neutron API internal endpoint
1526 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1528 description: VIP for Nova API internal endpoint
1529 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1531 description: VIP for Swift Proxy internal endpoint
1532 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1535 The content that should be appended to your /etc/hosts if you want to get
1536 hostname-based access to the deployed nodes (useful for testing without
1538 value: {get_attr: [allNodesConfig, hosts_entries]}