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 KeystoneCACertificate:
436 description: Keystone self-signed certificate authority certificate.
438 KeystoneSigningCertificate:
440 description: Keystone certificate for verifying token validity.
444 description: Keystone key for signing tokens.
447 KeystoneSSLCertificate:
449 description: Keystone certificate for verifying token validity.
451 KeystoneSSLCertificateKey:
453 description: Keystone key for signing tokens.
456 KeystoneNotificationDriver:
457 description: Comma-separated list of Oslo notification drivers used by Keystone
458 default: ['messaging']
459 type: comma_delimited_list
460 KeystoneNotificationFormat:
461 description: The Keystone notification format
465 - allowed_values: [ 'basic', 'cadf' ]
468 description: Whether to manage IPtables rules.
472 description: Whether IPtables rules should be purged before setting up the ones.
474 MysqlInnodbBufferPoolSize:
476 Specifies the size of the buffer pool in megabytes. Setting to
477 zero should be interpreted as "no value" and will defer to the
482 description: Configures MySQL max_connections config setting
485 NeutronDnsmasqOptions:
486 default: 'dhcp-option-force=26,1400'
487 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
489 NeutronPublicInterfaceDefaultRoute:
491 description: A custom default route for the NeutronPublicInterface.
493 NeutronPublicInterfaceIP:
495 description: A custom IP address to put onto the NeutronPublicInterface.
497 NeutronPublicInterfaceRawDevice:
499 description: If set, the public interface is a vlan with this device as the raw device.
501 PublicVirtualInterface:
504 Specifies the interface where the public-facing virtual ip will be assigned.
505 This should be int_public when a VLAN is being used.
509 description: A random string to be used as a salt when hashing to determine mappings in the ring.
514 description: The password for the swift service account, used by the swift proxy services.
519 description: Value of mount_check in Swift account/container/object -server.conf
524 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
527 description: Partition Power to use when building Swift rings
532 description: How many replicas to use in the swift rings.
534 # Compute-specific params
535 CeilometerComputeAgent:
536 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
540 - allowed_values: ['', Present]
544 HypervisorNeutronPhysicalBridge:
547 An OVS bridge to create on each hypervisor. This defaults to br-ex the
548 same as the control plane nodes, as we have a uniform configuration of
549 the openvswitch agent. Typically should not need to be changed.
551 HypervisorNeutronPublicInterface:
553 description: What interface to add to the HypervisorNeutronPhysicalBridge.
555 NeutronNetworkVLANRanges:
556 default: 'datacentre'
558 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
559 Neutron documentation for permitted values. Defaults to permitting any
560 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
561 type: comma_delimited_list
564 default: libvirt.LibvirtDriver
565 NovaComputeExtraConfig:
568 NovaCompute specific configuration to inject into the cluster. Same
569 structure as ExtraConfig.
571 NovaComputeLibvirtType:
574 NovaComputeLibvirtVifDriver:
576 description: Libvirt VIF driver configuration for the network
578 NovaEnableRbdBackend:
580 description: Whether to enable or not the Rbd backend for Nova
584 default: overcloud-compute
586 - custom_constraint: glance.image
589 description: Name of integration bridge used by Open vSwitch
591 NovaSecurityGroupAPI:
593 description: The full class name of the security API class
595 OvercloudComputeFlavor:
596 description: Use this flavor
599 - custom_constraint: nova.flavor
602 NeutronTenantNetwork: tenant
603 CeilometerApiNetwork: internal_api
604 MongoDbNetwork: internal_api
605 CinderApiNetwork: internal_api
606 CinderIscsiNetwork: storage
607 GlanceApiNetwork: storage
608 GlanceRegistryNetwork: internal_api
609 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
610 KeystonePublicApiNetwork: internal_api
611 NeutronApiNetwork: internal_api
612 HeatApiNetwork: internal_api
613 NovaApiNetwork: internal_api
614 NovaMetadataNetwork: internal_api
615 NovaVncProxyNetwork: internal_api
616 SwiftMgmtNetwork: storage_mgmt
617 SwiftProxyNetwork: storage
618 HorizonNetwork: internal_api
619 MemcachedNetwork: internal_api
620 RabbitMqNetwork: internal_api
621 RedisNetwork: internal_api
622 MysqlNetwork: internal_api
623 CephClusterNetwork: storage_mgmt
624 CephPublicNetwork: storage
625 ControllerHostnameResolveNetwork: internal_api
626 ComputeHostnameResolveNetwork: internal_api
627 BlockStorageHostnameResolveNetwork: internal_api
628 ObjectStorageHostnameResolveNetwork: internal_api
629 CephStorageHostnameResolveNetwork: storage
630 description: Mapping of service_name -> network name. Typically set
631 via parameter_defaults in the resource registry.
634 # Block storage specific parameters
639 default: overcloud-cinder-volume
641 OvercloudBlockStorageFlavor:
642 description: Flavor for block storage nodes to request when deploying.
645 - custom_constraint: nova.flavor
646 BlockStorageExtraConfig:
649 BlockStorage specific configuration to inject into the cluster. Same
650 structure as ExtraConfig.
653 # Object storage specific parameters
657 OvercloudSwiftStorageFlavor:
658 description: Flavor for Swift storage nodes to request when deploying.
661 - custom_constraint: nova.flavor
663 default: overcloud-swift-storage
665 ObjectStorageExtraConfig:
668 ObjectStorage specific configuration to inject into the cluster. Same
669 structure as ExtraConfig.
673 # Ceph storage specific parameters
678 default: overcloud-ceph-storage
680 OvercloudCephStorageFlavor:
682 description: Flavor for Ceph storage nodes to request when deploying.
685 - custom_constraint: nova.flavor
686 CephStorageExtraConfig:
689 CephStorage specific configuration to inject into the cluster. Same
690 structure as ExtraConfig.
693 # Hostname format for each role
694 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
695 # and %stackname% is replaced with OS::stack_name in the template below.
696 # If you want to use the heat generated names, pass '' (empty string).
697 ControllerHostnameFormat:
699 description: Format for Controller node hostnames
700 default: '%stackname%-controller-%index%'
701 ComputeHostnameFormat:
703 description: Format for Compute node hostnames
704 default: '%stackname%-novacompute-%index%'
705 BlockStorageHostnameFormat:
707 description: Format for BlockStorage node hostnames
708 default: '%stackname%-blockstorage-%index%'
709 ObjectStorageHostnameFormat:
711 description: Format for SwiftStorage node hostnames
712 default: '%stackname%-objectstorage-%index%'
713 CephStorageHostnameFormat:
715 description: Format for CephStorage node hostnames
716 default: '%stackname%-cephstorage-%index%'
718 # Identifiers to trigger tasks on nodes
723 Setting to a previously unused value during stack-update will trigger
724 package update on all nodes
729 Setting this to a unique value will re-run any deployment tasks which
730 perform configuration on a Heat stack-update.
732 # If you want to remove a specific node from a resource group, you can pass
733 # the node name or id as a <Group>RemovalPolicies parameter, for example:
734 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
735 ControllerRemovalPolicies:
739 List of resources to be removed from ControllerResourceGroup when
740 doing an update which requires removal of specific resources.
741 ComputeRemovalPolicies:
745 List of resources to be removed from ComputeResourceGroup when
746 doing an update which requires removal of specific resources.
747 BlockStorageRemovalPolicies:
751 List of resources to be removed from BlockStorageResourceGroup when
752 doing an update which requires removal of specific resources.
753 ObjectStorageRemovalPolicies:
757 List of resources to be removed from ObjectStorageResourceGroup when
758 doing an update which requires removal of specific resources.
759 CephStorageRemovalPolicies:
763 List of resources to be removed from CephStorageResourceGroup when
764 doing an update which requires removal of specific resources.
769 HeatAuthEncryptionKey:
770 type: OS::Heat::RandomString
773 type: OS::Heat::RandomString
778 type: OS::Heat::RandomString
783 type: OS::TripleO::EndpointMap
785 CloudName: {get_param: CloudName}
786 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
787 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
788 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
789 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
790 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
791 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
792 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
793 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
794 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
795 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
796 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
797 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
800 type: OS::Heat::ResourceGroup
803 count: {get_param: ControllerCount}
804 removal_policies: {get_param: ControllerRemovalPolicies}
806 type: OS::TripleO::Controller
808 AdminPassword: {get_param: AdminPassword}
809 AdminToken: {get_param: AdminToken}
810 CeilometerBackend: {get_param: CeilometerBackend}
811 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
812 CeilometerPassword: {get_param: CeilometerPassword}
813 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
814 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
815 CinderNfsServers: {get_param: CinderNfsServers}
816 CinderPassword: {get_param: CinderPassword}
817 CinderISCSIHelper: {get_param: CinderISCSIHelper}
818 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
819 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
820 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
821 CloudName: {get_param: CloudName}
822 CloudDomain: {get_param: CloudDomain}
823 ControlVirtualInterface: {get_param: ControlVirtualInterface}
824 ControllerExtraConfig: {get_param: controllerExtraConfig}
825 Debug: {get_param: Debug}
826 EnableFencing: {get_param: EnableFencing}
827 ManageFirewall: {get_param: ManageFirewall}
828 PurgeFirewallRules: {get_param: PurgeFirewallRules}
829 EnableGalera: {get_param: EnableGalera}
830 EnableCephStorage: {get_param: ControllerEnableCephStorage}
831 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
832 ExtraConfig: {get_param: ExtraConfig}
833 FencingConfig: {get_param: FencingConfig}
834 Flavor: {get_param: OvercloudControlFlavor}
835 GlancePassword: {get_param: GlancePassword}
836 GlanceBackend: {get_param: GlanceBackend}
837 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
838 GlanceLogFile: {get_param: GlanceLogFile}
839 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
840 HeatPassword: {get_param: HeatPassword}
841 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
842 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
843 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
844 HorizonSecret: {get_resource: HorizonSecret}
845 Image: {get_param: controllerImage}
846 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
847 KeyName: {get_param: KeyName}
848 KeystoneCACertificate: {get_param: KeystoneCACertificate}
849 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
850 KeystoneSigningKey: {get_param: KeystoneSigningKey}
851 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
852 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
853 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
854 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
855 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
856 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
857 MysqlMaxConnections: {get_param: MysqlMaxConnections}
858 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
859 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
860 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
861 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
862 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
863 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
864 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
865 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
866 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
867 NeutronPublicInterface: {get_param: NeutronPublicInterface}
868 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
869 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
870 NeutronPassword: {get_param: NeutronPassword}
871 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
872 NeutronDVR: {get_param: NeutronDVR}
873 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
874 NeutronAgentMode: {get_param: NeutronAgentMode}
875 NeutronCorePlugin: {get_param: NeutronCorePlugin}
876 NeutronServicePlugins: {get_param: NeutronServicePlugins}
877 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
878 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
879 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
880 NeutronL3HA: {get_param: NeutronL3HA}
881 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
882 NeutronNetworkType: {get_param: NeutronNetworkType}
883 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
884 NovaPassword: {get_param: NovaPassword}
885 NtpServer: {get_param: NtpServer}
886 MongoDbNoJournal: {get_param: MongoDbNoJournal}
887 PcsdPassword: {get_resource: PcsdPassword}
888 PublicVirtualInterface: {get_param: PublicVirtualInterface}
889 RabbitPassword: {get_param: RabbitPassword}
890 RabbitUserName: {get_param: RabbitUserName}
891 RabbitCookie: {get_attr: [RabbitCookie, value]}
892 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
893 RabbitClientPort: {get_param: RabbitClientPort}
894 RabbitFDLimit: {get_param: RabbitFDLimit}
895 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
896 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
897 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
898 SwiftHashSuffix: {get_param: SwiftHashSuffix}
899 SwiftMountCheck: {get_param: SwiftMountCheck}
900 SwiftMinPartHours: {get_param: SwiftMinPartHours}
901 SwiftPartPower: {get_param: SwiftPartPower}
902 SwiftPassword: {get_param: SwiftPassword}
903 SwiftReplicas: { get_param: SwiftReplicas}
904 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
905 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
906 ServiceNetMap: {get_param: ServiceNetMap}
907 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
908 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
909 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
910 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
911 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
912 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
913 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
914 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
915 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
916 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
917 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
918 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
919 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
920 UpdateIdentifier: {get_param: UpdateIdentifier}
923 template: {get_param: ControllerHostnameFormat}
925 '%stackname%': {get_param: 'OS::stack_name'}
929 type: OS::Heat::ResourceGroup
932 count: {get_param: ComputeCount}
933 removal_policies: {get_param: ComputeRemovalPolicies}
935 type: OS::TripleO::Compute
937 AdminPassword: {get_param: AdminPassword}
938 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
939 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
940 CeilometerPassword: {get_param: CeilometerPassword}
941 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
942 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
943 Debug: {get_param: Debug}
944 ExtraConfig: {get_param: ExtraConfig}
945 Flavor: {get_param: OvercloudComputeFlavor}
946 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
947 Image: {get_param: NovaImage}
948 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
949 KeyName: {get_param: KeyName}
950 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
951 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
952 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
953 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
954 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
955 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
956 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
957 NeutronNetworkType: {get_param: NeutronNetworkType}
958 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
959 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
960 NeutronPassword: {get_param: NeutronPassword}
961 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
962 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
963 NeutronDVR: {get_param: NeutronDVR}
964 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
965 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
966 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
967 NeutronCorePlugin: {get_param: NeutronCorePlugin}
968 NeutronServicePlugins: {get_param: NeutronServicePlugins}
969 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
970 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
971 # L3 HA and Failover is not relevant for Computes, should be removed
972 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
973 NeutronL3HA: {get_param: NeutronL3HA}
974 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
975 NovaComputeDriver: {get_param: NovaComputeDriver}
976 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
977 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
978 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
979 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
980 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
981 NovaPassword: {get_param: NovaPassword}
982 NovaOVSBridge: {get_param: NovaOVSBridge}
983 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
984 NtpServer: {get_param: NtpServer}
985 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
986 RabbitPassword: {get_param: RabbitPassword}
987 RabbitUserName: {get_param: RabbitUserName}
988 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
989 RabbitClientPort: {get_param: RabbitClientPort}
990 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
991 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
992 ServiceNetMap: {get_param: ServiceNetMap}
993 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
994 UpdateIdentifier: {get_param: UpdateIdentifier}
997 template: {get_param: ComputeHostnameFormat}
999 '%stackname%': {get_param: 'OS::stack_name'}
1000 CloudDomain: {get_param: CloudDomain}
1003 type: OS::Heat::ResourceGroup
1004 depends_on: Networks
1006 count: {get_param: BlockStorageCount}
1007 removal_policies: {get_param: BlockStorageRemovalPolicies}
1009 type: OS::TripleO::BlockStorage
1011 Debug: {get_param: Debug}
1012 Image: {get_param: BlockStorageImage}
1013 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1014 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1015 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1016 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1017 CinderPassword: {get_param: CinderPassword}
1018 KeyName: {get_param: KeyName}
1019 Flavor: {get_param: OvercloudBlockStorageFlavor}
1020 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1021 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1022 RabbitPassword: {get_param: RabbitPassword}
1023 RabbitUserName: {get_param: RabbitUserName}
1024 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1025 RabbitClientPort: {get_param: RabbitClientPort}
1026 NtpServer: {get_param: NtpServer}
1027 UpdateIdentifier: {get_param: UpdateIdentifier}
1030 template: {get_param: BlockStorageHostnameFormat}
1032 '%stackname%': {get_param: 'OS::stack_name'}
1033 ServiceNetMap: {get_param: ServiceNetMap}
1034 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1035 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1036 ExtraConfig: {get_param: ExtraConfig}
1037 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1038 CloudDomain: {get_param: CloudDomain}
1041 type: OS::Heat::ResourceGroup
1042 depends_on: Networks
1044 count: {get_param: ObjectStorageCount}
1045 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1047 type: OS::TripleO::ObjectStorage
1049 KeyName: {get_param: KeyName}
1050 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1051 HashSuffix: {get_param: SwiftHashSuffix}
1052 MountCheck: {get_param: SwiftMountCheck}
1053 MinPartHours: {get_param: SwiftMinPartHours}
1054 PartPower: {get_param: SwiftPartPower}
1055 Image: {get_param: SwiftStorageImage}
1056 Replicas: { get_param: SwiftReplicas}
1057 NtpServer: {get_param: NtpServer}
1058 UpdateIdentifier: {get_param: UpdateIdentifier}
1059 ServiceNetMap: {get_param: ServiceNetMap}
1062 template: {get_param: ObjectStorageHostnameFormat}
1064 '%stackname%': {get_param: 'OS::stack_name'}
1065 ExtraConfig: {get_param: ExtraConfig}
1066 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1067 CloudDomain: {get_param: CloudDomain}
1070 type: OS::Heat::ResourceGroup
1071 depends_on: Networks
1073 count: {get_param: CephStorageCount}
1074 removal_policies: {get_param: CephStorageRemovalPolicies}
1076 type: OS::TripleO::CephStorage
1078 Image: {get_param: CephStorageImage}
1079 KeyName: {get_param: KeyName}
1080 Flavor: {get_param: OvercloudCephStorageFlavor}
1081 NtpServer: {get_param: NtpServer}
1082 ServiceNetMap: {get_param: ServiceNetMap}
1083 UpdateIdentifier: {get_param: UpdateIdentifier}
1086 template: {get_param: CephStorageHostnameFormat}
1088 '%stackname%': {get_param: 'OS::stack_name'}
1089 ExtraConfig: {get_param: ExtraConfig}
1090 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1091 CloudDomain: {get_param: CloudDomain}
1093 ControllerIpListMap:
1094 type: OS::TripleO::Network::Ports::NetIpListMap
1096 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1097 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1098 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1099 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1100 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1101 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1104 type: OS::TripleO::AllNodes::SoftwareConfig
1106 compute_hosts: {get_attr: [Compute, hosts_entry]}
1107 controller_hosts: {get_attr: [Controller, hosts_entry]}
1108 controller_ips: {get_attr: [Controller, ip_address]}
1109 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1110 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1111 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1112 controller_names: {get_attr: [Controller, hostname]}
1113 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1114 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1115 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1116 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1117 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1118 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1119 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1120 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1121 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1122 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1123 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1124 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1125 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1126 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1127 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1128 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1129 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1130 DeployIdentifier: {get_param: DeployIdentifier}
1131 UpdateIdentifier: {get_param: UpdateIdentifier}
1134 type: OS::Heat::RandomString
1138 MysqlClusterUniquePart:
1139 type: OS::Heat::RandomString
1144 type: OS::Heat::RandomString
1147 salt: {get_param: RabbitCookieSalt}
1149 # creates the network architecture
1151 type: OS::TripleO::Network
1154 type: OS::Neutron::Port
1155 depends_on: Networks
1157 name: control_virtual_ip
1158 network: {get_param: NeutronControlPlaneID}
1159 fixed_ips: {get_param: ControlFixedIPs}
1160 replacement_policy: AUTO
1163 depends_on: Networks
1164 type: OS::TripleO::Controller::Ports::RedisVipPort
1166 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1167 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1168 PortName: redis_virtual_ip
1169 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1171 # The public VIP is on the External net, falls back to ctlplane
1173 depends_on: Networks
1174 type: OS::TripleO::Controller::Ports::ExternalPort
1176 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1177 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1178 PortName: public_virtual_ip
1179 FixedIPs: {get_param: PublicVirtualFixedIPs}
1181 InternalApiVirtualIP:
1182 depends_on: Networks
1183 type: OS::TripleO::Controller::Ports::InternalApiPort
1185 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1186 PortName: internal_api_virtual_ip
1189 depends_on: Networks
1190 type: OS::TripleO::Controller::Ports::StoragePort
1192 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1193 PortName: storage_virtual_ip
1195 StorageMgmtVirtualIP:
1196 depends_on: Networks
1197 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1199 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1200 PortName: storage_management_virtual_ip
1203 type: OS::TripleO::Network::Ports::NetVipMap
1205 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1206 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1207 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1208 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1209 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1210 # No tenant VIP required
1213 type: OS::TripleO::VipConfig
1216 type: OS::Heat::StructuredDeployments
1218 config: {get_resource: VipConfig}
1219 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1221 # service VIP mappings
1222 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1223 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1224 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1225 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1226 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1227 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1228 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1229 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1230 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1231 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1232 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1233 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1234 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1235 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1236 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1237 # direct configuration of Virtual IPs for each network
1238 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1239 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1240 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1241 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1242 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1244 ControllerBootstrapNodeConfig:
1245 type: OS::TripleO::BootstrapNode::SoftwareConfig
1247 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1248 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1250 ControllerBootstrapNodeDeployment:
1251 type: OS::Heat::StructuredDeployments
1253 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1254 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1256 ControllerSwiftDeployment:
1257 type: OS::Heat::StructuredDeployments
1259 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1260 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1262 ObjectStorageSwiftDeployment:
1263 type: OS::Heat::StructuredDeployments
1265 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1266 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1268 SwiftDevicesAndProxyConfig:
1269 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1271 controller_swift_devices: {get_attr: [Controller, swift_device]}
1272 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1273 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1275 ComputeCephDeployment:
1276 type: OS::Heat::StructuredDeployments
1278 config: {get_attr: [CephClusterConfig, config_id]}
1279 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1281 ControllerCephDeployment:
1282 type: OS::Heat::StructuredDeployments
1284 config: {get_attr: [CephClusterConfig, config_id]}
1285 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1287 CephStorageCephDeployment:
1288 type: OS::Heat::StructuredDeployments
1290 config: {get_attr: [CephClusterConfig, config_id]}
1291 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1294 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1296 ceph_storage_count: {get_param: CephStorageCount}
1297 ceph_fsid: {get_param: CephClusterFSID}
1298 ceph_mon_key: {get_param: CephMonKey}
1299 ceph_admin_key: {get_param: CephAdminKey}
1300 ceph_client_key: {get_param: CephClientKey}
1301 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1302 ceph_mon_names: {get_attr: [Controller, hostname]}
1303 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1305 ControllerClusterConfig:
1306 type: OS::Heat::StructuredConfig
1308 group: os-apply-config
1311 nodes: {get_attr: [Controller, corosync_node]}
1315 nodes: {get_attr: [Controller, hostname]}
1317 nodes: {get_attr: [Controller, corosync_node]}
1319 nodes: {get_attr: [Controller, corosync_node]}
1321 ControllerClusterDeployment:
1322 type: OS::Heat::StructuredDeployments
1324 config: {get_resource: ControllerClusterConfig}
1325 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1327 ControllerAllNodesDeployment:
1328 type: OS::Heat::StructuredDeployments
1330 config: {get_attr: [allNodesConfig, config_id]}
1331 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1333 ComputeAllNodesDeployment:
1334 type: OS::Heat::StructuredDeployments
1336 config: {get_attr: [allNodesConfig, config_id]}
1337 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1339 BlockStorageAllNodesDeployment:
1340 type: OS::Heat::StructuredDeployments
1342 config: {get_attr: [allNodesConfig, config_id]}
1343 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1345 ObjectStorageAllNodesDeployment:
1346 type: OS::Heat::StructuredDeployments
1348 config: {get_attr: [allNodesConfig, config_id]}
1349 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1351 CephStorageAllNodesDeployment:
1352 type: OS::Heat::StructuredDeployments
1354 config: {get_attr: [allNodesConfig, config_id]}
1355 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1357 # All Nodes Validations
1358 AllNodesValidationConfig:
1359 type: OS::TripleO::AllNodes::Validation
1364 - - {get_attr: [Controller, resource.0.external_ip_address]}
1365 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1366 - {get_attr: [Controller, resource.0.storage_ip_address]}
1367 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1368 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1370 ControllerAllNodesValidationDeployment:
1371 type: OS::Heat::StructuredDeployments
1372 depends_on: ControllerAllNodesDeployment
1374 config: {get_resource: AllNodesValidationConfig}
1375 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1377 ComputeAllNodesValidationDeployment:
1378 type: OS::Heat::StructuredDeployments
1379 depends_on: ComputeAllNodesDeployment
1381 config: {get_resource: AllNodesValidationConfig}
1382 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1384 BlockStorageAllNodesValidationDeployment:
1385 type: OS::Heat::StructuredDeployments
1386 depends_on: BlockStorageAllNodesDeployment
1388 config: {get_resource: AllNodesValidationConfig}
1389 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1391 ObjectStorageAllNodesValidationDeployment:
1392 type: OS::Heat::StructuredDeployments
1393 depends_on: ObjectStorageAllNodesDeployment
1395 config: {get_resource: AllNodesValidationConfig}
1396 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1398 CephStorageAllNodesValidationDeployment:
1399 type: OS::Heat::StructuredDeployments
1400 depends_on: CephStorageAllNodesDeployment
1402 config: {get_resource: AllNodesValidationConfig}
1403 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1405 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1406 # the nested template may configure each role differently (or not at all)
1407 AllNodesExtraConfig:
1408 type: OS::TripleO::AllNodesExtraConfig
1410 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1411 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1412 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1413 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1414 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1416 # Nested stack deployment runs after all other controller deployments
1417 ControllerNodesPostDeployment:
1418 type: OS::TripleO::ControllerPostDeployment
1419 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1421 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1422 NodeConfigIdentifiers:
1423 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1424 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1425 deployment_identifier: {get_param: DeployIdentifier}
1427 ComputeNodesPostDeployment:
1428 type: OS::TripleO::ComputePostDeployment
1429 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1431 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1432 NodeConfigIdentifiers:
1433 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1434 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1435 deployment_identifier: {get_param: DeployIdentifier}
1437 ObjectStorageNodesPostDeployment:
1438 type: OS::TripleO::ObjectStoragePostDeployment
1439 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1441 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1442 NodeConfigIdentifiers:
1443 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1444 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1445 deployment_identifier: {get_param: DeployIdentifier}
1447 BlockStorageNodesPostDeployment:
1448 type: OS::TripleO::BlockStoragePostDeployment
1449 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1451 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1452 NodeConfigIdentifiers:
1453 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1454 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1455 deployment_identifier: {get_param: DeployIdentifier}
1457 CephStorageNodesPostDeployment:
1458 type: OS::TripleO::CephStoragePostDeployment
1459 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1461 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1462 NodeConfigIdentifiers:
1463 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1464 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1465 deployment_identifier: {get_param: DeployIdentifier}
1469 description: URL for the Overcloud Keystone service
1470 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1472 description: Keystone Admin VIP endpoint
1473 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1475 description: Controller VIP for public API endpoints
1476 value: {get_attr: [VipMap, net_ip_map, external]}
1477 CeilometerInternalVip:
1478 description: VIP for Ceilometer API internal endpoint
1479 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1481 description: VIP for Cinder API internal endpoint
1482 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1484 description: VIP for Glance API internal endpoint
1485 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1487 description: VIP for Heat API internal endpoint
1488 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1489 KeystoneInternalVip:
1490 description: VIP for Keystone API internal endpoint
1491 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1493 description: VIP for Neutron API internal endpoint
1494 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1496 description: VIP for Nova API internal endpoint
1497 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1499 description: VIP for Swift Proxy internal endpoint
1500 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}