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 NeutronEnableTunnelling:
123 default: 'datacentre'
125 If set, flat networks to configure in neutron plugins. Defaults to
126 'datacentre' to permit external network creation.
129 description: The tenant network type for Neutron, either gre or vxlan.
133 description: The password for the neutron service account, used by neutron agents.
136 NeutronPublicInterface:
138 description: What interface to bridge onto br-ex for network nodes.
140 NeutronPublicInterfaceTag:
143 VLAN tag for creating a public VLAN. The tag will be used to
144 create an access port on the exterior bridge for each control plane node,
145 and that port will be given the IP address returned by neutron from the
146 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
147 overcloud.yaml to include the deployment of VLAN ports to the control
150 NeutronComputeAgentMode:
152 description: Agent mode for the neutron-l3-agent on the compute hosts
156 description: Agent mode for the neutron-l3-agent on the controller hosts
160 description: Whether to configure Neutron Distributed Virtual Routers
162 NeutronMetadataProxySharedSecret:
164 description: Shared secret to prevent spoofing
170 The tunnel types for the Neutron tenant network. To specify multiple
171 values, use a comma separated string, like so: 'gre,vxlan'
173 NeutronTunnelIdRanges:
175 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
176 of GRE tunnel IDs that are available for tenant network allocation
177 default: ["1:1000", ]
178 type: comma_delimited_list
181 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
182 of VXLAN VNI IDs that are available for tenant network allocation
183 default: ["1:1000", ]
184 type: comma_delimited_list
188 The core plugin for Neutron. The value should be the entrypoint to be loaded
189 from neutron.core_plugins namespace.
191 NeutronServicePlugins:
194 Comma-separated list of service plugin entrypoints to be loaded from the
195 neutron.service_plugins namespace.
196 type: comma_delimited_list
198 default: "vxlan,vlan,flat,gre"
200 Comma-separated list of network type driver entrypoints to be loaded.
201 type: comma_delimited_list
202 NeutronMechanismDrivers:
203 default: 'openvswitch'
205 The mechanism drivers for the Neutron tenant network. To specify multiple
206 values, use a comma separated string, like so: 'openvswitch,l2_population'
208 NeutronAllowL3AgentFailover:
210 description: Allow automatic l3-agent failover
214 description: Whether to enable l3-agent HA
216 NeutronDhcpAgentsPerNetwork:
219 description: The number of neutron dhcp agents to schedule per network
222 description: The password for the nova service account, used by nova-api.
227 description: Comma-separated list of ntp servers
228 type: comma_delimited_list
231 description: Should MongoDb journaling be disabled
233 PublicVirtualFixedIPs:
236 Control the IP allocation for the PublicVirtualInterface port. E.g.
237 [{'ip_address':'1.2.3.4'}]
242 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
243 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
246 description: The username for RabbitMQ
250 description: The password for RabbitMQ
256 Rabbit client subscriber parameter to specify
257 an SSL connection to the RabbitMQ host.
261 description: Set rabbit subscriber port, change this if using SSL
263 # We need to set this as string because 'unlimited' is a valid setting
266 description: Configures RabbitMQ FD limit
268 SnmpdReadonlyUserName:
269 default: ro_snmp_user
270 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
272 SnmpdReadonlyUserPassword:
274 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
278 # Controller-specific params
281 description: The keystone auth secret.
284 CinderLVMLoopDeviceSize:
286 description: The size of the loopback file used by the cinder LVM driver.
288 CinderNfsMountOptions:
291 Mount options for NFS mounts used by Cinder NFS backend. Effective
292 when CinderEnableNfsBackend is true.
297 NFS servers used by Cinder NFS backend. Effective when
298 CinderEnableNfsBackend is true.
299 type: comma_delimited_list
302 description: The password for the cinder service account, used by cinder-api.
307 description: The iSCSI helper to use with cinder.
314 controllerExtraConfig:
317 Controller specific configuration to inject into the cluster. Same
318 structure as ExtraConfig.
322 default: overcloud-control
324 - custom_constraint: glance.image
325 OvercloudControlFlavor:
326 description: Flavor for control nodes to request when deploying.
329 - custom_constraint: nova.flavor
330 ControlVirtualInterface:
332 description: Interface where virtual ip will be assigned.
336 description: Whether to enable fencing in Pacemaker or not.
340 description: Whether to use Galera instead of regular MariaDB.
342 ControllerEnableCephStorage:
344 description: Whether to deploy Ceph Storage (OSD) on the Controller
346 ControllerEnableSwiftStorage:
348 description: Whether to enable Swift Storage on the Controller
353 Additional configuration to inject into the cluster. The format required
354 may be implementation specific, e.g puppet hieradata. Any role specific
355 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
360 Pacemaker fencing configuration. The JSON should have
361 the following structure:
365 "agent": "AGENT_NAME",
366 "host_mac": "HOST_MAC_ADDRESS",
367 "params": {"PARAM_NAME": "PARAM_VALUE"}
375 "agent": "fence_xvm",
376 "host_mac": "52:54:00:aa:bb:cc",
378 "multicast_address": "225.0.0.12",
379 "port": "baremetal_0",
381 "manage_key_file": true,
382 "key_file": "/etc/fence_xvm.key",
383 "key_file_password": "abcdef"
390 description: The filepath of the file to use for logging messages from Glance.
393 GlanceNotifierStrategy:
394 description: Strategy to use for Glance notification queue
399 description: The password for the glance service account, used by the glance services.
404 description: The short name of the Glance backend to use. Should be one
405 of swift, rbd or file
408 - allowed_values: ['swift', 'file', 'rbd']
411 description: The password for the Heat service account, used by the Heat services.
414 HeatStackDomainAdminPassword:
415 description: Password for heat_domain_admin user.
419 KeystoneCACertificate:
421 description: Keystone self-signed certificate authority certificate.
423 KeystoneSigningCertificate:
425 description: Keystone certificate for verifying token validity.
429 description: Keystone key for signing tokens.
432 KeystoneSSLCertificate:
434 description: Keystone certificate for verifying token validity.
436 KeystoneSSLCertificateKey:
438 description: Keystone key for signing tokens.
441 KeystoneNotificationDriver:
442 description: Comma-separated list of Oslo notification drivers used by Keystone
443 default: ['messaging']
444 type: comma_delimited_list
445 KeystoneNotificationFormat:
446 description: The Keystone notification format
450 - allowed_values: [ 'basic', 'cadf' ]
451 MysqlInnodbBufferPoolSize:
453 Specifies the size of the buffer pool in megabytes. Setting to
454 zero should be interpreted as "no value" and will defer to the
459 description: Configures MySQL max_connections config setting
462 NeutronDnsmasqOptions:
463 default: 'dhcp-option-force=26,1400'
464 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
466 NeutronPublicInterfaceDefaultRoute:
468 description: A custom default route for the NeutronPublicInterface.
470 NeutronPublicInterfaceIP:
472 description: A custom IP address to put onto the NeutronPublicInterface.
474 NeutronPublicInterfaceRawDevice:
476 description: If set, the public interface is a vlan with this device as the raw device.
478 PublicVirtualInterface:
481 Specifies the interface where the public-facing virtual ip will be assigned.
482 This should be int_public when a VLAN is being used.
486 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
491 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
496 description: If set, the contents of an SSL certificate authority file.
500 description: A random string to be used as a salt when hashing to determine mappings in the ring.
505 description: The password for the swift service account, used by the swift proxy services.
510 description: Value of mount_check in Swift account/container/object -server.conf
515 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
518 description: Partition Power to use when building Swift rings
523 description: How many replicas to use in the swift rings.
525 # Compute-specific params
526 CeilometerComputeAgent:
527 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
531 - allowed_values: ['', Present]
535 HypervisorNeutronPhysicalBridge:
538 An OVS bridge to create on each hypervisor. This defaults to br-ex the
539 same as the control plane nodes, as we have a uniform configuration of
540 the openvswitch agent. Typically should not need to be changed.
542 HypervisorNeutronPublicInterface:
544 description: What interface to add to the HypervisorNeutronPhysicalBridge.
546 NeutronNetworkVLANRanges:
547 default: 'datacentre'
549 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
550 Neutron documentation for permitted values. Defaults to permitting any
551 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
552 type: comma_delimited_list
555 default: libvirt.LibvirtDriver
556 NovaComputeExtraConfig:
559 NovaCompute specific configuration to inject into the cluster. Same
560 structure as ExtraConfig.
562 NovaComputeLibvirtType:
565 NovaEnableRbdBackend:
567 description: Whether to enable or not the Rbd backend for Nova
571 default: overcloud-compute
573 - custom_constraint: glance.image
574 OvercloudComputeFlavor:
575 description: Use this flavor
578 - custom_constraint: nova.flavor
581 NeutronTenantNetwork: tenant
582 CeilometerApiNetwork: internal_api
583 MongoDbNetwork: internal_api
584 CinderApiNetwork: internal_api
585 CinderIscsiNetwork: storage
586 GlanceApiNetwork: storage
587 GlanceRegistryNetwork: internal_api
588 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
589 KeystonePublicApiNetwork: internal_api
590 NeutronApiNetwork: internal_api
591 HeatApiNetwork: internal_api
592 NovaApiNetwork: internal_api
593 NovaMetadataNetwork: internal_api
594 NovaVncProxyNetwork: internal_api
595 SwiftMgmtNetwork: storage_mgmt
596 SwiftProxyNetwork: storage
597 HorizonNetwork: internal_api
598 MemcachedNetwork: internal_api
599 RabbitMqNetwork: internal_api
600 RedisNetwork: internal_api
601 MysqlNetwork: internal_api
602 CephClusterNetwork: storage_mgmt
603 CephPublicNetwork: storage
604 ControllerHostnameResolveNetwork: internal_api
605 ComputeHostnameResolveNetwork: internal_api
606 BlockStorageHostnameResolveNetwork: internal_api
607 ObjectStorageHostnameResolveNetwork: internal_api
608 CephStorageHostnameResolveNetwork: storage
609 description: Mapping of service_name -> network name. Typically set
610 via parameter_defaults in the resource registry.
613 # Block storage specific parameters
618 default: overcloud-cinder-volume
620 OvercloudBlockStorageFlavor:
621 description: Flavor for block storage nodes to request when deploying.
624 - custom_constraint: nova.flavor
625 BlockStorageExtraConfig:
628 BlockStorage specific configuration to inject into the cluster. Same
629 structure as ExtraConfig.
632 # Object storage specific parameters
636 OvercloudSwiftStorageFlavor:
637 description: Flavor for Swift storage nodes to request when deploying.
640 - custom_constraint: nova.flavor
642 default: overcloud-swift-storage
644 ObjectStorageExtraConfig:
647 ObjectStorage specific configuration to inject into the cluster. Same
648 structure as ExtraConfig.
652 # Ceph storage specific parameters
657 default: overcloud-ceph-storage
659 OvercloudCephStorageFlavor:
661 description: Flavor for Ceph storage nodes to request when deploying.
664 - custom_constraint: nova.flavor
665 CephStorageExtraConfig:
668 CephStorage specific configuration to inject into the cluster. Same
669 structure as ExtraConfig.
672 # Hostname format for each role
673 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
674 # and %stackname% is replaced with OS::stack_name in the template below.
675 # If you want to use the heat generated names, pass '' (empty string).
676 ControllerHostnameFormat:
678 description: Format for Controller node hostnames
679 default: '%stackname%-controller-%index%'
680 ComputeHostnameFormat:
682 description: Format for Compute node hostnames
683 default: '%stackname%-novacompute-%index%'
684 BlockStorageHostnameFormat:
686 description: Format for BlockStorage node hostnames
687 default: '%stackname%-blockstorage-%index%'
688 ObjectStorageHostnameFormat:
690 description: Format for SwiftStorage node hostnames
691 default: '%stackname%-objectstorage-%index%'
692 CephStorageHostnameFormat:
694 description: Format for CephStorage node hostnames
695 default: '%stackname%-cephstorage-%index%'
697 # Identifiers to trigger tasks on nodes
702 Setting to a previously unused value during stack-update will trigger
703 package update on all nodes
708 Setting this to a unique value will re-run any deployment tasks which
709 perform configuration on a Heat stack-update.
711 # If you want to remove a specific node from a resource group, you can pass
712 # the node name or id as a <Group>RemovalPolicies parameter, for example:
713 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
714 ControllerRemovalPolicies:
718 List of resources to be removed from ControllerResourceGroup when
719 doing an update which requires removal of specific resources.
720 ComputeRemovalPolicies:
724 List of resources to be removed from ComputeResourceGroup when
725 doing an update which requires removal of specific resources.
726 BlockStorageRemovalPolicies:
730 List of resources to be removed from BlockStorageResourceGroup when
731 doing an update which requires removal of specific resources.
732 ObjectStorageRemovalPolicies:
736 List of resources to be removed from ObjectStorageResourceGroup when
737 doing an update which requires removal of specific resources.
738 CephStorageRemovalPolicies:
742 List of resources to be removed from CephStorageResourceGroup when
743 doing an update which requires removal of specific resources.
748 HeatAuthEncryptionKey:
749 type: OS::Heat::RandomString
752 type: OS::Heat::RandomString
757 type: OS::Heat::RandomString
762 type: OS::TripleO::EndpointMap
764 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
765 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
766 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
767 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
768 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
769 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
770 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
771 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
772 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
773 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
774 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
775 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
778 type: OS::Heat::ResourceGroup
781 count: {get_param: ControllerCount}
782 removal_policies: {get_param: ControllerRemovalPolicies}
784 type: OS::TripleO::Controller
786 AdminPassword: {get_param: AdminPassword}
787 AdminToken: {get_param: AdminToken}
788 CeilometerBackend: {get_param: CeilometerBackend}
789 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
790 CeilometerPassword: {get_param: CeilometerPassword}
791 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
792 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
793 CinderNfsServers: {get_param: CinderNfsServers}
794 CinderPassword: {get_param: CinderPassword}
795 CinderISCSIHelper: {get_param: CinderISCSIHelper}
796 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
797 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
798 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
799 CloudName: {get_param: CloudName}
800 ControlVirtualInterface: {get_param: ControlVirtualInterface}
801 ControllerExtraConfig: {get_param: controllerExtraConfig}
802 Debug: {get_param: Debug}
803 EnableFencing: {get_param: EnableFencing}
804 EnableGalera: {get_param: EnableGalera}
805 EnableCephStorage: {get_param: ControllerEnableCephStorage}
806 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
807 ExtraConfig: {get_param: ExtraConfig}
808 FencingConfig: {get_param: FencingConfig}
809 Flavor: {get_param: OvercloudControlFlavor}
810 GlancePassword: {get_param: GlancePassword}
811 GlanceBackend: {get_param: GlanceBackend}
812 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
813 GlanceLogFile: {get_param: GlanceLogFile}
814 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
815 HeatPassword: {get_param: HeatPassword}
816 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
817 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
818 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
819 HorizonSecret: {get_resource: HorizonSecret}
820 Image: {get_param: controllerImage}
821 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
822 KeyName: {get_param: KeyName}
823 KeystoneCACertificate: {get_param: KeystoneCACertificate}
824 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
825 KeystoneSigningKey: {get_param: KeystoneSigningKey}
826 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
827 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
828 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
829 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
830 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
831 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
832 MysqlMaxConnections: {get_param: MysqlMaxConnections}
833 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
834 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
835 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
836 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
837 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
838 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
839 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
840 NeutronPublicInterface: {get_param: NeutronPublicInterface}
841 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
842 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
843 NeutronPassword: {get_param: NeutronPassword}
844 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
845 NeutronDVR: {get_param: NeutronDVR}
846 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
847 NeutronAgentMode: {get_param: NeutronAgentMode}
848 NeutronCorePlugin: {get_param: NeutronCorePlugin}
849 NeutronServicePlugins: {get_param: NeutronServicePlugins}
850 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
851 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
852 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
853 NeutronL3HA: {get_param: NeutronL3HA}
854 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
855 NeutronNetworkType: {get_param: NeutronNetworkType}
856 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
857 NovaPassword: {get_param: NovaPassword}
858 NtpServer: {get_param: NtpServer}
859 MongoDbNoJournal: {get_param: MongoDbNoJournal}
860 PcsdPassword: {get_resource: PcsdPassword}
861 PublicVirtualInterface: {get_param: PublicVirtualInterface}
862 RabbitPassword: {get_param: RabbitPassword}
863 RabbitUserName: {get_param: RabbitUserName}
864 RabbitCookie: {get_attr: [RabbitCookie, value]}
865 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
866 RabbitClientPort: {get_param: RabbitClientPort}
867 RabbitFDLimit: {get_param: RabbitFDLimit}
868 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
869 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
870 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
871 SSLCertificate: {get_param: SSLCertificate}
872 SSLKey: {get_param: SSLKey}
873 SSLCACertificate: {get_param: SSLCACertificate}
874 SwiftHashSuffix: {get_param: SwiftHashSuffix}
875 SwiftMountCheck: {get_param: SwiftMountCheck}
876 SwiftMinPartHours: {get_param: SwiftMinPartHours}
877 SwiftPartPower: {get_param: SwiftPartPower}
878 SwiftPassword: {get_param: SwiftPassword}
879 SwiftReplicas: { get_param: SwiftReplicas}
880 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
881 PublicVirtualIP: {get_attr: [PublicVirtualIP, ip_address]}
882 ServiceNetMap: {get_param: ServiceNetMap}
883 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
884 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
885 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
886 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
887 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
888 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
889 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
890 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
891 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
892 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
893 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
894 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
895 UpdateIdentifier: {get_param: UpdateIdentifier}
898 template: {get_param: ControllerHostnameFormat}
900 '%stackname%': {get_param: 'OS::stack_name'}
903 type: OS::Heat::ResourceGroup
906 count: {get_param: ComputeCount}
907 removal_policies: {get_param: ComputeRemovalPolicies}
909 type: OS::TripleO::Compute
911 AdminPassword: {get_param: AdminPassword}
912 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
913 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
914 CeilometerPassword: {get_param: CeilometerPassword}
915 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
916 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
917 Debug: {get_param: Debug}
918 ExtraConfig: {get_param: ExtraConfig}
919 Flavor: {get_param: OvercloudComputeFlavor}
920 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
921 Image: {get_param: NovaImage}
922 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
923 KeyName: {get_param: KeyName}
924 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
925 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
926 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
927 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
928 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
929 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
930 NeutronNetworkType: {get_param: NeutronNetworkType}
931 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
932 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
933 NeutronPassword: {get_param: NeutronPassword}
934 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
935 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
936 NeutronDVR: {get_param: NeutronDVR}
937 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
938 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
939 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
940 NeutronCorePlugin: {get_param: NeutronCorePlugin}
941 NeutronServicePlugins: {get_param: NeutronServicePlugins}
942 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
943 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
944 # L3 HA and Failover is not relevant for Computes, should be removed
945 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
946 NeutronL3HA: {get_param: NeutronL3HA}
947 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
948 NovaComputeDriver: {get_param: NovaComputeDriver}
949 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
950 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
951 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
952 NovaPublicIP: {get_attr: [PublicVirtualIP, ip_address]}
953 NovaPassword: {get_param: NovaPassword}
954 NtpServer: {get_param: NtpServer}
955 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
956 RabbitPassword: {get_param: RabbitPassword}
957 RabbitUserName: {get_param: RabbitUserName}
958 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
959 RabbitClientPort: {get_param: RabbitClientPort}
960 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
961 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
962 ServiceNetMap: {get_param: ServiceNetMap}
963 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
964 UpdateIdentifier: {get_param: UpdateIdentifier}
967 template: {get_param: ComputeHostnameFormat}
969 '%stackname%': {get_param: 'OS::stack_name'}
972 type: OS::Heat::ResourceGroup
975 count: {get_param: BlockStorageCount}
976 removal_policies: {get_param: BlockStorageRemovalPolicies}
978 type: OS::TripleO::BlockStorage
980 Debug: {get_param: Debug}
981 Image: {get_param: BlockStorageImage}
982 CinderISCSIHelper: {get_param: CinderISCSIHelper}
983 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
984 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
985 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
986 CinderPassword: {get_param: CinderPassword}
987 KeyName: {get_param: KeyName}
988 Flavor: {get_param: OvercloudBlockStorageFlavor}
989 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
990 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
991 RabbitPassword: {get_param: RabbitPassword}
992 RabbitUserName: {get_param: RabbitUserName}
993 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
994 RabbitClientPort: {get_param: RabbitClientPort}
995 NtpServer: {get_param: NtpServer}
996 UpdateIdentifier: {get_param: UpdateIdentifier}
999 template: {get_param: BlockStorageHostnameFormat}
1001 '%stackname%': {get_param: 'OS::stack_name'}
1002 ServiceNetMap: {get_param: ServiceNetMap}
1003 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1004 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1005 ExtraConfig: {get_param: ExtraConfig}
1006 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1009 type: OS::Heat::ResourceGroup
1010 depends_on: Networks
1012 count: {get_param: ObjectStorageCount}
1013 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1015 type: OS::TripleO::ObjectStorage
1017 KeyName: {get_param: KeyName}
1018 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1019 HashSuffix: {get_param: SwiftHashSuffix}
1020 MountCheck: {get_param: SwiftMountCheck}
1021 MinPartHours: {get_param: SwiftMinPartHours}
1022 PartPower: {get_param: SwiftPartPower}
1023 Image: {get_param: SwiftStorageImage}
1024 Replicas: { get_param: SwiftReplicas}
1025 NtpServer: {get_param: NtpServer}
1026 UpdateIdentifier: {get_param: UpdateIdentifier}
1027 ServiceNetMap: {get_param: ServiceNetMap}
1030 template: {get_param: ObjectStorageHostnameFormat}
1032 '%stackname%': {get_param: 'OS::stack_name'}
1033 ExtraConfig: {get_param: ExtraConfig}
1034 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1037 type: OS::Heat::ResourceGroup
1038 depends_on: Networks
1040 count: {get_param: CephStorageCount}
1041 removal_policies: {get_param: CephStorageRemovalPolicies}
1043 type: OS::TripleO::CephStorage
1045 Image: {get_param: CephStorageImage}
1046 KeyName: {get_param: KeyName}
1047 Flavor: {get_param: OvercloudCephStorageFlavor}
1048 NtpServer: {get_param: NtpServer}
1049 ServiceNetMap: {get_param: ServiceNetMap}
1050 UpdateIdentifier: {get_param: UpdateIdentifier}
1053 template: {get_param: CephStorageHostnameFormat}
1055 '%stackname%': {get_param: 'OS::stack_name'}
1056 ExtraConfig: {get_param: ExtraConfig}
1057 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1059 ControllerIpListMap:
1060 type: OS::TripleO::Network::Ports::NetIpListMap
1062 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1063 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1064 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1065 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1066 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1067 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1070 type: OS::TripleO::AllNodes::SoftwareConfig
1072 compute_hosts: {get_attr: [Compute, hosts_entry]}
1073 controller_hosts: {get_attr: [Controller, hosts_entry]}
1074 controller_ips: {get_attr: [Controller, ip_address]}
1075 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1076 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1077 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1078 controller_names: {get_attr: [Controller, hostname]}
1079 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1080 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1081 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1082 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1083 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1084 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1085 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1086 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1087 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1088 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1089 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1090 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1091 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1092 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1093 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1094 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1095 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1098 type: OS::Heat::RandomString
1102 MysqlClusterUniquePart:
1103 type: OS::Heat::RandomString
1108 type: OS::Heat::RandomString
1111 salt: {get_param: RabbitCookieSalt}
1113 # creates the network architecture
1115 type: OS::TripleO::Network
1118 type: OS::Neutron::Port
1119 depends_on: Networks
1121 name: control_virtual_ip
1122 network: {get_param: NeutronControlPlaneID}
1123 fixed_ips: {get_param: ControlFixedIPs}
1124 replacement_policy: AUTO
1127 depends_on: Networks
1128 type: OS::TripleO::Controller::Ports::RedisVipPort
1130 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1131 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1132 PortName: redis_virtual_ip
1133 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1135 # The public VIP is on the External net, falls back to ctlplane
1137 depends_on: Networks
1138 type: OS::TripleO::Controller::Ports::ExternalPort
1140 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1141 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1142 PortName: public_virtual_ip
1143 FixedIPs: {get_param: PublicVirtualFixedIPs}
1145 InternalApiVirtualIP:
1146 depends_on: Networks
1147 type: OS::TripleO::Controller::Ports::InternalApiPort
1149 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1150 PortName: internal_api_virtual_ip
1153 depends_on: Networks
1154 type: OS::TripleO::Controller::Ports::StoragePort
1156 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1157 PortName: storage_virtual_ip
1159 StorageMgmtVirtualIP:
1160 depends_on: Networks
1161 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1163 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1164 PortName: storage_management_virtual_ip
1167 type: OS::TripleO::Network::Ports::NetIpMap
1169 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1170 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1171 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1172 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1173 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1174 # No tenant VIP required
1177 type: OS::TripleO::VipConfig
1180 type: OS::Heat::StructuredDeployments
1182 config: {get_resource: VipConfig}
1183 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1185 # service VIP mappings
1186 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1187 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1188 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1189 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1190 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1191 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1192 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1193 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1194 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1195 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1196 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1197 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1198 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1199 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1200 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1201 # direct configuration of Virtual IPs for each network
1202 control_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1203 public_virtual_ip: {get_attr: [PublicVirtualIP, ip_address]}
1204 internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
1205 storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
1206 storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1208 ControllerBootstrapNodeConfig:
1209 type: OS::TripleO::BootstrapNode::SoftwareConfig
1211 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1212 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1214 ControllerBootstrapNodeDeployment:
1215 type: OS::Heat::StructuredDeployments
1217 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1218 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1220 ControllerSwiftDeployment:
1221 type: OS::Heat::StructuredDeployments
1223 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1224 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1226 ObjectStorageSwiftDeployment:
1227 type: OS::Heat::StructuredDeployments
1229 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1230 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1232 SwiftDevicesAndProxyConfig:
1233 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1235 controller_swift_devices: {get_attr: [Controller, swift_device]}
1236 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1237 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1239 ComputeCephDeployment:
1240 type: OS::Heat::StructuredDeployments
1242 config: {get_attr: [CephClusterConfig, config_id]}
1243 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1245 ControllerCephDeployment:
1246 type: OS::Heat::StructuredDeployments
1248 config: {get_attr: [CephClusterConfig, config_id]}
1249 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1251 CephStorageCephDeployment:
1252 type: OS::Heat::StructuredDeployments
1254 config: {get_attr: [CephClusterConfig, config_id]}
1255 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1258 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1260 ceph_storage_count: {get_param: CephStorageCount}
1261 ceph_fsid: {get_param: CephClusterFSID}
1262 ceph_mon_key: {get_param: CephMonKey}
1263 ceph_admin_key: {get_param: CephAdminKey}
1264 ceph_client_key: {get_param: CephClientKey}
1265 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1266 ceph_mon_names: {get_attr: [Controller, hostname]}
1267 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1269 ControllerClusterConfig:
1270 type: OS::Heat::StructuredConfig
1272 group: os-apply-config
1275 nodes: {get_attr: [Controller, corosync_node]}
1279 nodes: {get_attr: [Controller, hostname]}
1281 nodes: {get_attr: [Controller, corosync_node]}
1283 nodes: {get_attr: [Controller, corosync_node]}
1285 ControllerClusterDeployment:
1286 type: OS::Heat::StructuredDeployments
1288 config: {get_resource: ControllerClusterConfig}
1289 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1291 ControllerAllNodesDeployment:
1292 type: OS::Heat::StructuredDeployments
1294 config: {get_attr: [allNodesConfig, config_id]}
1295 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1297 ComputeAllNodesDeployment:
1298 type: OS::Heat::StructuredDeployments
1300 config: {get_attr: [allNodesConfig, config_id]}
1301 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1303 BlockStorageAllNodesDeployment:
1304 type: OS::Heat::StructuredDeployments
1306 config: {get_attr: [allNodesConfig, config_id]}
1307 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1309 ObjectStorageAllNodesDeployment:
1310 type: OS::Heat::StructuredDeployments
1312 config: {get_attr: [allNodesConfig, config_id]}
1313 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1315 CephStorageAllNodesDeployment:
1316 type: OS::Heat::StructuredDeployments
1318 config: {get_attr: [allNodesConfig, config_id]}
1319 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1321 # All Nodes Validations
1322 AllNodesValidationConfig:
1323 type: OS::TripleO::AllNodes::Validation
1328 - - {get_attr: [Controller, resource.0.external_ip_address]}
1329 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1330 - {get_attr: [Controller, resource.0.storage_ip_address]}
1331 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1332 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1334 ControllerAllNodesValidationDeployment:
1335 type: OS::Heat::StructuredDeployments
1336 depends_on: ControllerAllNodesDeployment
1338 config: {get_resource: AllNodesValidationConfig}
1339 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1341 ComputeAllNodesValidationDeployment:
1342 type: OS::Heat::StructuredDeployments
1343 depends_on: ComputeAllNodesDeployment
1345 config: {get_resource: AllNodesValidationConfig}
1346 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1348 BlockStorageAllNodesValidationDeployment:
1349 type: OS::Heat::StructuredDeployments
1350 depends_on: BlockStorageAllNodesDeployment
1352 config: {get_resource: AllNodesValidationConfig}
1353 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1355 ObjectStorageAllNodesValidationDeployment:
1356 type: OS::Heat::StructuredDeployments
1357 depends_on: ObjectStorageAllNodesDeployment
1359 config: {get_resource: AllNodesValidationConfig}
1360 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1362 CephStorageAllNodesValidationDeployment:
1363 type: OS::Heat::StructuredDeployments
1364 depends_on: CephStorageAllNodesDeployment
1366 config: {get_resource: AllNodesValidationConfig}
1367 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1369 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1370 # the nested template may configure each role differently (or not at all)
1371 AllNodesExtraConfig:
1372 type: OS::TripleO::AllNodesExtraConfig
1374 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1375 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1376 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1377 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1378 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1380 # Nested stack deployment runs after all other controller deployments
1381 ControllerNodesPostDeployment:
1382 type: OS::TripleO::ControllerPostDeployment
1383 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1385 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1386 NodeConfigIdentifiers:
1387 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1388 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1389 deployment_identifier: {get_param: DeployIdentifier}
1391 ComputeNodesPostDeployment:
1392 type: OS::TripleO::ComputePostDeployment
1393 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1395 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1396 NodeConfigIdentifiers:
1397 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1398 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1399 deployment_identifier: {get_param: DeployIdentifier}
1401 ObjectStorageNodesPostDeployment:
1402 type: OS::TripleO::ObjectStoragePostDeployment
1403 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1405 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1406 NodeConfigIdentifiers:
1407 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1408 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1409 deployment_identifier: {get_param: DeployIdentifier}
1411 BlockStorageNodesPostDeployment:
1412 type: OS::TripleO::BlockStoragePostDeployment
1413 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1415 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1416 NodeConfigIdentifiers:
1417 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1418 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1419 deployment_identifier: {get_param: DeployIdentifier}
1421 CephStorageNodesPostDeployment:
1422 type: OS::TripleO::CephStoragePostDeployment
1423 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1425 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1426 NodeConfigIdentifiers:
1427 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1428 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1429 deployment_identifier: {get_param: DeployIdentifier}
1433 description: URL for the Overcloud Keystone service
1434 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1436 description: Keystone Admin VIP endpoint
1437 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1439 description: Controller VIP for public API endpoints
1440 value: {get_attr: [PublicVirtualIP, ip_address]}
1441 CeilometerInternalVip:
1442 description: VIP for Ceilometer API internal endpoint
1443 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1445 description: VIP for Cinder API internal endpoint
1446 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1448 description: VIP for Glance API internal endpoint
1449 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1451 description: VIP for Heat API internal endpoint
1452 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1453 KeystoneInternalVip:
1454 description: VIP for Keystone API internal endpoint
1455 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1457 description: VIP for Neutron API internal endpoint
1458 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1460 description: VIP for Nova API internal endpoint
1461 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1463 description: VIP for Swift Proxy internal endpoint
1464 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}