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 default: 'localdomain'
290 The DNS domain used for the hosts. This should match the dhcp_domain
291 configured in the Undercloud neutron. Defaults to localdomain.
293 # Controller-specific params
296 description: The keystone auth secret.
299 CinderLVMLoopDeviceSize:
301 description: The size of the loopback file used by the cinder LVM driver.
303 CinderNfsMountOptions:
306 Mount options for NFS mounts used by Cinder NFS backend. Effective
307 when CinderEnableNfsBackend is true.
312 NFS servers used by Cinder NFS backend. Effective when
313 CinderEnableNfsBackend is true.
314 type: comma_delimited_list
317 description: The password for the cinder service account, used by cinder-api.
322 description: The iSCSI helper to use with cinder.
329 controllerExtraConfig:
332 Controller specific configuration to inject into the cluster. Same
333 structure as ExtraConfig.
337 default: overcloud-control
339 - custom_constraint: glance.image
340 OvercloudControlFlavor:
341 description: Flavor for control nodes to request when deploying.
344 - custom_constraint: nova.flavor
345 ControlVirtualInterface:
347 description: Interface where virtual ip will be assigned.
351 description: Whether to enable fencing in Pacemaker or not.
355 description: Whether to use Galera instead of regular MariaDB.
357 ControllerEnableCephStorage:
359 description: Whether to deploy Ceph Storage (OSD) on the Controller
361 ControllerEnableSwiftStorage:
363 description: Whether to enable Swift Storage on the Controller
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
414 description: The password for the glance service account, used by the glance services.
419 description: The short name of the Glance backend to use. Should be one
420 of swift, rbd or file
423 - allowed_values: ['swift', 'file', 'rbd']
426 description: The password for the Heat service account, used by the Heat services.
429 HeatStackDomainAdminPassword:
430 description: Password for heat_domain_admin user.
434 InstanceNameTemplate:
435 default: 'instance-%08x'
436 description: Template string to be used to generate instance names
438 KeystoneCACertificate:
440 description: Keystone self-signed certificate authority certificate.
442 KeystoneSigningCertificate:
444 description: Keystone certificate for verifying token validity.
448 description: Keystone key for signing tokens.
451 KeystoneSSLCertificate:
453 description: Keystone certificate for verifying token validity.
455 KeystoneSSLCertificateKey:
457 description: Keystone key for signing tokens.
460 KeystoneNotificationDriver:
461 description: Comma-separated list of Oslo notification drivers used by Keystone
462 default: ['messaging']
463 type: comma_delimited_list
464 KeystoneNotificationFormat:
465 description: The Keystone notification format
469 - allowed_values: [ 'basic', 'cadf' ]
472 description: Whether to manage IPtables rules.
476 description: Whether IPtables rules should be purged before setting up the ones.
478 MysqlInnodbBufferPoolSize:
480 Specifies the size of the buffer pool in megabytes. Setting to
481 zero should be interpreted as "no value" and will defer to the
486 description: Configures MySQL max_connections config setting
489 NeutronDnsmasqOptions:
490 default: 'dhcp-option-force=26,1400'
491 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
493 NeutronPublicInterfaceDefaultRoute:
495 description: A custom default route for the NeutronPublicInterface.
497 NeutronPublicInterfaceIP:
499 description: A custom IP address to put onto the NeutronPublicInterface.
501 NeutronPublicInterfaceRawDevice:
503 description: If set, the public interface is a vlan with this device as the raw device.
505 PublicVirtualInterface:
508 Specifies the interface where the public-facing virtual ip will be assigned.
509 This should be int_public when a VLAN is being used.
513 description: A random string to be used as a salt when hashing to determine mappings in the ring.
518 description: The password for the swift service account, used by the swift proxy services.
523 description: Value of mount_check in Swift account/container/object -server.conf
528 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
531 description: Partition Power to use when building Swift rings
536 description: How many replicas to use in the swift rings.
538 # Compute-specific params
539 CeilometerComputeAgent:
540 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
544 - allowed_values: ['', Present]
548 HypervisorNeutronPhysicalBridge:
551 An OVS bridge to create on each hypervisor. This defaults to br-ex the
552 same as the control plane nodes, as we have a uniform configuration of
553 the openvswitch agent. Typically should not need to be changed.
555 HypervisorNeutronPublicInterface:
557 description: What interface to add to the HypervisorNeutronPhysicalBridge.
559 NeutronNetworkVLANRanges:
560 default: 'datacentre'
562 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
563 Neutron documentation for permitted values. Defaults to permitting any
564 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
565 type: comma_delimited_list
568 default: libvirt.LibvirtDriver
569 NovaComputeExtraConfig:
572 NovaCompute specific configuration to inject into the cluster. Same
573 structure as ExtraConfig.
575 NovaComputeLibvirtType:
578 NovaComputeLibvirtVifDriver:
580 description: Libvirt VIF driver configuration for the network
582 NovaEnableRbdBackend:
584 description: Whether to enable or not the Rbd backend for Nova
588 default: overcloud-compute
590 - custom_constraint: glance.image
593 description: Name of integration bridge used by Open vSwitch
595 NovaSecurityGroupAPI:
597 description: The full class name of the security API class
599 OvercloudComputeFlavor:
600 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-cinder-volume
645 OvercloudBlockStorageFlavor:
646 description: Flavor for block storage nodes to request when deploying.
649 - custom_constraint: nova.flavor
650 BlockStorageExtraConfig:
653 BlockStorage specific configuration to inject into the cluster. Same
654 structure as ExtraConfig.
657 # Object storage specific parameters
661 OvercloudSwiftStorageFlavor:
662 description: Flavor for Swift storage nodes to request when deploying.
665 - custom_constraint: nova.flavor
667 default: overcloud-swift-storage
669 ObjectStorageExtraConfig:
672 ObjectStorage specific configuration to inject into the cluster. Same
673 structure as ExtraConfig.
677 # Ceph storage specific parameters
682 default: overcloud-ceph-storage
684 OvercloudCephStorageFlavor:
686 description: Flavor for Ceph storage nodes to request when deploying.
689 - custom_constraint: nova.flavor
690 CephStorageExtraConfig:
693 CephStorage specific configuration to inject into the cluster. Same
694 structure as ExtraConfig.
697 # Hostname format for each role
698 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
699 # and %stackname% is replaced with OS::stack_name in the template below.
700 # If you want to use the heat generated names, pass '' (empty string).
701 ControllerHostnameFormat:
703 description: Format for Controller node hostnames
704 default: '%stackname%-controller-%index%'
705 ComputeHostnameFormat:
707 description: Format for Compute node hostnames
708 default: '%stackname%-novacompute-%index%'
709 BlockStorageHostnameFormat:
711 description: Format for BlockStorage node hostnames
712 default: '%stackname%-blockstorage-%index%'
713 ObjectStorageHostnameFormat:
715 description: Format for SwiftStorage node hostnames
716 default: '%stackname%-objectstorage-%index%'
717 CephStorageHostnameFormat:
719 description: Format for CephStorage node hostnames
720 default: '%stackname%-cephstorage-%index%'
722 # Identifiers to trigger tasks on nodes
727 Setting to a previously unused value during stack-update will trigger
728 package update on all nodes
733 Setting this to a unique value will re-run any deployment tasks which
734 perform configuration on a Heat stack-update.
736 # If you want to remove a specific node from a resource group, you can pass
737 # the node name or id as a <Group>RemovalPolicies parameter, for example:
738 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
739 ControllerRemovalPolicies:
743 List of resources to be removed from ControllerResourceGroup when
744 doing an update which requires removal of specific resources.
745 ComputeRemovalPolicies:
749 List of resources to be removed from ComputeResourceGroup when
750 doing an update which requires removal of specific resources.
751 BlockStorageRemovalPolicies:
755 List of resources to be removed from BlockStorageResourceGroup when
756 doing an update which requires removal of specific resources.
757 ObjectStorageRemovalPolicies:
761 List of resources to be removed from ObjectStorageResourceGroup when
762 doing an update which requires removal of specific resources.
763 CephStorageRemovalPolicies:
767 List of resources to be removed from CephStorageResourceGroup when
768 doing an update which requires removal of specific resources.
773 HeatAuthEncryptionKey:
774 type: OS::Heat::RandomString
777 type: OS::Heat::RandomString
782 type: OS::Heat::RandomString
787 type: OS::TripleO::EndpointMap
789 CloudName: {get_param: CloudName}
790 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
791 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
792 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
793 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
794 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
795 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
796 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
797 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
798 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
799 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
800 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
801 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
804 type: OS::Heat::ResourceGroup
807 count: {get_param: ControllerCount}
808 removal_policies: {get_param: ControllerRemovalPolicies}
810 type: OS::TripleO::Controller
812 AdminPassword: {get_param: AdminPassword}
813 AdminToken: {get_param: AdminToken}
814 CeilometerBackend: {get_param: CeilometerBackend}
815 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
816 CeilometerPassword: {get_param: CeilometerPassword}
817 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
818 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
819 CinderNfsServers: {get_param: CinderNfsServers}
820 CinderPassword: {get_param: CinderPassword}
821 CinderISCSIHelper: {get_param: CinderISCSIHelper}
822 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
823 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
824 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
825 CloudName: {get_param: CloudName}
826 CloudDomain: {get_param: CloudDomain}
827 ControlVirtualInterface: {get_param: ControlVirtualInterface}
828 ControllerExtraConfig: {get_param: controllerExtraConfig}
829 Debug: {get_param: Debug}
830 EnableFencing: {get_param: EnableFencing}
831 ManageFirewall: {get_param: ManageFirewall}
832 PurgeFirewallRules: {get_param: PurgeFirewallRules}
833 EnableGalera: {get_param: EnableGalera}
834 EnableCephStorage: {get_param: ControllerEnableCephStorage}
835 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
836 ExtraConfig: {get_param: ExtraConfig}
837 FencingConfig: {get_param: FencingConfig}
838 Flavor: {get_param: OvercloudControlFlavor}
839 GlancePassword: {get_param: GlancePassword}
840 GlanceBackend: {get_param: GlanceBackend}
841 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
842 GlanceLogFile: {get_param: GlanceLogFile}
843 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
844 HeatPassword: {get_param: HeatPassword}
845 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
846 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
847 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
848 HorizonSecret: {get_resource: HorizonSecret}
849 Image: {get_param: controllerImage}
850 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
851 InstanceNameTemplate: {get_param: InstanceNameTemplate}
852 KeyName: {get_param: KeyName}
853 KeystoneCACertificate: {get_param: KeystoneCACertificate}
854 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
855 KeystoneSigningKey: {get_param: KeystoneSigningKey}
856 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
857 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
858 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
859 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
860 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
861 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
862 MysqlMaxConnections: {get_param: MysqlMaxConnections}
863 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
864 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
865 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
866 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
867 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
868 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
869 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
870 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
871 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
872 NeutronPublicInterface: {get_param: NeutronPublicInterface}
873 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
874 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
875 NeutronPassword: {get_param: NeutronPassword}
876 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
877 NeutronDVR: {get_param: NeutronDVR}
878 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
879 NeutronAgentMode: {get_param: NeutronAgentMode}
880 NeutronCorePlugin: {get_param: NeutronCorePlugin}
881 NeutronServicePlugins: {get_param: NeutronServicePlugins}
882 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
883 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
884 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
885 NeutronL3HA: {get_param: NeutronL3HA}
886 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
887 NeutronNetworkType: {get_param: NeutronNetworkType}
888 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
889 NovaPassword: {get_param: NovaPassword}
890 NtpServer: {get_param: NtpServer}
891 MongoDbNoJournal: {get_param: MongoDbNoJournal}
892 PcsdPassword: {get_resource: PcsdPassword}
893 PublicVirtualInterface: {get_param: PublicVirtualInterface}
894 RabbitPassword: {get_param: RabbitPassword}
895 RabbitUserName: {get_param: RabbitUserName}
896 RabbitCookie: {get_attr: [RabbitCookie, value]}
897 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
898 RabbitClientPort: {get_param: RabbitClientPort}
899 RabbitFDLimit: {get_param: RabbitFDLimit}
900 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
901 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
902 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
903 SwiftHashSuffix: {get_param: SwiftHashSuffix}
904 SwiftMountCheck: {get_param: SwiftMountCheck}
905 SwiftMinPartHours: {get_param: SwiftMinPartHours}
906 SwiftPartPower: {get_param: SwiftPartPower}
907 SwiftPassword: {get_param: SwiftPassword}
908 SwiftReplicas: { get_param: SwiftReplicas}
909 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
910 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
911 ServiceNetMap: {get_param: ServiceNetMap}
912 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
913 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
914 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
915 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
916 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
917 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
918 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
919 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
920 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
921 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
922 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
923 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
924 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
925 UpdateIdentifier: {get_param: UpdateIdentifier}
928 template: {get_param: ControllerHostnameFormat}
930 '%stackname%': {get_param: 'OS::stack_name'}
934 type: OS::Heat::ResourceGroup
937 count: {get_param: ComputeCount}
938 removal_policies: {get_param: ComputeRemovalPolicies}
940 type: OS::TripleO::Compute
942 AdminPassword: {get_param: AdminPassword}
943 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
944 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
945 CeilometerPassword: {get_param: CeilometerPassword}
946 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
947 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
948 Debug: {get_param: Debug}
949 ExtraConfig: {get_param: ExtraConfig}
950 Flavor: {get_param: OvercloudComputeFlavor}
951 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
952 Image: {get_param: NovaImage}
953 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
954 KeyName: {get_param: KeyName}
955 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
956 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
957 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
958 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
959 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
960 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
961 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
962 NeutronNetworkType: {get_param: NeutronNetworkType}
963 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
964 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
965 NeutronPassword: {get_param: NeutronPassword}
966 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
967 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
968 NeutronDVR: {get_param: NeutronDVR}
969 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
970 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
971 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
972 NeutronCorePlugin: {get_param: NeutronCorePlugin}
973 NeutronServicePlugins: {get_param: NeutronServicePlugins}
974 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
975 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
976 # L3 HA and Failover is not relevant for Computes, should be removed
977 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
978 NeutronL3HA: {get_param: NeutronL3HA}
979 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
980 NovaComputeDriver: {get_param: NovaComputeDriver}
981 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
982 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
983 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
984 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
985 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
986 NovaPassword: {get_param: NovaPassword}
987 NovaOVSBridge: {get_param: NovaOVSBridge}
988 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
989 NtpServer: {get_param: NtpServer}
990 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
991 RabbitPassword: {get_param: RabbitPassword}
992 RabbitUserName: {get_param: RabbitUserName}
993 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
994 RabbitClientPort: {get_param: RabbitClientPort}
995 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
996 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
997 ServiceNetMap: {get_param: ServiceNetMap}
998 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
999 UpdateIdentifier: {get_param: UpdateIdentifier}
1002 template: {get_param: ComputeHostnameFormat}
1004 '%stackname%': {get_param: 'OS::stack_name'}
1005 CloudDomain: {get_param: CloudDomain}
1008 type: OS::Heat::ResourceGroup
1009 depends_on: Networks
1011 count: {get_param: BlockStorageCount}
1012 removal_policies: {get_param: BlockStorageRemovalPolicies}
1014 type: OS::TripleO::BlockStorage
1016 Debug: {get_param: Debug}
1017 Image: {get_param: BlockStorageImage}
1018 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1019 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1020 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1021 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1022 CinderPassword: {get_param: CinderPassword}
1023 KeyName: {get_param: KeyName}
1024 Flavor: {get_param: OvercloudBlockStorageFlavor}
1025 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1026 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1027 RabbitPassword: {get_param: RabbitPassword}
1028 RabbitUserName: {get_param: RabbitUserName}
1029 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1030 RabbitClientPort: {get_param: RabbitClientPort}
1031 NtpServer: {get_param: NtpServer}
1032 UpdateIdentifier: {get_param: UpdateIdentifier}
1035 template: {get_param: BlockStorageHostnameFormat}
1037 '%stackname%': {get_param: 'OS::stack_name'}
1038 ServiceNetMap: {get_param: ServiceNetMap}
1039 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1040 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1041 ExtraConfig: {get_param: ExtraConfig}
1042 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1043 CloudDomain: {get_param: CloudDomain}
1046 type: OS::Heat::ResourceGroup
1047 depends_on: Networks
1049 count: {get_param: ObjectStorageCount}
1050 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1052 type: OS::TripleO::ObjectStorage
1054 KeyName: {get_param: KeyName}
1055 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1056 HashSuffix: {get_param: SwiftHashSuffix}
1057 MountCheck: {get_param: SwiftMountCheck}
1058 MinPartHours: {get_param: SwiftMinPartHours}
1059 PartPower: {get_param: SwiftPartPower}
1060 Image: {get_param: SwiftStorageImage}
1061 Replicas: { get_param: SwiftReplicas}
1062 NtpServer: {get_param: NtpServer}
1063 UpdateIdentifier: {get_param: UpdateIdentifier}
1064 ServiceNetMap: {get_param: ServiceNetMap}
1067 template: {get_param: ObjectStorageHostnameFormat}
1069 '%stackname%': {get_param: 'OS::stack_name'}
1070 ExtraConfig: {get_param: ExtraConfig}
1071 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1072 CloudDomain: {get_param: CloudDomain}
1075 type: OS::Heat::ResourceGroup
1076 depends_on: Networks
1078 count: {get_param: CephStorageCount}
1079 removal_policies: {get_param: CephStorageRemovalPolicies}
1081 type: OS::TripleO::CephStorage
1083 Image: {get_param: CephStorageImage}
1084 KeyName: {get_param: KeyName}
1085 Flavor: {get_param: OvercloudCephStorageFlavor}
1086 NtpServer: {get_param: NtpServer}
1087 ServiceNetMap: {get_param: ServiceNetMap}
1088 UpdateIdentifier: {get_param: UpdateIdentifier}
1091 template: {get_param: CephStorageHostnameFormat}
1093 '%stackname%': {get_param: 'OS::stack_name'}
1094 ExtraConfig: {get_param: ExtraConfig}
1095 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1096 CloudDomain: {get_param: CloudDomain}
1098 ControllerIpListMap:
1099 type: OS::TripleO::Network::Ports::NetIpListMap
1101 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1102 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1103 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1104 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1105 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1106 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1109 type: OS::TripleO::AllNodes::SoftwareConfig
1111 compute_hosts: {get_attr: [Compute, hosts_entry]}
1112 controller_hosts: {get_attr: [Controller, hosts_entry]}
1113 controller_ips: {get_attr: [Controller, ip_address]}
1114 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1115 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1116 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1117 controller_names: {get_attr: [Controller, hostname]}
1118 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1119 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1120 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1121 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1122 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1123 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1124 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1125 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1126 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1127 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1128 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1129 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1130 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1131 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1132 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1133 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1134 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1137 type: OS::Heat::RandomString
1141 MysqlClusterUniquePart:
1142 type: OS::Heat::RandomString
1147 type: OS::Heat::RandomString
1150 salt: {get_param: RabbitCookieSalt}
1152 # creates the network architecture
1154 type: OS::TripleO::Network
1157 type: OS::Neutron::Port
1158 depends_on: Networks
1160 name: control_virtual_ip
1161 network: {get_param: NeutronControlPlaneID}
1162 fixed_ips: {get_param: ControlFixedIPs}
1163 replacement_policy: AUTO
1166 depends_on: Networks
1167 type: OS::TripleO::Controller::Ports::RedisVipPort
1169 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1170 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1171 PortName: redis_virtual_ip
1172 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1174 # The public VIP is on the External net, falls back to ctlplane
1176 depends_on: Networks
1177 type: OS::TripleO::Controller::Ports::ExternalPort
1179 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1180 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1181 PortName: public_virtual_ip
1182 FixedIPs: {get_param: PublicVirtualFixedIPs}
1184 InternalApiVirtualIP:
1185 depends_on: Networks
1186 type: OS::TripleO::Controller::Ports::InternalApiPort
1188 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1189 PortName: internal_api_virtual_ip
1192 depends_on: Networks
1193 type: OS::TripleO::Controller::Ports::StoragePort
1195 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1196 PortName: storage_virtual_ip
1198 StorageMgmtVirtualIP:
1199 depends_on: Networks
1200 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1202 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1203 PortName: storage_management_virtual_ip
1206 type: OS::TripleO::Network::Ports::NetVipMap
1208 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1209 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1210 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1211 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1212 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1213 # No tenant VIP required
1216 type: OS::TripleO::VipConfig
1219 type: OS::Heat::StructuredDeployments
1221 config: {get_resource: VipConfig}
1222 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1224 # service VIP mappings
1225 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1226 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1227 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1228 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1229 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1230 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1231 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1232 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1233 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1234 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1235 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1236 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1237 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1238 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1239 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1240 # direct configuration of Virtual IPs for each network
1241 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1242 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1243 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1244 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1245 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1247 ControllerBootstrapNodeConfig:
1248 type: OS::TripleO::BootstrapNode::SoftwareConfig
1250 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1251 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1253 ControllerBootstrapNodeDeployment:
1254 type: OS::Heat::StructuredDeployments
1256 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1257 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1259 ControllerSwiftDeployment:
1260 type: OS::Heat::StructuredDeployments
1262 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1263 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1265 ObjectStorageSwiftDeployment:
1266 type: OS::Heat::StructuredDeployments
1268 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1269 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1271 SwiftDevicesAndProxyConfig:
1272 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1274 controller_swift_devices: {get_attr: [Controller, swift_device]}
1275 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1276 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1278 ComputeCephDeployment:
1279 type: OS::Heat::StructuredDeployments
1281 config: {get_attr: [CephClusterConfig, config_id]}
1282 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1284 ControllerCephDeployment:
1285 type: OS::Heat::StructuredDeployments
1287 config: {get_attr: [CephClusterConfig, config_id]}
1288 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1290 CephStorageCephDeployment:
1291 type: OS::Heat::StructuredDeployments
1293 config: {get_attr: [CephClusterConfig, config_id]}
1294 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1297 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1299 ceph_storage_count: {get_param: CephStorageCount}
1300 ceph_fsid: {get_param: CephClusterFSID}
1301 ceph_mon_key: {get_param: CephMonKey}
1302 ceph_admin_key: {get_param: CephAdminKey}
1303 ceph_client_key: {get_param: CephClientKey}
1304 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1305 ceph_mon_names: {get_attr: [Controller, hostname]}
1306 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1308 ControllerClusterConfig:
1309 type: OS::Heat::StructuredConfig
1311 group: os-apply-config
1314 nodes: {get_attr: [Controller, corosync_node]}
1318 nodes: {get_attr: [Controller, hostname]}
1320 nodes: {get_attr: [Controller, corosync_node]}
1322 nodes: {get_attr: [Controller, corosync_node]}
1324 ControllerClusterDeployment:
1325 type: OS::Heat::StructuredDeployments
1327 config: {get_resource: ControllerClusterConfig}
1328 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1330 ControllerAllNodesDeployment:
1331 type: OS::Heat::StructuredDeployments
1333 config: {get_attr: [allNodesConfig, config_id]}
1334 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1336 ComputeAllNodesDeployment:
1337 type: OS::Heat::StructuredDeployments
1339 config: {get_attr: [allNodesConfig, config_id]}
1340 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1342 BlockStorageAllNodesDeployment:
1343 type: OS::Heat::StructuredDeployments
1345 config: {get_attr: [allNodesConfig, config_id]}
1346 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1348 ObjectStorageAllNodesDeployment:
1349 type: OS::Heat::StructuredDeployments
1351 config: {get_attr: [allNodesConfig, config_id]}
1352 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1354 CephStorageAllNodesDeployment:
1355 type: OS::Heat::StructuredDeployments
1357 config: {get_attr: [allNodesConfig, config_id]}
1358 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1360 # All Nodes Validations
1361 AllNodesValidationConfig:
1362 type: OS::TripleO::AllNodes::Validation
1367 - - {get_attr: [Controller, resource.0.external_ip_address]}
1368 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1369 - {get_attr: [Controller, resource.0.storage_ip_address]}
1370 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1371 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1373 ControllerAllNodesValidationDeployment:
1374 type: OS::Heat::StructuredDeployments
1375 depends_on: ControllerAllNodesDeployment
1377 config: {get_resource: AllNodesValidationConfig}
1378 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1380 ComputeAllNodesValidationDeployment:
1381 type: OS::Heat::StructuredDeployments
1382 depends_on: ComputeAllNodesDeployment
1384 config: {get_resource: AllNodesValidationConfig}
1385 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1387 BlockStorageAllNodesValidationDeployment:
1388 type: OS::Heat::StructuredDeployments
1389 depends_on: BlockStorageAllNodesDeployment
1391 config: {get_resource: AllNodesValidationConfig}
1392 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1394 ObjectStorageAllNodesValidationDeployment:
1395 type: OS::Heat::StructuredDeployments
1396 depends_on: ObjectStorageAllNodesDeployment
1398 config: {get_resource: AllNodesValidationConfig}
1399 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1401 CephStorageAllNodesValidationDeployment:
1402 type: OS::Heat::StructuredDeployments
1403 depends_on: CephStorageAllNodesDeployment
1405 config: {get_resource: AllNodesValidationConfig}
1406 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1408 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1409 # the nested template may configure each role differently (or not at all)
1410 AllNodesExtraConfig:
1411 type: OS::TripleO::AllNodesExtraConfig
1413 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1414 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1415 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1416 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1417 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1419 # Nested stack deployment runs after all other controller deployments
1420 ControllerNodesPostDeployment:
1421 type: OS::TripleO::ControllerPostDeployment
1422 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1424 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1425 NodeConfigIdentifiers:
1426 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1427 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1428 deployment_identifier: {get_param: DeployIdentifier}
1430 ComputeNodesPostDeployment:
1431 type: OS::TripleO::ComputePostDeployment
1432 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1434 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1435 NodeConfigIdentifiers:
1436 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1437 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1438 deployment_identifier: {get_param: DeployIdentifier}
1440 ObjectStorageNodesPostDeployment:
1441 type: OS::TripleO::ObjectStoragePostDeployment
1442 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1444 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1445 NodeConfigIdentifiers:
1446 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1447 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1448 deployment_identifier: {get_param: DeployIdentifier}
1450 BlockStorageNodesPostDeployment:
1451 type: OS::TripleO::BlockStoragePostDeployment
1452 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1454 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1455 NodeConfigIdentifiers:
1456 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1457 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1458 deployment_identifier: {get_param: DeployIdentifier}
1460 CephStorageNodesPostDeployment:
1461 type: OS::TripleO::CephStoragePostDeployment
1462 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1464 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1465 NodeConfigIdentifiers:
1466 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1467 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1468 deployment_identifier: {get_param: DeployIdentifier}
1472 description: URL for the Overcloud Keystone service
1473 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1475 description: Keystone Admin VIP endpoint
1476 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1478 description: Controller VIP for public API endpoints
1479 value: {get_attr: [VipMap, net_ip_map, external]}
1480 CeilometerInternalVip:
1481 description: VIP for Ceilometer API internal endpoint
1482 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1484 description: VIP for Cinder API internal endpoint
1485 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1487 description: VIP for Glance API internal endpoint
1488 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1490 description: VIP for Heat API internal endpoint
1491 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1492 KeystoneInternalVip:
1493 description: VIP for Keystone API internal endpoint
1494 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1496 description: VIP for Neutron API internal endpoint
1497 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1499 description: VIP for Nova API internal endpoint
1500 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1502 description: VIP for Swift Proxy internal endpoint
1503 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}