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)
17 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
22 description: The ceilometer backend type.
24 CeilometerMeteringSecret:
26 description: Secret shared by the ceilometer services.
31 description: The password for the ceilometer service account.
34 # This has to be an UUID so for now we generate it outside the template
38 description: The Ceph cluster FSID. Must be a UUID.
41 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
46 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
49 CinderEnableNfsBackend:
51 description: Whether to enable or not the NFS backend for Cinder
55 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.
61 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
62 CinderEnableIscsiBackend:
64 description: Whether to enable or not the Iscsi backend for Cinder
66 CinderEnableRbdBackend:
68 description: Whether to enable or not the Rbd backend for Cinder
72 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
76 description: Should be used for arbitrary ips.
80 description: Set to True to enable debugging on all services.
84 description: Syslog address where HAproxy will send its log
88 description: A list of IP/Hostname allowed to connect to horizon
89 type: comma_delimited_list
91 default: 'REBUILD_PRESERVE_EPHEMERAL'
92 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
96 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
99 - custom_constraint: nova.keypair
100 NeutronExternalNetworkBridge:
101 description: Name of bridge used for external network traffic.
104 NeutronBridgeMappings:
106 The OVS logical->physical bridge mappings to use. See the Neutron
107 documentation for details. Defaults to mapping br-ex - the external
108 bridge on hosts - to a physical name 'datacentre' which can be used
109 to create provider networks (and we use this for the default floating
110 network) - if changing this either use different post-install network
111 scripts or be sure to keep 'datacentre' as a mapping network name.
113 default: "datacentre:br-ex"
114 NeutronControlPlaneID:
117 description: Neutron ID or name for ctlplane network.
118 NeutronEnableIsolatedMetadata:
120 description: If True, DHCP provide metadata route to VM.
122 NeutronEnableTunnelling:
128 Enable/disable the L2 population feature in the Neutron agents.
132 default: 'datacentre'
134 If set, flat networks to configure in neutron plugins. Defaults to
135 'datacentre' to permit external network creation.
138 description: The tenant network type for Neutron, either gre or vxlan.
142 description: The password for the neutron service account, used by neutron agents.
145 NeutronPublicInterface:
147 description: What interface to bridge onto br-ex for network nodes.
149 NeutronPublicInterfaceTag:
152 VLAN tag for creating a public VLAN. The tag will be used to
153 create an access port on the exterior bridge for each control plane node,
154 and that port will be given the IP address returned by neutron from the
155 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
156 overcloud.yaml to include the deployment of VLAN ports to the control
159 NeutronComputeAgentMode:
161 description: Agent mode for the neutron-l3-agent on the compute hosts
165 description: Agent mode for the neutron-l3-agent on the controller hosts
169 description: Whether to configure Neutron Distributed Virtual Routers
171 NeutronMetadataProxySharedSecret:
173 description: Shared secret to prevent spoofing
179 The tunnel types for the Neutron tenant network. To specify multiple
180 values, use a comma separated string, like so: 'gre,vxlan'
182 NeutronTunnelIdRanges:
184 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
185 of GRE tunnel IDs that are available for tenant network allocation
186 default: ["1:1000", ]
187 type: comma_delimited_list
190 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
191 of VXLAN VNI IDs that are available for tenant network allocation
192 default: ["1:1000", ]
193 type: comma_delimited_list
197 The core plugin for Neutron. The value should be the entrypoint to be loaded
198 from neutron.core_plugins namespace.
200 NeutronServicePlugins:
203 Comma-separated list of service plugin entrypoints to be loaded from the
204 neutron.service_plugins namespace.
205 type: comma_delimited_list
207 default: "vxlan,vlan,flat,gre"
209 Comma-separated list of network type driver entrypoints to be loaded.
210 type: comma_delimited_list
211 NeutronMechanismDrivers:
212 default: 'openvswitch'
214 The mechanism drivers for the Neutron tenant network. To specify multiple
215 values, use a comma separated string, like so: 'openvswitch,l2_population'
217 NeutronAllowL3AgentFailover:
219 description: Allow automatic l3-agent failover
223 description: Whether to enable l3-agent HA
225 NeutronDhcpAgentsPerNetwork:
228 description: The number of neutron dhcp agents to schedule per network
231 description: The password for the nova service account, used by nova-api.
236 description: Comma-separated list of ntp servers
237 type: comma_delimited_list
240 description: Should MongoDb journaling be disabled
242 PublicVirtualFixedIPs:
245 Control the IP allocation for the PublicVirtualInterface port. E.g.
246 [{'ip_address':'1.2.3.4'}]
251 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
252 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
255 description: The username for RabbitMQ
259 description: The password for RabbitMQ
265 Rabbit client subscriber parameter to specify
266 an SSL connection to the RabbitMQ host.
270 description: Set rabbit subscriber port, change this if using SSL
272 # We need to set this as string because 'unlimited' is a valid setting
275 description: Configures RabbitMQ FD limit
277 SnmpdReadonlyUserName:
278 default: ro_snmp_user
279 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
281 SnmpdReadonlyUserPassword:
283 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
287 # Controller-specific params
290 description: The keystone auth secret.
293 CinderLVMLoopDeviceSize:
295 description: The size of the loopback file used by the cinder LVM driver.
297 CinderNfsMountOptions:
300 Mount options for NFS mounts used by Cinder NFS backend. Effective
301 when CinderEnableNfsBackend is true.
306 NFS servers used by Cinder NFS backend. Effective when
307 CinderEnableNfsBackend is true.
308 type: comma_delimited_list
311 description: The password for the cinder service account, used by cinder-api.
316 description: The iSCSI helper to use with cinder.
323 controllerExtraConfig:
326 Controller specific configuration to inject into the cluster. Same
327 structure as ExtraConfig.
331 default: overcloud-control
333 - custom_constraint: glance.image
334 OvercloudControlFlavor:
335 description: Flavor for control nodes to request when deploying.
338 - custom_constraint: nova.flavor
339 ControlVirtualInterface:
341 description: Interface where virtual ip will be assigned.
345 description: Whether to enable fencing in Pacemaker or not.
349 description: Whether to use Galera instead of regular MariaDB.
351 ControllerEnableCephStorage:
353 description: Whether to deploy Ceph Storage (OSD) on the Controller
355 ControllerEnableSwiftStorage:
357 description: Whether to enable Swift Storage on the Controller
362 Additional configuration to inject into the cluster. The format required
363 may be implementation specific, e.g puppet hieradata. Any role specific
364 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
369 Pacemaker fencing configuration. The JSON should have
370 the following structure:
374 "agent": "AGENT_NAME",
375 "host_mac": "HOST_MAC_ADDRESS",
376 "params": {"PARAM_NAME": "PARAM_VALUE"}
384 "agent": "fence_xvm",
385 "host_mac": "52:54:00:aa:bb:cc",
387 "multicast_address": "225.0.0.12",
388 "port": "baremetal_0",
390 "manage_key_file": true,
391 "key_file": "/etc/fence_xvm.key",
392 "key_file_password": "abcdef"
399 description: The filepath of the file to use for logging messages from Glance.
402 GlanceNotifierStrategy:
403 description: Strategy to use for Glance notification queue
408 description: The password for the glance service account, used by the glance services.
413 description: The short name of the Glance backend to use. Should be one
414 of swift, rbd or file
417 - allowed_values: ['swift', 'file', 'rbd']
420 description: The password for the Heat service account, used by the Heat services.
423 HeatStackDomainAdminPassword:
424 description: Password for heat_domain_admin user.
428 KeystoneCACertificate:
430 description: Keystone self-signed certificate authority certificate.
432 KeystoneSigningCertificate:
434 description: Keystone certificate for verifying token validity.
438 description: Keystone key for signing tokens.
441 KeystoneSSLCertificate:
443 description: Keystone certificate for verifying token validity.
445 KeystoneSSLCertificateKey:
447 description: Keystone key for signing tokens.
450 KeystoneNotificationDriver:
451 description: Comma-separated list of Oslo notification drivers used by Keystone
452 default: ['messaging']
453 type: comma_delimited_list
454 KeystoneNotificationFormat:
455 description: The Keystone notification format
459 - allowed_values: [ 'basic', 'cadf' ]
462 description: Whether to manage IPtables rules.
466 description: Whether IPtables rules should be purged before setting up the ones.
468 MysqlInnodbBufferPoolSize:
470 Specifies the size of the buffer pool in megabytes. Setting to
471 zero should be interpreted as "no value" and will defer to the
476 description: Configures MySQL max_connections config setting
479 NeutronDnsmasqOptions:
480 default: 'dhcp-option-force=26,1400'
481 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
483 NeutronPublicInterfaceDefaultRoute:
485 description: A custom default route for the NeutronPublicInterface.
487 NeutronPublicInterfaceIP:
489 description: A custom IP address to put onto the NeutronPublicInterface.
491 NeutronPublicInterfaceRawDevice:
493 description: If set, the public interface is a vlan with this device as the raw device.
495 PublicVirtualInterface:
498 Specifies the interface where the public-facing virtual ip will be assigned.
499 This should be int_public when a VLAN is being used.
503 description: A random string to be used as a salt when hashing to determine mappings in the ring.
508 description: The password for the swift service account, used by the swift proxy services.
513 description: Value of mount_check in Swift account/container/object -server.conf
518 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
521 description: Partition Power to use when building Swift rings
526 description: How many replicas to use in the swift rings.
528 # Compute-specific params
529 CeilometerComputeAgent:
530 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
534 - allowed_values: ['', Present]
538 HypervisorNeutronPhysicalBridge:
541 An OVS bridge to create on each hypervisor. This defaults to br-ex the
542 same as the control plane nodes, as we have a uniform configuration of
543 the openvswitch agent. Typically should not need to be changed.
545 HypervisorNeutronPublicInterface:
547 description: What interface to add to the HypervisorNeutronPhysicalBridge.
549 NeutronNetworkVLANRanges:
550 default: 'datacentre'
552 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
553 Neutron documentation for permitted values. Defaults to permitting any
554 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
555 type: comma_delimited_list
558 default: libvirt.LibvirtDriver
559 NovaComputeExtraConfig:
562 NovaCompute specific configuration to inject into the cluster. Same
563 structure as ExtraConfig.
565 NovaComputeLibvirtType:
568 NovaComputeLibvirtVifDriver:
570 description: Libvirt VIF driver configuration for the network
572 NovaEnableRbdBackend:
574 description: Whether to enable or not the Rbd backend for Nova
578 default: overcloud-compute
580 - custom_constraint: glance.image
583 description: Name of integration bridge used by Open vSwitch
585 NovaSecurityGroupAPI:
587 description: The full class name of the security API class
589 OvercloudComputeFlavor:
590 description: Use this flavor
593 - custom_constraint: nova.flavor
596 NeutronTenantNetwork: tenant
597 CeilometerApiNetwork: internal_api
598 MongoDbNetwork: internal_api
599 CinderApiNetwork: internal_api
600 CinderIscsiNetwork: storage
601 GlanceApiNetwork: storage
602 GlanceRegistryNetwork: internal_api
603 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
604 KeystonePublicApiNetwork: internal_api
605 NeutronApiNetwork: internal_api
606 HeatApiNetwork: internal_api
607 NovaApiNetwork: internal_api
608 NovaMetadataNetwork: internal_api
609 NovaVncProxyNetwork: internal_api
610 SwiftMgmtNetwork: storage_mgmt
611 SwiftProxyNetwork: storage
612 HorizonNetwork: internal_api
613 MemcachedNetwork: internal_api
614 RabbitMqNetwork: internal_api
615 RedisNetwork: internal_api
616 MysqlNetwork: internal_api
617 CephClusterNetwork: storage_mgmt
618 CephPublicNetwork: storage
619 ControllerHostnameResolveNetwork: internal_api
620 ComputeHostnameResolveNetwork: internal_api
621 BlockStorageHostnameResolveNetwork: internal_api
622 ObjectStorageHostnameResolveNetwork: internal_api
623 CephStorageHostnameResolveNetwork: storage
624 description: Mapping of service_name -> network name. Typically set
625 via parameter_defaults in the resource registry.
628 # Block storage specific parameters
633 default: overcloud-cinder-volume
635 OvercloudBlockStorageFlavor:
636 description: Flavor for block storage nodes to request when deploying.
639 - custom_constraint: nova.flavor
640 BlockStorageExtraConfig:
643 BlockStorage specific configuration to inject into the cluster. Same
644 structure as ExtraConfig.
647 # Object storage specific parameters
651 OvercloudSwiftStorageFlavor:
652 description: Flavor for Swift storage nodes to request when deploying.
655 - custom_constraint: nova.flavor
657 default: overcloud-swift-storage
659 ObjectStorageExtraConfig:
662 ObjectStorage specific configuration to inject into the cluster. Same
663 structure as ExtraConfig.
667 # Ceph storage specific parameters
672 default: overcloud-ceph-storage
674 OvercloudCephStorageFlavor:
676 description: Flavor for Ceph storage nodes to request when deploying.
679 - custom_constraint: nova.flavor
680 CephStorageExtraConfig:
683 CephStorage specific configuration to inject into the cluster. Same
684 structure as ExtraConfig.
687 # Hostname format for each role
688 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
689 # and %stackname% is replaced with OS::stack_name in the template below.
690 # If you want to use the heat generated names, pass '' (empty string).
691 ControllerHostnameFormat:
693 description: Format for Controller node hostnames
694 default: '%stackname%-controller-%index%'
695 ComputeHostnameFormat:
697 description: Format for Compute node hostnames
698 default: '%stackname%-novacompute-%index%'
699 BlockStorageHostnameFormat:
701 description: Format for BlockStorage node hostnames
702 default: '%stackname%-blockstorage-%index%'
703 ObjectStorageHostnameFormat:
705 description: Format for SwiftStorage node hostnames
706 default: '%stackname%-objectstorage-%index%'
707 CephStorageHostnameFormat:
709 description: Format for CephStorage node hostnames
710 default: '%stackname%-cephstorage-%index%'
712 # Identifiers to trigger tasks on nodes
717 Setting to a previously unused value during stack-update will trigger
718 package update on all nodes
723 Setting this to a unique value will re-run any deployment tasks which
724 perform configuration on a Heat stack-update.
726 # If you want to remove a specific node from a resource group, you can pass
727 # the node name or id as a <Group>RemovalPolicies parameter, for example:
728 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
729 ControllerRemovalPolicies:
733 List of resources to be removed from ControllerResourceGroup when
734 doing an update which requires removal of specific resources.
735 ComputeRemovalPolicies:
739 List of resources to be removed from ComputeResourceGroup when
740 doing an update which requires removal of specific resources.
741 BlockStorageRemovalPolicies:
745 List of resources to be removed from BlockStorageResourceGroup when
746 doing an update which requires removal of specific resources.
747 ObjectStorageRemovalPolicies:
751 List of resources to be removed from ObjectStorageResourceGroup when
752 doing an update which requires removal of specific resources.
753 CephStorageRemovalPolicies:
757 List of resources to be removed from CephStorageResourceGroup when
758 doing an update which requires removal of specific resources.
763 HeatAuthEncryptionKey:
764 type: OS::Heat::RandomString
767 type: OS::Heat::RandomString
772 type: OS::Heat::RandomString
777 type: OS::TripleO::EndpointMap
779 CloudName: {get_param: CloudName}
780 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
781 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
782 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
783 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
784 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
785 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
786 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
787 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
788 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
789 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
790 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
791 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
794 type: OS::Heat::ResourceGroup
797 count: {get_param: ControllerCount}
798 removal_policies: {get_param: ControllerRemovalPolicies}
800 type: OS::TripleO::Controller
802 AdminPassword: {get_param: AdminPassword}
803 AdminToken: {get_param: AdminToken}
804 CeilometerBackend: {get_param: CeilometerBackend}
805 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
806 CeilometerPassword: {get_param: CeilometerPassword}
807 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
808 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
809 CinderNfsServers: {get_param: CinderNfsServers}
810 CinderPassword: {get_param: CinderPassword}
811 CinderISCSIHelper: {get_param: CinderISCSIHelper}
812 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
813 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
814 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
815 CloudName: {get_param: CloudName}
816 ControlVirtualInterface: {get_param: ControlVirtualInterface}
817 ControllerExtraConfig: {get_param: controllerExtraConfig}
818 Debug: {get_param: Debug}
819 EnableFencing: {get_param: EnableFencing}
820 ManageFirewall: {get_param: ManageFirewall}
821 PurgeFirewallRules: {get_param: PurgeFirewallRules}
822 EnableGalera: {get_param: EnableGalera}
823 EnableCephStorage: {get_param: ControllerEnableCephStorage}
824 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
825 ExtraConfig: {get_param: ExtraConfig}
826 FencingConfig: {get_param: FencingConfig}
827 Flavor: {get_param: OvercloudControlFlavor}
828 GlancePassword: {get_param: GlancePassword}
829 GlanceBackend: {get_param: GlanceBackend}
830 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
831 GlanceLogFile: {get_param: GlanceLogFile}
832 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
833 HeatPassword: {get_param: HeatPassword}
834 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
835 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
836 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
837 HorizonSecret: {get_resource: HorizonSecret}
838 Image: {get_param: controllerImage}
839 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
840 KeyName: {get_param: KeyName}
841 KeystoneCACertificate: {get_param: KeystoneCACertificate}
842 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
843 KeystoneSigningKey: {get_param: KeystoneSigningKey}
844 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
845 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
846 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
847 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
848 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
849 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
850 MysqlMaxConnections: {get_param: MysqlMaxConnections}
851 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
852 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
853 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
854 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
855 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
856 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
857 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
858 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
859 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
860 NeutronPublicInterface: {get_param: NeutronPublicInterface}
861 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
862 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
863 NeutronPassword: {get_param: NeutronPassword}
864 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
865 NeutronDVR: {get_param: NeutronDVR}
866 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
867 NeutronAgentMode: {get_param: NeutronAgentMode}
868 NeutronCorePlugin: {get_param: NeutronCorePlugin}
869 NeutronServicePlugins: {get_param: NeutronServicePlugins}
870 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
871 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
872 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
873 NeutronL3HA: {get_param: NeutronL3HA}
874 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
875 NeutronNetworkType: {get_param: NeutronNetworkType}
876 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
877 NovaPassword: {get_param: NovaPassword}
878 NtpServer: {get_param: NtpServer}
879 MongoDbNoJournal: {get_param: MongoDbNoJournal}
880 PcsdPassword: {get_resource: PcsdPassword}
881 PublicVirtualInterface: {get_param: PublicVirtualInterface}
882 RabbitPassword: {get_param: RabbitPassword}
883 RabbitUserName: {get_param: RabbitUserName}
884 RabbitCookie: {get_attr: [RabbitCookie, value]}
885 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
886 RabbitClientPort: {get_param: RabbitClientPort}
887 RabbitFDLimit: {get_param: RabbitFDLimit}
888 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
889 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
890 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
891 SwiftHashSuffix: {get_param: SwiftHashSuffix}
892 SwiftMountCheck: {get_param: SwiftMountCheck}
893 SwiftMinPartHours: {get_param: SwiftMinPartHours}
894 SwiftPartPower: {get_param: SwiftPartPower}
895 SwiftPassword: {get_param: SwiftPassword}
896 SwiftReplicas: { get_param: SwiftReplicas}
897 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
898 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
899 ServiceNetMap: {get_param: ServiceNetMap}
900 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
901 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
902 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
903 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
904 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
905 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
906 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
907 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
908 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
909 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
910 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
911 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
912 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
913 UpdateIdentifier: {get_param: UpdateIdentifier}
916 template: {get_param: ControllerHostnameFormat}
918 '%stackname%': {get_param: 'OS::stack_name'}
922 type: OS::Heat::ResourceGroup
925 count: {get_param: ComputeCount}
926 removal_policies: {get_param: ComputeRemovalPolicies}
928 type: OS::TripleO::Compute
930 AdminPassword: {get_param: AdminPassword}
931 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
932 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
933 CeilometerPassword: {get_param: CeilometerPassword}
934 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
935 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
936 Debug: {get_param: Debug}
937 ExtraConfig: {get_param: ExtraConfig}
938 Flavor: {get_param: OvercloudComputeFlavor}
939 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
940 Image: {get_param: NovaImage}
941 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
942 KeyName: {get_param: KeyName}
943 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
944 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
945 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
946 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
947 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
948 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
949 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
950 NeutronNetworkType: {get_param: NeutronNetworkType}
951 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
952 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
953 NeutronPassword: {get_param: NeutronPassword}
954 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
955 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
956 NeutronDVR: {get_param: NeutronDVR}
957 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
958 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
959 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
960 NeutronCorePlugin: {get_param: NeutronCorePlugin}
961 NeutronServicePlugins: {get_param: NeutronServicePlugins}
962 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
963 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
964 # L3 HA and Failover is not relevant for Computes, should be removed
965 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
966 NeutronL3HA: {get_param: NeutronL3HA}
967 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
968 NovaComputeDriver: {get_param: NovaComputeDriver}
969 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
970 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
971 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
972 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
973 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
974 NovaPassword: {get_param: NovaPassword}
975 NovaOVSBridge: {get_param: NovaOVSBridge}
976 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
977 NtpServer: {get_param: NtpServer}
978 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
979 RabbitPassword: {get_param: RabbitPassword}
980 RabbitUserName: {get_param: RabbitUserName}
981 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
982 RabbitClientPort: {get_param: RabbitClientPort}
983 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
984 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
985 ServiceNetMap: {get_param: ServiceNetMap}
986 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
987 UpdateIdentifier: {get_param: UpdateIdentifier}
990 template: {get_param: ComputeHostnameFormat}
992 '%stackname%': {get_param: 'OS::stack_name'}
995 type: OS::Heat::ResourceGroup
998 count: {get_param: BlockStorageCount}
999 removal_policies: {get_param: BlockStorageRemovalPolicies}
1001 type: OS::TripleO::BlockStorage
1003 Debug: {get_param: Debug}
1004 Image: {get_param: BlockStorageImage}
1005 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1006 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1007 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1008 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1009 CinderPassword: {get_param: CinderPassword}
1010 KeyName: {get_param: KeyName}
1011 Flavor: {get_param: OvercloudBlockStorageFlavor}
1012 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1013 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1014 RabbitPassword: {get_param: RabbitPassword}
1015 RabbitUserName: {get_param: RabbitUserName}
1016 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1017 RabbitClientPort: {get_param: RabbitClientPort}
1018 NtpServer: {get_param: NtpServer}
1019 UpdateIdentifier: {get_param: UpdateIdentifier}
1022 template: {get_param: BlockStorageHostnameFormat}
1024 '%stackname%': {get_param: 'OS::stack_name'}
1025 ServiceNetMap: {get_param: ServiceNetMap}
1026 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1027 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1028 ExtraConfig: {get_param: ExtraConfig}
1029 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1032 type: OS::Heat::ResourceGroup
1033 depends_on: Networks
1035 count: {get_param: ObjectStorageCount}
1036 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1038 type: OS::TripleO::ObjectStorage
1040 KeyName: {get_param: KeyName}
1041 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1042 HashSuffix: {get_param: SwiftHashSuffix}
1043 MountCheck: {get_param: SwiftMountCheck}
1044 MinPartHours: {get_param: SwiftMinPartHours}
1045 PartPower: {get_param: SwiftPartPower}
1046 Image: {get_param: SwiftStorageImage}
1047 Replicas: { get_param: SwiftReplicas}
1048 NtpServer: {get_param: NtpServer}
1049 UpdateIdentifier: {get_param: UpdateIdentifier}
1050 ServiceNetMap: {get_param: ServiceNetMap}
1053 template: {get_param: ObjectStorageHostnameFormat}
1055 '%stackname%': {get_param: 'OS::stack_name'}
1056 ExtraConfig: {get_param: ExtraConfig}
1057 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1060 type: OS::Heat::ResourceGroup
1061 depends_on: Networks
1063 count: {get_param: CephStorageCount}
1064 removal_policies: {get_param: CephStorageRemovalPolicies}
1066 type: OS::TripleO::CephStorage
1068 Image: {get_param: CephStorageImage}
1069 KeyName: {get_param: KeyName}
1070 Flavor: {get_param: OvercloudCephStorageFlavor}
1071 NtpServer: {get_param: NtpServer}
1072 ServiceNetMap: {get_param: ServiceNetMap}
1073 UpdateIdentifier: {get_param: UpdateIdentifier}
1076 template: {get_param: CephStorageHostnameFormat}
1078 '%stackname%': {get_param: 'OS::stack_name'}
1079 ExtraConfig: {get_param: ExtraConfig}
1080 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1082 ControllerIpListMap:
1083 type: OS::TripleO::Network::Ports::NetIpListMap
1085 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1086 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1087 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1088 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1089 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1090 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1093 type: OS::TripleO::AllNodes::SoftwareConfig
1095 compute_hosts: {get_attr: [Compute, hosts_entry]}
1096 controller_hosts: {get_attr: [Controller, hosts_entry]}
1097 controller_ips: {get_attr: [Controller, ip_address]}
1098 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1099 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1100 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1101 controller_names: {get_attr: [Controller, hostname]}
1102 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1103 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1104 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1105 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1106 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1107 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1108 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1109 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1110 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1111 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1112 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1113 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1114 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1115 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1116 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1117 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1118 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1121 type: OS::Heat::RandomString
1125 MysqlClusterUniquePart:
1126 type: OS::Heat::RandomString
1131 type: OS::Heat::RandomString
1134 salt: {get_param: RabbitCookieSalt}
1136 # creates the network architecture
1138 type: OS::TripleO::Network
1141 type: OS::Neutron::Port
1142 depends_on: Networks
1144 name: control_virtual_ip
1145 network: {get_param: NeutronControlPlaneID}
1146 fixed_ips: {get_param: ControlFixedIPs}
1147 replacement_policy: AUTO
1150 depends_on: Networks
1151 type: OS::TripleO::Controller::Ports::RedisVipPort
1153 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1154 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1155 PortName: redis_virtual_ip
1156 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1158 # The public VIP is on the External net, falls back to ctlplane
1160 depends_on: Networks
1161 type: OS::TripleO::Controller::Ports::ExternalPort
1163 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1164 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1165 PortName: public_virtual_ip
1166 FixedIPs: {get_param: PublicVirtualFixedIPs}
1168 InternalApiVirtualIP:
1169 depends_on: Networks
1170 type: OS::TripleO::Controller::Ports::InternalApiPort
1172 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1173 PortName: internal_api_virtual_ip
1176 depends_on: Networks
1177 type: OS::TripleO::Controller::Ports::StoragePort
1179 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1180 PortName: storage_virtual_ip
1182 StorageMgmtVirtualIP:
1183 depends_on: Networks
1184 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1186 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1187 PortName: storage_management_virtual_ip
1190 type: OS::TripleO::Network::Ports::NetVipMap
1192 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1193 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1194 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1195 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1196 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1197 # No tenant VIP required
1200 type: OS::TripleO::VipConfig
1203 type: OS::Heat::StructuredDeployments
1205 config: {get_resource: VipConfig}
1206 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1208 # service VIP mappings
1209 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1210 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1211 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1212 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1213 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1214 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1215 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1216 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1217 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1218 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1219 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1220 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1221 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1222 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1223 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1224 # direct configuration of Virtual IPs for each network
1225 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1226 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1227 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1228 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1229 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1231 ControllerBootstrapNodeConfig:
1232 type: OS::TripleO::BootstrapNode::SoftwareConfig
1234 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1235 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1237 ControllerBootstrapNodeDeployment:
1238 type: OS::Heat::StructuredDeployments
1240 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1241 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1243 ControllerSwiftDeployment:
1244 type: OS::Heat::StructuredDeployments
1246 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1247 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1249 ObjectStorageSwiftDeployment:
1250 type: OS::Heat::StructuredDeployments
1252 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1253 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1255 SwiftDevicesAndProxyConfig:
1256 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1258 controller_swift_devices: {get_attr: [Controller, swift_device]}
1259 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1260 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1262 ComputeCephDeployment:
1263 type: OS::Heat::StructuredDeployments
1265 config: {get_attr: [CephClusterConfig, config_id]}
1266 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1268 ControllerCephDeployment:
1269 type: OS::Heat::StructuredDeployments
1271 config: {get_attr: [CephClusterConfig, config_id]}
1272 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1274 CephStorageCephDeployment:
1275 type: OS::Heat::StructuredDeployments
1277 config: {get_attr: [CephClusterConfig, config_id]}
1278 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1281 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1283 ceph_storage_count: {get_param: CephStorageCount}
1284 ceph_fsid: {get_param: CephClusterFSID}
1285 ceph_mon_key: {get_param: CephMonKey}
1286 ceph_admin_key: {get_param: CephAdminKey}
1287 ceph_client_key: {get_param: CephClientKey}
1288 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1289 ceph_mon_names: {get_attr: [Controller, hostname]}
1290 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1292 ControllerClusterConfig:
1293 type: OS::Heat::StructuredConfig
1295 group: os-apply-config
1298 nodes: {get_attr: [Controller, corosync_node]}
1302 nodes: {get_attr: [Controller, hostname]}
1304 nodes: {get_attr: [Controller, corosync_node]}
1306 nodes: {get_attr: [Controller, corosync_node]}
1308 ControllerClusterDeployment:
1309 type: OS::Heat::StructuredDeployments
1311 config: {get_resource: ControllerClusterConfig}
1312 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1314 ControllerAllNodesDeployment:
1315 type: OS::Heat::StructuredDeployments
1317 config: {get_attr: [allNodesConfig, config_id]}
1318 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1320 ComputeAllNodesDeployment:
1321 type: OS::Heat::StructuredDeployments
1323 config: {get_attr: [allNodesConfig, config_id]}
1324 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1326 BlockStorageAllNodesDeployment:
1327 type: OS::Heat::StructuredDeployments
1329 config: {get_attr: [allNodesConfig, config_id]}
1330 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1332 ObjectStorageAllNodesDeployment:
1333 type: OS::Heat::StructuredDeployments
1335 config: {get_attr: [allNodesConfig, config_id]}
1336 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1338 CephStorageAllNodesDeployment:
1339 type: OS::Heat::StructuredDeployments
1341 config: {get_attr: [allNodesConfig, config_id]}
1342 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1344 # All Nodes Validations
1345 AllNodesValidationConfig:
1346 type: OS::TripleO::AllNodes::Validation
1351 - - {get_attr: [Controller, resource.0.external_ip_address]}
1352 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1353 - {get_attr: [Controller, resource.0.storage_ip_address]}
1354 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1355 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1357 ControllerAllNodesValidationDeployment:
1358 type: OS::Heat::StructuredDeployments
1359 depends_on: ControllerAllNodesDeployment
1361 config: {get_resource: AllNodesValidationConfig}
1362 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1364 ComputeAllNodesValidationDeployment:
1365 type: OS::Heat::StructuredDeployments
1366 depends_on: ComputeAllNodesDeployment
1368 config: {get_resource: AllNodesValidationConfig}
1369 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1371 BlockStorageAllNodesValidationDeployment:
1372 type: OS::Heat::StructuredDeployments
1373 depends_on: BlockStorageAllNodesDeployment
1375 config: {get_resource: AllNodesValidationConfig}
1376 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1378 ObjectStorageAllNodesValidationDeployment:
1379 type: OS::Heat::StructuredDeployments
1380 depends_on: ObjectStorageAllNodesDeployment
1382 config: {get_resource: AllNodesValidationConfig}
1383 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1385 CephStorageAllNodesValidationDeployment:
1386 type: OS::Heat::StructuredDeployments
1387 depends_on: CephStorageAllNodesDeployment
1389 config: {get_resource: AllNodesValidationConfig}
1390 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1392 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1393 # the nested template may configure each role differently (or not at all)
1394 AllNodesExtraConfig:
1395 type: OS::TripleO::AllNodesExtraConfig
1397 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1398 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1399 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1400 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1401 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1403 # Nested stack deployment runs after all other controller deployments
1404 ControllerNodesPostDeployment:
1405 type: OS::TripleO::ControllerPostDeployment
1406 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1408 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1409 NodeConfigIdentifiers:
1410 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1411 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1412 deployment_identifier: {get_param: DeployIdentifier}
1414 ComputeNodesPostDeployment:
1415 type: OS::TripleO::ComputePostDeployment
1416 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1418 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1419 NodeConfigIdentifiers:
1420 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1421 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1422 deployment_identifier: {get_param: DeployIdentifier}
1424 ObjectStorageNodesPostDeployment:
1425 type: OS::TripleO::ObjectStoragePostDeployment
1426 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1428 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1429 NodeConfigIdentifiers:
1430 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1431 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1432 deployment_identifier: {get_param: DeployIdentifier}
1434 BlockStorageNodesPostDeployment:
1435 type: OS::TripleO::BlockStoragePostDeployment
1436 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1438 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1439 NodeConfigIdentifiers:
1440 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1441 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1442 deployment_identifier: {get_param: DeployIdentifier}
1444 CephStorageNodesPostDeployment:
1445 type: OS::TripleO::CephStoragePostDeployment
1446 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1448 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1449 NodeConfigIdentifiers:
1450 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1451 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1452 deployment_identifier: {get_param: DeployIdentifier}
1456 description: URL for the Overcloud Keystone service
1457 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1459 description: Keystone Admin VIP endpoint
1460 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1462 description: Controller VIP for public API endpoints
1463 value: {get_attr: [VipMap, net_ip_map, external]}
1464 CeilometerInternalVip:
1465 description: VIP for Ceilometer API internal endpoint
1466 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1468 description: VIP for Cinder API internal endpoint
1469 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1471 description: VIP for Glance API internal endpoint
1472 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1474 description: VIP for Heat API internal endpoint
1475 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1476 KeystoneInternalVip:
1477 description: VIP for Keystone API internal endpoint
1478 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1480 description: VIP for Neutron API internal endpoint
1481 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1483 description: VIP for Nova API internal endpoint
1484 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1486 description: VIP for Swift Proxy internal endpoint
1487 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}