1 heat_template_version: 2015-04-30
4 Nova API,Keystone,Heat Engine and API,Glance,Neutron,Dedicated MySQL
5 server,Dedicated RabbitMQ Server,Group of Nova Computes
8 # TODO(shadower): we should probably use the parameter groups to put
12 # Common parameters (not specific to a role)
15 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
20 description: The ceilometer backend type.
22 CeilometerMeteringSecret:
24 description: Secret shared by the ceilometer services.
29 description: The password for the ceilometer service account.
32 # This has to be an UUID so for now we generate it outside the template
36 description: The Ceph cluster FSID. Must be a UUID.
39 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
44 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
47 CinderEnableNfsBackend:
49 description: Whether to enable or not the NFS backend for Cinder
53 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.
59 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
60 CinderEnableIscsiBackend:
62 description: Whether to enable or not the Iscsi backend for Cinder
66 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
70 description: Should be used for arbitrary ips.
74 description: Set to True to enable debugging on all services.
78 description: Glance port.
82 description: Protocol to use when connecting to glance, set to https for SSL.
86 description: A list of IP/Hostname allowed to connect to horizon
87 type: comma_delimited_list
89 default: 'REBUILD_PRESERVE_EPHEMERAL'
90 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
94 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
97 - custom_constraint: nova.keypair
98 NeutronExternalNetworkBridge:
99 description: Name of bridge used for external network traffic.
102 NeutronBridgeMappings:
104 The OVS logical->physical bridge mappings to use. See the Neutron
105 documentation for details. Defaults to mapping br-ex - the external
106 bridge on hosts - to a physical name 'datacentre' which can be used
107 to create provider networks (and we use this for the default floating
108 network) - if changing this either use different post-install network
109 scripts or be sure to keep 'datacentre' as a mapping network name.
111 default: "datacentre:br-ex"
112 NeutronControlPlaneID:
115 description: Neutron ID for ctlplane network.
116 NeutronEnableTunnelling:
121 default: 'datacentre'
123 If set, flat networks to configure in neutron plugins. Defaults to
124 'datacentre' to permit external network creation.
127 description: The tenant network type for Neutron, either gre or vxlan.
131 description: The password for the neutron service account, used by neutron agents.
134 NeutronPublicInterface:
136 description: What interface to bridge onto br-ex for network nodes.
138 NeutronPublicInterfaceTag:
141 VLAN tag for creating a public VLAN. The tag will be used to
142 create an access port on the exterior bridge for each control plane node,
143 and that port will be given the IP address returned by neutron from the
144 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
145 overcloud.yaml to include the deployment of VLAN ports to the control
148 NeutronComputeAgentMode:
150 description: Agent mode for the neutron-l3-agent on the compute hosts
154 description: Agent mode for the neutron-l3-agent on the controller hosts
158 description: Whether to configure Neutron Distributed Virtual Routers
160 NeutronMetadataProxySharedSecret:
162 description: Shared secret to prevent spoofing
168 The tunnel types for the Neutron tenant network. To specify multiple
169 values, use a comma separated string, like so: 'gre,vxlan'
171 NeutronTunnelIdRanges:
173 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
174 of GRE tunnel IDs that are available for tenant network allocation
175 default: ["1:1000", ]
176 type: comma_delimited_list
179 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
180 of VXLAN VNI IDs that are available for tenant network allocation
181 default: ["1:1000", ]
182 type: comma_delimited_list
186 The core plugin for Neutron. The value should be the entrypoint to be loaded
187 from neutron.core_plugins namespace.
189 NeutronServicePlugins:
192 Comma-separated list of service plugin entrypoints to be loaded from the
193 neutron.service_plugins namespace.
194 type: comma_delimited_list
196 default: "vxlan,vlan,flat,gre"
198 Comma-separated list of network type driver entrypoints to be loaded.
199 type: comma_delimited_list
200 NeutronMechanismDrivers:
201 default: 'openvswitch'
203 The mechanism drivers for the Neutron tenant network. To specify multiple
204 values, use a comma separated string, like so: 'openvswitch,l2_population'
206 NeutronAllowL3AgentFailover:
208 description: Allow automatic l3-agent failover
212 description: Whether to enable l3-agent HA
214 NeutronDhcpAgentsPerNetwork:
217 description: The number of neutron dhcp agents to schedule per network
220 description: The password for the nova service account, used by nova-api.
225 description: Comma-separated list of ntp servers
226 type: comma_delimited_list
229 description: Should MongoDb journaling be disabled
231 PublicVirtualFixedIPs:
234 Control the IP allocation for the PublicVirtualInterface port. E.g.
235 [{'ip_address':'1.2.3.4'}]
240 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
241 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
244 description: The username for RabbitMQ
248 description: The password for RabbitMQ
254 Rabbit client subscriber parameter to specify
255 an SSL connection to the RabbitMQ host.
259 description: Set rabbit subscriber port, change this if using SSL
261 # We need to set this as string because 'unlimited' is a valid setting
264 description: Configures RabbitMQ FD limit
266 SnmpdReadonlyUserName:
267 default: ro_snmp_user
268 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
270 SnmpdReadonlyUserPassword:
272 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
276 # Controller-specific params
279 description: The keystone auth secret.
282 CinderEnableRbdBackend:
284 description: Whether to enable or not the Rbd backend for Cinder
286 CinderLVMLoopDeviceSize:
288 description: The size of the loopback file used by the cinder LVM driver.
290 CinderNfsMountOptions:
293 Mount options for NFS mounts used by Cinder NFS backend. Effective
294 when CinderEnableNfsBackend is true.
299 NFS servers used by Cinder NFS backend. Effective when
300 CinderEnableNfsBackend is true.
301 type: comma_delimited_list
304 description: The password for the cinder service account, used by cinder-api.
309 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
705 # If you want to remove a specific node from a resource group, you can pass
706 # the node name or id as a <Group>RemovalPolicies parameter, for example:
707 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
708 ControllerRemovalPolicies:
712 List of resources to be removed from ControllerResourceGroup when
713 doing an update which requires removal of specific resources.
714 ComputeRemovalPolicies:
718 List of resources to be removed from ComputeResourceGroup when
719 doing an update which requires removal of specific resources.
720 BlockStorageRemovalPolicies:
724 List of resources to be removed from BlockStorageResourceGroup when
725 doing an update which requires removal of specific resources.
726 ObjectStorageRemovalPolicies:
730 List of resources to be removed from ObjectStorageResourceGroup when
731 doing an update which requires removal of specific resources.
732 CephStorageRemovalPolicies:
736 List of resources to be removed from CephStorageResourceGroup when
737 doing an update which requires removal of specific resources.
742 HeatAuthEncryptionKey:
743 type: OS::Heat::RandomString
746 type: OS::Heat::RandomString
751 type: OS::Heat::RandomString
756 type: OS::Heat::ResourceGroup
759 count: {get_param: ControllerCount}
760 removal_policies: {get_param: ControllerRemovalPolicies}
762 type: OS::TripleO::Controller
764 AdminPassword: {get_param: AdminPassword}
765 AdminToken: {get_param: AdminToken}
766 CeilometerBackend: {get_param: CeilometerBackend}
767 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
768 CeilometerPassword: {get_param: CeilometerPassword}
769 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
770 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
771 CinderNfsServers: {get_param: CinderNfsServers}
772 CinderPassword: {get_param: CinderPassword}
773 CinderISCSIHelper: {get_param: CinderISCSIHelper}
774 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
775 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
776 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
777 CloudName: {get_param: CloudName}
778 ControlVirtualInterface: {get_param: ControlVirtualInterface}
779 ControllerExtraConfig: {get_param: controllerExtraConfig}
780 Debug: {get_param: Debug}
781 EnableFencing: {get_param: EnableFencing}
782 EnableGalera: {get_param: EnableGalera}
783 EnableCephStorage: {get_param: ControllerEnableCephStorage}
784 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
785 ExtraConfig: {get_param: ExtraConfig}
786 FencingConfig: {get_param: FencingConfig}
787 Flavor: {get_param: OvercloudControlFlavor}
788 GlancePort: {get_param: GlancePort}
789 GlanceProtocol: {get_param: GlanceProtocol}
790 GlancePassword: {get_param: GlancePassword}
791 GlanceBackend: {get_param: GlanceBackend}
792 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
793 GlanceLogFile: {get_param: GlanceLogFile}
794 HeatPassword: {get_param: HeatPassword}
795 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
796 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
797 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
798 HorizonSecret: {get_resource: HorizonSecret}
799 Image: {get_param: controllerImage}
800 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
801 KeyName: {get_param: KeyName}
802 KeystoneCACertificate: {get_param: KeystoneCACertificate}
803 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
804 KeystoneSigningKey: {get_param: KeystoneSigningKey}
805 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
806 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
807 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
808 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
809 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
810 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
811 MysqlMaxConnections: {get_param: MysqlMaxConnections}
812 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
813 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
814 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
815 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
816 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
817 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
818 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
819 NeutronPublicInterface: {get_param: NeutronPublicInterface}
820 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
821 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
822 NeutronPassword: {get_param: NeutronPassword}
823 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
824 NeutronDVR: {get_param: NeutronDVR}
825 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
826 NeutronAgentMode: {get_param: NeutronAgentMode}
827 NeutronCorePlugin: {get_param: NeutronCorePlugin}
828 NeutronServicePlugins: {get_param: NeutronServicePlugins}
829 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
830 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
831 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
832 NeutronL3HA: {get_param: NeutronL3HA}
833 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
834 NeutronNetworkType: {get_param: NeutronNetworkType}
835 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
836 NovaPassword: {get_param: NovaPassword}
837 NtpServer: {get_param: NtpServer}
838 MongoDbNoJournal: {get_param: MongoDbNoJournal}
839 PcsdPassword: {get_resource: PcsdPassword}
840 PublicVirtualInterface: {get_param: PublicVirtualInterface}
841 RabbitPassword: {get_param: RabbitPassword}
842 RabbitUserName: {get_param: RabbitUserName}
843 RabbitCookie: {get_attr: [RabbitCookie, value]}
844 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
845 RabbitClientPort: {get_param: RabbitClientPort}
846 RabbitFDLimit: {get_param: RabbitFDLimit}
847 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
848 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
849 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
850 SSLCertificate: {get_param: SSLCertificate}
851 SSLKey: {get_param: SSLKey}
852 SSLCACertificate: {get_param: SSLCACertificate}
853 SwiftHashSuffix: {get_param: SwiftHashSuffix}
854 SwiftMountCheck: {get_param: SwiftMountCheck}
855 SwiftMinPartHours: {get_param: SwiftMinPartHours}
856 SwiftPartPower: {get_param: SwiftPartPower}
857 SwiftPassword: {get_param: SwiftPassword}
858 SwiftReplicas: { get_param: SwiftReplicas}
859 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
860 PublicVirtualIP: {get_attr: [PublicVirtualIP, ip_address]}
861 ServiceNetMap: {get_param: ServiceNetMap}
862 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
863 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
864 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
865 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
866 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
867 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
868 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
869 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
870 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
871 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
872 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
873 UpdateIdentifier: {get_param: UpdateIdentifier}
876 template: {get_param: ControllerHostnameFormat}
878 '%stackname%': {get_param: 'OS::stack_name'}
881 type: OS::Heat::ResourceGroup
884 count: {get_param: ComputeCount}
885 removal_policies: {get_param: ComputeRemovalPolicies}
887 type: OS::TripleO::Compute
889 AdminPassword: {get_param: AdminPassword}
890 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
891 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
892 CeilometerPassword: {get_param: CeilometerPassword}
893 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
894 Debug: {get_param: Debug}
895 ExtraConfig: {get_param: ExtraConfig}
896 Flavor: {get_param: OvercloudComputeFlavor}
897 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
898 GlancePort: {get_param: GlancePort}
899 GlanceProtocol: {get_param: GlanceProtocol}
900 Image: {get_param: NovaImage}
901 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
902 KeyName: {get_param: KeyName}
903 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
904 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
905 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
906 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
907 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
908 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
909 NeutronNetworkType: {get_param: NeutronNetworkType}
910 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
911 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
912 NeutronPassword: {get_param: NeutronPassword}
913 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
914 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
915 NeutronDVR: {get_param: NeutronDVR}
916 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
917 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
918 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
919 NeutronCorePlugin: {get_param: NeutronCorePlugin}
920 NeutronServicePlugins: {get_param: NeutronServicePlugins}
921 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
922 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
923 # L3 HA and Failover is not relevant for Computes, should be removed
924 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
925 NeutronL3HA: {get_param: NeutronL3HA}
926 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
927 NovaComputeDriver: {get_param: NovaComputeDriver}
928 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
929 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
930 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
931 NovaPublicIP: {get_attr: [PublicVirtualIP, ip_address]}
932 NovaPassword: {get_param: NovaPassword}
933 NtpServer: {get_param: NtpServer}
934 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
935 RabbitPassword: {get_param: RabbitPassword}
936 RabbitUserName: {get_param: RabbitUserName}
937 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
938 RabbitClientPort: {get_param: RabbitClientPort}
939 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
940 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
941 ServiceNetMap: {get_param: ServiceNetMap}
942 UpdateIdentifier: {get_param: UpdateIdentifier}
945 template: {get_param: ComputeHostnameFormat}
947 '%stackname%': {get_param: 'OS::stack_name'}
950 type: OS::Heat::ResourceGroup
953 count: {get_param: BlockStorageCount}
954 removal_policies: {get_param: BlockStorageRemovalPolicies}
956 type: OS::TripleO::BlockStorage
958 Debug: {get_param: Debug}
959 Image: {get_param: BlockStorageImage}
960 CinderISCSIHelper: {get_param: CinderISCSIHelper}
961 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
962 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
963 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
964 CinderPassword: {get_param: CinderPassword}
965 KeyName: {get_param: KeyName}
966 Flavor: {get_param: OvercloudBlockStorageFlavor}
967 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
968 GlancePort: {get_param: GlancePort}
969 GlanceProtocol: {get_param: GlanceProtocol}
970 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
971 RabbitPassword: {get_param: RabbitPassword}
972 RabbitUserName: {get_param: RabbitUserName}
973 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
974 RabbitClientPort: {get_param: RabbitClientPort}
975 NtpServer: {get_param: NtpServer}
976 UpdateIdentifier: {get_param: UpdateIdentifier}
979 template: {get_param: BlockStorageHostnameFormat}
981 '%stackname%': {get_param: 'OS::stack_name'}
982 ServiceNetMap: {get_param: ServiceNetMap}
983 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
984 ExtraConfig: {get_param: ExtraConfig}
985 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
988 type: OS::Heat::ResourceGroup
991 count: {get_param: ObjectStorageCount}
992 removal_policies: {get_param: ObjectStorageRemovalPolicies}
994 type: OS::TripleO::ObjectStorage
996 KeyName: {get_param: KeyName}
997 Flavor: {get_param: OvercloudSwiftStorageFlavor}
998 HashSuffix: {get_param: SwiftHashSuffix}
999 MountCheck: {get_param: SwiftMountCheck}
1000 MinPartHours: {get_param: SwiftMinPartHours}
1001 PartPower: {get_param: SwiftPartPower}
1002 Image: {get_param: SwiftStorageImage}
1003 Replicas: { get_param: SwiftReplicas}
1004 NtpServer: {get_param: NtpServer}
1005 UpdateIdentifier: {get_param: UpdateIdentifier}
1006 ServiceNetMap: {get_param: ServiceNetMap}
1009 template: {get_param: ObjectStorageHostnameFormat}
1011 '%stackname%': {get_param: 'OS::stack_name'}
1012 ExtraConfig: {get_param: ExtraConfig}
1013 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1016 type: OS::Heat::ResourceGroup
1017 depends_on: Networks
1019 count: {get_param: CephStorageCount}
1020 removal_policies: {get_param: CephStorageRemovalPolicies}
1022 type: OS::TripleO::CephStorage
1024 Image: {get_param: CephStorageImage}
1025 KeyName: {get_param: KeyName}
1026 Flavor: {get_param: OvercloudCephStorageFlavor}
1027 NtpServer: {get_param: NtpServer}
1028 ServiceNetMap: {get_param: ServiceNetMap}
1029 UpdateIdentifier: {get_param: UpdateIdentifier}
1032 template: {get_param: CephStorageHostnameFormat}
1034 '%stackname%': {get_param: 'OS::stack_name'}
1035 ExtraConfig: {get_param: ExtraConfig}
1036 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1038 ControllerIpListMap:
1039 type: OS::TripleO::Network::Ports::NetIpListMap
1041 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1042 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1043 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1044 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1045 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1046 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1049 type: OS::TripleO::AllNodes::SoftwareConfig
1051 compute_hosts: {get_attr: [Compute, hosts_entry]}
1052 controller_hosts: {get_attr: [Controller, hosts_entry]}
1053 controller_ips: {get_attr: [Controller, ip_address]}
1054 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1055 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1056 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1057 controller_names: {get_attr: [Controller, hostname]}
1058 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1059 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1060 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1061 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1062 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1063 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1064 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1065 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1066 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1067 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1068 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1069 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1070 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1071 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1072 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1073 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1074 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1077 type: OS::Heat::RandomString
1081 MysqlClusterUniquePart:
1082 type: OS::Heat::RandomString
1087 type: OS::Heat::RandomString
1090 salt: {get_param: RabbitCookieSalt}
1092 # creates the network architecture
1094 type: OS::TripleO::Network
1097 type: OS::Neutron::Port
1098 depends_on: Networks
1100 name: control_virtual_ip
1101 network_id: {get_param: NeutronControlPlaneID}
1102 fixed_ips: {get_param: ControlFixedIPs}
1103 replacement_policy: AUTO
1106 depends_on: Networks
1107 type: OS::TripleO::Controller::Ports::RedisVipPort
1109 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1110 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1111 PortName: redis_virtual_ip
1112 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1114 # The public VIP is on the External net, falls back to ctlplane
1116 depends_on: Networks
1117 type: OS::TripleO::Controller::Ports::ExternalPort
1119 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1120 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1121 PortName: public_virtual_ip
1122 FixedIPs: {get_param: PublicVirtualFixedIPs}
1124 InternalApiVirtualIP:
1125 depends_on: Networks
1126 type: OS::TripleO::Controller::Ports::InternalApiPort
1128 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1129 PortName: internal_api_virtual_ip
1132 depends_on: Networks
1133 type: OS::TripleO::Controller::Ports::StoragePort
1135 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1136 PortName: storage_virtual_ip
1138 StorageMgmtVirtualIP:
1139 depends_on: Networks
1140 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1142 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1143 PortName: storage_management_virtual_ip
1146 type: OS::TripleO::Network::Ports::NetIpMap
1148 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1149 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1150 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1151 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1152 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1153 # No tenant VIP required
1156 type: OS::TripleO::VipConfig
1159 type: OS::Heat::StructuredDeployments
1161 config: {get_resource: VipConfig}
1162 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1164 # service VIP mappings
1165 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1166 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1167 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1168 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1169 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1170 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1171 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1172 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1173 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1174 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1175 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1176 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1177 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1178 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1179 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1180 # direct configuration of Virtual IPs for each network
1181 control_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1182 public_virtual_ip: {get_attr: [PublicVirtualIP, ip_address]}
1183 internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
1184 storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
1185 storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1187 ControllerBootstrapNodeConfig:
1188 type: OS::TripleO::BootstrapNode::SoftwareConfig
1190 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1191 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1193 ControllerBootstrapNodeDeployment:
1194 type: OS::Heat::StructuredDeployments
1196 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1197 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1199 ControllerSwiftDeployment:
1200 type: OS::Heat::StructuredDeployments
1202 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1203 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1205 ObjectStorageSwiftDeployment:
1206 type: OS::Heat::StructuredDeployments
1208 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1209 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1211 SwiftDevicesAndProxyConfig:
1212 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1214 controller_swift_devices: {get_attr: [Controller, swift_device]}
1215 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1216 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1218 ComputeCephDeployment:
1219 type: OS::Heat::StructuredDeployments
1221 config: {get_attr: [CephClusterConfig, config_id]}
1222 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1224 ControllerCephDeployment:
1225 type: OS::Heat::StructuredDeployments
1227 config: {get_attr: [CephClusterConfig, config_id]}
1228 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1230 CephStorageCephDeployment:
1231 type: OS::Heat::StructuredDeployments
1233 config: {get_attr: [CephClusterConfig, config_id]}
1234 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1237 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1239 ceph_storage_count: {get_param: CephStorageCount}
1240 ceph_fsid: {get_param: CephClusterFSID}
1241 ceph_mon_key: {get_param: CephMonKey}
1242 ceph_admin_key: {get_param: CephAdminKey}
1243 ceph_client_key: {get_param: CephClientKey}
1244 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1245 ceph_mon_names: {get_attr: [Controller, hostname]}
1246 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1248 ControllerClusterConfig:
1249 type: OS::Heat::StructuredConfig
1251 group: os-apply-config
1254 nodes: {get_attr: [Controller, corosync_node]}
1258 nodes: {get_attr: [Controller, hostname]}
1260 nodes: {get_attr: [Controller, corosync_node]}
1262 nodes: {get_attr: [Controller, corosync_node]}
1264 ControllerClusterDeployment:
1265 type: OS::Heat::StructuredDeployments
1267 config: {get_resource: ControllerClusterConfig}
1268 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1270 ControllerAllNodesDeployment:
1271 type: OS::Heat::StructuredDeployments
1273 config: {get_attr: [allNodesConfig, config_id]}
1274 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1276 ComputeAllNodesDeployment:
1277 type: OS::Heat::StructuredDeployments
1279 config: {get_attr: [allNodesConfig, config_id]}
1280 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1282 BlockStorageAllNodesDeployment:
1283 type: OS::Heat::StructuredDeployments
1285 config: {get_attr: [allNodesConfig, config_id]}
1286 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1288 ObjectStorageAllNodesDeployment:
1289 type: OS::Heat::StructuredDeployments
1291 config: {get_attr: [allNodesConfig, config_id]}
1292 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1294 CephStorageAllNodesDeployment:
1295 type: OS::Heat::StructuredDeployments
1297 config: {get_attr: [allNodesConfig, config_id]}
1298 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1300 # All Nodes Validations
1301 AllNodesValidationConfig:
1302 type: OS::TripleO::AllNodes::Validation
1307 - - {get_attr: [Controller, resource.0.external_ip_address]}
1308 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1309 - {get_attr: [Controller, resource.0.storage_ip_address]}
1310 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1311 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1313 ControllerAllNodesValidationDeployment:
1314 type: OS::Heat::StructuredDeployments
1315 depends_on: ControllerAllNodesDeployment
1317 config: {get_resource: AllNodesValidationConfig}
1318 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1320 ComputeAllNodesValidationDeployment:
1321 type: OS::Heat::StructuredDeployments
1322 depends_on: ComputeAllNodesDeployment
1324 config: {get_resource: AllNodesValidationConfig}
1325 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1327 BlockStorageAllNodesValidationDeployment:
1328 type: OS::Heat::StructuredDeployments
1329 depends_on: BlockStorageAllNodesDeployment
1331 config: {get_resource: AllNodesValidationConfig}
1332 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1334 ObjectStorageAllNodesValidationDeployment:
1335 type: OS::Heat::StructuredDeployments
1336 depends_on: ObjectStorageAllNodesDeployment
1338 config: {get_resource: AllNodesValidationConfig}
1339 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1341 CephStorageAllNodesValidationDeployment:
1342 type: OS::Heat::StructuredDeployments
1343 depends_on: CephStorageAllNodesDeployment
1345 config: {get_resource: AllNodesValidationConfig}
1346 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1348 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1349 # the nested template may configure each role differently (or not at all)
1350 AllNodesExtraConfig:
1351 type: OS::TripleO::AllNodesExtraConfig
1353 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1354 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1355 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1356 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1357 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1359 # Nested stack deployment runs after all other controller deployments
1360 ControllerNodesPostDeployment:
1361 type: OS::TripleO::ControllerPostDeployment
1362 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1364 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1365 NodeConfigIdentifiers:
1366 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1367 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1369 ComputeNodesPostDeployment:
1370 type: OS::TripleO::ComputePostDeployment
1371 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1373 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1374 NodeConfigIdentifiers:
1375 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1376 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1378 ObjectStorageNodesPostDeployment:
1379 type: OS::TripleO::ObjectStoragePostDeployment
1380 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1382 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1383 NodeConfigIdentifiers:
1384 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1385 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1387 BlockStorageNodesPostDeployment:
1388 type: OS::TripleO::BlockStoragePostDeployment
1389 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1391 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1392 NodeConfigIdentifiers:
1393 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1394 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1396 CephStorageNodesPostDeployment:
1397 type: OS::TripleO::CephStoragePostDeployment
1398 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1400 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1401 NodeConfigIdentifiers:
1402 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1403 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1407 description: URL for the Overcloud Keystone service
1412 - {get_attr: [PublicVirtualIP, ip_address]}
1415 description: Keystone Admin VIP endpoint
1416 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1418 description: Controller VIP for public API endpoints
1419 value: {get_attr: [PublicVirtualIP, ip_address]}
1420 CeilometerInternalVip:
1421 description: VIP for Ceilometer API internal endpoint
1422 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1424 description: VIP for Cinder API internal endpoint
1425 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1427 description: VIP for Glance API internal endpoint
1428 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1430 description: VIP for Heat API internal endpoint
1431 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1432 KeystoneInternalVip:
1433 description: VIP for Keystone API internal endpoint
1434 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1436 description: VIP for Neutron API internal endpoint
1437 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1439 description: VIP for Nova API internal endpoint
1440 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1442 description: VIP for Swift Proxy internal endpoint
1443 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}