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.
43 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
45 CinderEnableNfsBackend:
47 description: Whether to enable or not the NFS backend for Cinder
51 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.
56 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
57 CinderEnableIscsiBackend:
59 description: Whether to enable or not the Iscsi backend for Cinder
63 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
67 description: Should be used for arbitrary ips.
71 description: Set to True to enable debugging on all services.
75 description: Glance port.
79 description: Protocol to use when connecting to glance, set to https for SSL.
82 default: 'REBUILD_PRESERVE_EPHEMERAL'
83 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
87 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
90 - custom_constraint: nova.keypair
91 NeutronExternalNetworkBridge:
92 description: Name of bridge used for external network traffic.
95 NeutronBridgeMappings:
97 The OVS logical->physical bridge mappings to use. See the Neutron
98 documentation for details. Defaults to mapping br-ex - the external
99 bridge on hosts - to a physical name 'datacentre' which can be used
100 to create provider networks (and we use this for the default floating
101 network) - if changing this either use different post-install network
102 scripts or be sure to keep 'datacentre' as a mapping network name.
104 default: "datacentre:br-ex"
105 NeutronControlPlaneID:
108 description: Neutron ID for ctlplane network.
109 NeutronEnableTunnelling:
114 default: 'datacentre'
116 If set, flat networks to configure in neutron plugins. Defaults to
117 'datacentre' to permit external network creation.
120 description: The tenant network type for Neutron, either gre or vxlan.
124 description: The password for the neutron service account, used by neutron agents.
127 NeutronPublicInterface:
129 description: What interface to bridge onto br-ex for network nodes.
131 NeutronPublicInterfaceTag:
134 VLAN tag for creating a public VLAN. The tag will be used to
135 create an access port on the exterior bridge for each control plane node,
136 and that port will be given the IP address returned by neutron from the
137 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
138 overcloud.yaml to include the deployment of VLAN ports to the control
141 NeutronComputeAgentMode:
143 description: Agent mode for the neutron-l3-agent on the compute hosts
147 description: Agent mode for the neutron-l3-agent on the controller hosts
151 description: Whether to configure Neutron Distributed Virtual Routers
153 NeutronMetadataProxySharedSecret:
155 description: Shared secret to prevent spoofing
160 The tunnel types for the Neutron tenant network. To specify multiple
161 values, use a comma separated string, like so: 'gre,vxlan'
163 NeutronTunnelIdRanges:
165 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
166 of GRE tunnel IDs that are available for tenant network allocation
167 default: ["1:1000", ]
168 type: comma_delimited_list
171 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
172 of VXLAN VNI IDs that are available for tenant network allocation
173 default: ["1:1000", ]
174 type: comma_delimited_list
178 The core plugin for Neutron. The value should be the entrypoint to be loaded
179 from neutron.core_plugins namespace.
181 NeutronServicePlugins:
184 Comma-separated list of service plugin entrypoints to be loaded from the
185 neutron.service_plugins namespace.
186 type: comma_delimited_list
188 default: "vxlan,vlan,flat,gre"
190 Comma-separated list of network type driver entrypoints to be loaded.
191 type: comma_delimited_list
192 NeutronMechanismDrivers:
193 default: 'openvswitch'
195 The mechanism drivers for the Neutron tenant network. To specify multiple
196 values, use a comma separated string, like so: 'openvswitch,l2_population'
198 NeutronAllowL3AgentFailover:
200 description: Allow automatic l3-agent failover
204 description: Whether to enable l3-agent HA
206 NeutronDhcpAgentsPerNetwork:
209 description: The number of neutron dhcp agents to schedule per network
212 description: The password for the nova service account, used by nova-api.
220 description: Should MongoDb journaling be disabled
222 PublicVirtualFixedIPs:
225 Control the IP allocation for the PublicVirtualInterface port. E.g.
226 [{'ip_address':'1.2.3.4'}]
231 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
232 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
235 description: The username for RabbitMQ
239 description: The password for RabbitMQ
245 Rabbit client subscriber parameter to specify
246 an SSL connection to the RabbitMQ host.
250 description: Set rabbit subscriber port, change this if using SSL
252 SnmpdReadonlyUserName:
253 default: ro_snmp_user
254 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
256 SnmpdReadonlyUserPassword:
258 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
262 # Controller-specific params
265 description: The keystone auth secret.
268 CinderEnableRbdBackend:
270 description: Whether to enable or not the Rbd backend for Cinder
272 CinderLVMLoopDeviceSize:
274 description: The size of the loopback file used by the cinder LVM driver.
276 CinderNfsMountOptions:
279 Mount options for NFS mounts used by Cinder NFS backend. Effective
280 when CinderEnableNfsBackend is true.
285 NFS servers used by Cinder NFS backend. Effective when
286 CinderEnableNfsBackend is true.
287 type: comma_delimited_list
290 description: The password for the cinder service account, used by cinder-api.
295 description: The iSCSI helper to use with cinder.
300 controllerExtraConfig:
303 Controller specific configuration to inject into the cluster. Same
304 structure as ExtraConfig.
308 default: overcloud-control
310 - custom_constraint: glance.image
311 OvercloudControlFlavor:
312 description: Flavor for control nodes to request when deploying.
315 - custom_constraint: nova.flavor
316 ControlVirtualInterface:
318 description: Interface where virtual ip will be assigned.
322 description: Whether to enable fencing in Pacemaker or not.
326 description: Whether to use Galera instead of regular MariaDB.
328 ControllerEnableCephStorage:
330 description: Whether to deploy Ceph Storage (OSD) on the Controller
332 ControllerEnableSwiftStorage:
334 description: Whether to enable Swift Storage on the Controller
339 Additional configuration to inject into the cluster. The format required
340 may be implementation specific, e.g puppet hieradata. Any role specific
341 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
346 Pacemaker fencing configuration. The JSON should have
347 the following structure:
351 "agent": "AGENT_NAME",
352 "host_mac": "HOST_MAC_ADDRESS",
353 "params": {"PARAM_NAME": "PARAM_VALUE"}
361 "agent": "fence_xvm",
362 "host_mac": "52:54:00:aa:bb:cc",
364 "multicast_address": "225.0.0.12",
365 "port": "baremetal_0",
367 "manage_key_file": true,
368 "key_file": "/etc/fence_xvm.key",
369 "key_file_password": "abcdef"
376 description: The filepath of the file to use for logging messages from Glance.
379 GlanceNotifierStrategy:
380 description: Strategy to use for Glance notification queue
385 description: The password for the glance service account, used by the glance services.
390 description: The short name of the Glance backend to use. Should be one
391 of swift, rbd or file
394 - allowed_values: ['swift', 'file', 'rbd']
397 description: The password for the Heat service account, used by the Heat services.
400 HeatStackDomainAdminPassword:
401 description: Password for heat_domain_admin user.
405 KeystoneCACertificate:
407 description: Keystone self-signed certificate authority certificate.
409 KeystoneSigningCertificate:
411 description: Keystone certificate for verifying token validity.
415 description: Keystone key for signing tokens.
418 KeystoneSSLCertificate:
420 description: Keystone certificate for verifying token validity.
422 KeystoneSSLCertificateKey:
424 description: Keystone key for signing tokens.
427 KeystoneNotificationDriver:
428 description: Comma-separated list of Oslo notification drivers used by Keystone
429 default: ['messaging']
430 type: comma_delimited_list
431 KeystoneNotificationFormat:
432 description: The Keystone notification format
436 - allowed_values: [ 'basic', 'cadf' ]
437 MysqlInnodbBufferPoolSize:
439 Specifies the size of the buffer pool in megabytes. Setting to
440 zero should be interpreted as "no value" and will defer to the
445 description: Configures MySQL max_connections config setting
448 NeutronDnsmasqOptions:
449 default: 'dhcp-option-force=26,1400'
450 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
452 NeutronPublicInterfaceDefaultRoute:
454 description: A custom default route for the NeutronPublicInterface.
456 NeutronPublicInterfaceIP:
458 description: A custom IP address to put onto the NeutronPublicInterface.
460 NeutronPublicInterfaceRawDevice:
462 description: If set, the public interface is a vlan with this device as the raw device.
464 PublicVirtualInterface:
467 Specifies the interface where the public-facing virtual ip will be assigned.
468 This should be int_public when a VLAN is being used.
472 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
477 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
482 description: If set, the contents of an SSL certificate authority file.
486 description: A random string to be used as a salt when hashing to determine mappings in the ring.
491 description: The password for the swift service account, used by the swift proxy services.
496 description: Value of mount_check in Swift account/container/object -server.conf
501 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
504 description: Partition Power to use when building Swift rings
509 description: How many replicas to use in the swift rings.
511 # Compute-specific params
512 CeilometerComputeAgent:
513 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
517 - allowed_values: ['', Present]
521 HypervisorNeutronPhysicalBridge:
524 An OVS bridge to create on each hypervisor. This defaults to br-ex the
525 same as the control plane nodes, as we have a uniform configuration of
526 the openvswitch agent. Typically should not need to be changed.
528 HypervisorNeutronPublicInterface:
530 description: What interface to add to the HypervisorNeutronPhysicalBridge.
532 NeutronNetworkVLANRanges:
533 default: 'datacentre'
535 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
536 Neutron documentation for permitted values. Defaults to permitting any
537 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
538 type: comma_delimited_list
541 default: libvirt.LibvirtDriver
542 NovaComputeExtraConfig:
545 NovaCompute specific configuration to inject into the cluster. Same
546 structure as ExtraConfig.
548 NovaComputeLibvirtType:
551 NovaEnableRbdBackend:
553 description: Whether to enable or not the Rbd backend for Nova
557 default: overcloud-compute
559 - custom_constraint: glance.image
560 OvercloudComputeFlavor:
561 description: Use this flavor
564 - custom_constraint: nova.flavor
567 NeutronTenantNetwork: tenant
568 CeilometerApiNetwork: internal_api
569 MongoDbNetwork: internal_api
570 CinderApiNetwork: internal_api
571 CinderIscsiNetwork: storage
572 GlanceApiNetwork: storage
573 GlanceRegistryNetwork: internal_api
574 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
575 KeystonePublicApiNetwork: internal_api
576 NeutronApiNetwork: internal_api
577 HeatApiNetwork: internal_api
578 NovaApiNetwork: internal_api
579 NovaMetadataNetwork: internal_api
580 NovaVncProxyNetwork: internal_api
581 SwiftMgmtNetwork: storage_mgmt
582 SwiftProxyNetwork: storage
583 HorizonNetwork: internal_api
584 MemcachedNetwork: internal_api
585 RabbitMqNetwork: internal_api
586 RedisNetwork: internal_api
587 MysqlNetwork: internal_api
588 CephClusterNetwork: storage_mgmt
589 CephPublicNetwork: storage
590 ControllerHostnameResolveNetwork: internal_api
591 ComputeHostnameResolveNetwork: internal_api
592 BlockStorageHostnameResolveNetwork: internal_api
593 ObjectStorageHostnameResolveNetwork: internal_api
594 CephStorageHostnameResolveNetwork: storage
595 description: Mapping of service_name -> network name. Typically set
596 via parameter_defaults in the resource registry.
599 # Block storage specific parameters
604 default: overcloud-cinder-volume
606 OvercloudBlockStorageFlavor:
607 description: Flavor for block storage nodes to request when deploying.
610 - custom_constraint: nova.flavor
611 BlockStorageExtraConfig:
614 BlockStorage specific configuration to inject into the cluster. Same
615 structure as ExtraConfig.
618 # Object storage specific parameters
622 OvercloudSwiftStorageFlavor:
623 description: Flavor for Swift storage nodes to request when deploying.
626 - custom_constraint: nova.flavor
628 default: overcloud-swift-storage
630 ObjectStorageExtraConfig:
633 ObjectStorage specific configuration to inject into the cluster. Same
634 structure as ExtraConfig.
638 # Ceph storage specific parameters
643 default: overcloud-ceph-storage
645 OvercloudCephStorageFlavor:
647 description: Flavor for Ceph storage nodes to request when deploying.
650 - custom_constraint: nova.flavor
651 CephStorageExtraConfig:
654 CephStorage specific configuration to inject into the cluster. Same
655 structure as ExtraConfig.
658 # Hostname format for each role
659 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
660 # and %stackname% is replaced with OS::stack_name in the template below.
661 # If you want to use the heat generated names, pass '' (empty string).
662 ControllerHostnameFormat:
664 description: Format for Controller node hostnames
665 default: '%stackname%-controller-%index%'
666 ComputeHostnameFormat:
668 description: Format for Compute node hostnames
669 default: '%stackname%-novacompute-%index%'
670 BlockStorageHostnameFormat:
672 description: Format for BlockStorage node hostnames
673 default: '%stackname%-blockstorage-%index%'
674 ObjectStorageHostnameFormat:
676 description: Format for SwiftStorage node hostnames
677 default: '%stackname%-objectstorage-%index%'
678 CephStorageHostnameFormat:
680 description: Format for CephStorage node hostnames
681 default: '%stackname%-cephstorage-%index%'
683 # Identifiers to trigger tasks on nodes
688 Setting to a previously unused value during stack-update will trigger
689 package update on all nodes
691 # If you want to remove a specific node from a resource group, you can pass
692 # the node name or id as a <Group>RemovalPolicies parameter, for example:
693 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
694 ControllerRemovalPolicies:
698 List of resources to be removed from ControllerResourceGroup when
699 doing an update which requires removal of specific resources.
700 ComputeRemovalPolicies:
704 List of resources to be removed from ComputeResourceGroup when
705 doing an update which requires removal of specific resources.
706 BlockStorageRemovalPolicies:
710 List of resources to be removed from BlockStorageResourceGroup when
711 doing an update which requires removal of specific resources.
712 ObjectStorageRemovalPolicies:
716 List of resources to be removed from ObjectStorageResourceGroup when
717 doing an update which requires removal of specific resources.
718 CephStorageRemovalPolicies:
722 List of resources to be removed from CephStorageResourceGroup when
723 doing an update which requires removal of specific resources.
728 HeatAuthEncryptionKey:
729 type: OS::Heat::RandomString
732 type: OS::Heat::RandomString
737 type: OS::Heat::RandomString
742 type: OS::Heat::ResourceGroup
745 count: {get_param: ControllerCount}
746 removal_policies: {get_param: ControllerRemovalPolicies}
748 type: OS::TripleO::Controller
750 AdminPassword: {get_param: AdminPassword}
751 AdminToken: {get_param: AdminToken}
752 CeilometerBackend: {get_param: CeilometerBackend}
753 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
754 CeilometerPassword: {get_param: CeilometerPassword}
755 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
756 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
757 CinderNfsServers: {get_param: CinderNfsServers}
758 CinderPassword: {get_param: CinderPassword}
759 CinderISCSIHelper: {get_param: CinderISCSIHelper}
760 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
761 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
762 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
763 CloudName: {get_param: CloudName}
764 ControlVirtualInterface: {get_param: ControlVirtualInterface}
765 ControllerExtraConfig: {get_param: controllerExtraConfig}
766 Debug: {get_param: Debug}
767 EnableFencing: {get_param: EnableFencing}
768 EnableGalera: {get_param: EnableGalera}
769 EnableCephStorage: {get_param: ControllerEnableCephStorage}
770 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
771 ExtraConfig: {get_param: ExtraConfig}
772 FencingConfig: {get_param: FencingConfig}
773 Flavor: {get_param: OvercloudControlFlavor}
774 GlancePort: {get_param: GlancePort}
775 GlanceProtocol: {get_param: GlanceProtocol}
776 GlancePassword: {get_param: GlancePassword}
777 GlanceBackend: {get_param: GlanceBackend}
778 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
779 GlanceLogFile: {get_param: GlanceLogFile}
780 HeatPassword: {get_param: HeatPassword}
781 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
782 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
783 HorizonSecret: {get_resource: HorizonSecret}
784 Image: {get_param: controllerImage}
785 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
786 KeyName: {get_param: KeyName}
787 KeystoneCACertificate: {get_param: KeystoneCACertificate}
788 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
789 KeystoneSigningKey: {get_param: KeystoneSigningKey}
790 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
791 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
792 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
793 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
794 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
795 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
796 MysqlMaxConnections: {get_param: MysqlMaxConnections}
797 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
798 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
799 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
800 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
801 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
802 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
803 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
804 NeutronPublicInterface: {get_param: NeutronPublicInterface}
805 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
806 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
807 NeutronPassword: {get_param: NeutronPassword}
808 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
809 NeutronDVR: {get_param: NeutronDVR}
810 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
811 NeutronAgentMode: {get_param: NeutronAgentMode}
812 NeutronCorePlugin: {get_param: NeutronCorePlugin}
813 NeutronServicePlugins: {get_param: NeutronServicePlugins}
814 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
815 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
816 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
817 NeutronL3HA: {get_param: NeutronL3HA}
818 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
819 NeutronNetworkType: {get_param: NeutronNetworkType}
820 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
821 NovaPassword: {get_param: NovaPassword}
822 NtpServer: {get_param: NtpServer}
823 MongoDbNoJournal: {get_param: MongoDbNoJournal}
824 PcsdPassword: {get_resource: PcsdPassword}
825 PublicVirtualInterface: {get_param: PublicVirtualInterface}
826 RabbitPassword: {get_param: RabbitPassword}
827 RabbitUserName: {get_param: RabbitUserName}
828 RabbitCookie: {get_attr: [RabbitCookie, value]}
829 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
830 RabbitClientPort: {get_param: RabbitClientPort}
831 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
832 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
833 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
834 SSLCertificate: {get_param: SSLCertificate}
835 SSLKey: {get_param: SSLKey}
836 SSLCACertificate: {get_param: SSLCACertificate}
837 SwiftHashSuffix: {get_param: SwiftHashSuffix}
838 SwiftMountCheck: {get_param: SwiftMountCheck}
839 SwiftMinPartHours: {get_param: SwiftMinPartHours}
840 SwiftPartPower: {get_param: SwiftPartPower}
841 SwiftPassword: {get_param: SwiftPassword}
842 SwiftReplicas: { get_param: SwiftReplicas}
843 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
844 PublicVirtualIP: {get_attr: [PublicVirtualIP, ip_address]}
845 ServiceNetMap: {get_param: ServiceNetMap}
846 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
847 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
848 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
849 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
850 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
851 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
852 UpdateIdentifier: {get_param: UpdateIdentifier}
855 template: {get_param: ControllerHostnameFormat}
857 '%stackname%': {get_param: 'OS::stack_name'}
860 type: OS::Heat::ResourceGroup
863 count: {get_param: ComputeCount}
864 removal_policies: {get_param: ComputeRemovalPolicies}
866 type: OS::TripleO::Compute
868 AdminPassword: {get_param: AdminPassword}
869 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
870 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
871 CeilometerPassword: {get_param: CeilometerPassword}
872 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
873 Debug: {get_param: Debug}
874 ExtraConfig: {get_param: ExtraConfig}
875 Flavor: {get_param: OvercloudComputeFlavor}
876 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
877 GlancePort: {get_param: GlancePort}
878 GlanceProtocol: {get_param: GlanceProtocol}
879 Image: {get_param: NovaImage}
880 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
881 KeyName: {get_param: KeyName}
882 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
883 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
884 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
885 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
886 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
887 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
888 NeutronNetworkType: {get_param: NeutronNetworkType}
889 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
890 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
891 NeutronPassword: {get_param: NeutronPassword}
892 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
893 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
894 NeutronDVR: {get_param: NeutronDVR}
895 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
896 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
897 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
898 NeutronCorePlugin: {get_param: NeutronCorePlugin}
899 NeutronServicePlugins: {get_param: NeutronServicePlugins}
900 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
901 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
902 # L3 HA and Failover is not relevant for Computes, should be removed
903 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
904 NeutronL3HA: {get_param: NeutronL3HA}
905 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
906 NovaComputeDriver: {get_param: NovaComputeDriver}
907 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
908 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
909 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
910 NovaPublicIP: {get_attr: [PublicVirtualIP, ip_address]}
911 NovaPassword: {get_param: NovaPassword}
912 NtpServer: {get_param: NtpServer}
913 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
914 RabbitPassword: {get_param: RabbitPassword}
915 RabbitUserName: {get_param: RabbitUserName}
916 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
917 RabbitClientPort: {get_param: RabbitClientPort}
918 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
919 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
920 ServiceNetMap: {get_param: ServiceNetMap}
921 UpdateIdentifier: {get_param: UpdateIdentifier}
924 template: {get_param: ComputeHostnameFormat}
926 '%stackname%': {get_param: 'OS::stack_name'}
929 type: OS::Heat::ResourceGroup
932 count: {get_param: BlockStorageCount}
933 removal_policies: {get_param: BlockStorageRemovalPolicies}
935 type: OS::TripleO::BlockStorage
937 Debug: {get_param: Debug}
938 Image: {get_param: BlockStorageImage}
939 CinderISCSIHelper: {get_param: CinderISCSIHelper}
940 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
941 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
942 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
943 CinderPassword: {get_param: CinderPassword}
944 KeyName: {get_param: KeyName}
945 Flavor: {get_param: OvercloudBlockStorageFlavor}
946 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
947 GlancePort: {get_param: GlancePort}
948 GlanceProtocol: {get_param: GlanceProtocol}
949 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
950 RabbitPassword: {get_param: RabbitPassword}
951 RabbitUserName: {get_param: RabbitUserName}
952 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
953 RabbitClientPort: {get_param: RabbitClientPort}
954 NtpServer: {get_param: NtpServer}
955 UpdateIdentifier: {get_param: UpdateIdentifier}
958 template: {get_param: BlockStorageHostnameFormat}
960 '%stackname%': {get_param: 'OS::stack_name'}
961 ServiceNetMap: {get_param: ServiceNetMap}
962 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
963 ExtraConfig: {get_param: ExtraConfig}
964 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
967 type: OS::Heat::ResourceGroup
970 count: {get_param: ObjectStorageCount}
971 removal_policies: {get_param: ObjectStorageRemovalPolicies}
973 type: OS::TripleO::ObjectStorage
975 KeyName: {get_param: KeyName}
976 Flavor: {get_param: OvercloudSwiftStorageFlavor}
977 HashSuffix: {get_param: SwiftHashSuffix}
978 MountCheck: {get_param: SwiftMountCheck}
979 MinPartHours: {get_param: SwiftMinPartHours}
980 PartPower: {get_param: SwiftPartPower}
981 Image: {get_param: SwiftStorageImage}
982 Replicas: { get_param: SwiftReplicas}
983 NtpServer: {get_param: NtpServer}
984 UpdateIdentifier: {get_param: UpdateIdentifier}
985 ServiceNetMap: {get_param: ServiceNetMap}
988 template: {get_param: ObjectStorageHostnameFormat}
990 '%stackname%': {get_param: 'OS::stack_name'}
991 ExtraConfig: {get_param: ExtraConfig}
992 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
995 type: OS::Heat::ResourceGroup
998 count: {get_param: CephStorageCount}
999 removal_policies: {get_param: CephStorageRemovalPolicies}
1001 type: OS::TripleO::CephStorage
1003 Image: {get_param: CephStorageImage}
1004 KeyName: {get_param: KeyName}
1005 Flavor: {get_param: OvercloudCephStorageFlavor}
1006 NtpServer: {get_param: NtpServer}
1007 ServiceNetMap: {get_param: ServiceNetMap}
1008 UpdateIdentifier: {get_param: UpdateIdentifier}
1011 template: {get_param: CephStorageHostnameFormat}
1013 '%stackname%': {get_param: 'OS::stack_name'}
1014 ExtraConfig: {get_param: ExtraConfig}
1015 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1017 ControllerIpListMap:
1018 type: OS::TripleO::Network::Ports::NetIpListMap
1020 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1021 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1022 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1023 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1024 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1025 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1028 type: OS::TripleO::AllNodes::SoftwareConfig
1030 compute_hosts: {get_attr: [Compute, hosts_entry]}
1031 controller_hosts: {get_attr: [Controller, hosts_entry]}
1032 controller_ips: {get_attr: [Controller, ip_address]}
1033 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1034 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1035 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1036 controller_names: {get_attr: [Controller, hostname]}
1037 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1038 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1039 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1040 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1041 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1042 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1043 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1044 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1045 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1046 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1047 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1048 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1049 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1050 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1051 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1052 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1053 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1056 type: OS::Heat::RandomString
1060 MysqlClusterUniquePart:
1061 type: OS::Heat::RandomString
1066 type: OS::Heat::RandomString
1069 salt: {get_param: RabbitCookieSalt}
1071 # creates the network architecture
1073 type: OS::TripleO::Network
1076 type: OS::Neutron::Port
1077 depends_on: Networks
1079 name: control_virtual_ip
1080 network_id: {get_param: NeutronControlPlaneID}
1081 fixed_ips: {get_param: ControlFixedIPs}
1082 replacement_policy: AUTO
1085 depends_on: Networks
1086 type: OS::TripleO::Controller::Ports::RedisVipPort
1088 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1089 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1090 PortName: redis_virtual_ip
1091 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1093 # The public VIP is on the External net, falls back to ctlplane
1095 depends_on: Networks
1096 type: OS::TripleO::Controller::Ports::ExternalPort
1098 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1099 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1100 PortName: public_virtual_ip
1101 FixedIPs: {get_param: PublicVirtualFixedIPs}
1103 InternalApiVirtualIP:
1104 depends_on: Networks
1105 type: OS::TripleO::Controller::Ports::InternalApiPort
1107 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1108 PortName: internal_api_virtual_ip
1111 depends_on: Networks
1112 type: OS::TripleO::Controller::Ports::StoragePort
1114 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1115 PortName: storage_virtual_ip
1117 StorageMgmtVirtualIP:
1118 depends_on: Networks
1119 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1121 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1122 PortName: storage_management_virtual_ip
1125 type: OS::TripleO::Network::Ports::NetIpMap
1127 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1128 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1129 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1130 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1131 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1132 # No tenant VIP required
1135 type: OS::TripleO::VipConfig
1138 type: OS::Heat::StructuredDeployments
1140 config: {get_resource: VipConfig}
1141 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1143 # service VIP mappings
1144 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1145 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1146 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1147 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1148 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1149 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1150 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1151 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1152 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1153 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1154 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1155 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1156 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1157 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1158 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1159 # direct configuration of Virtual IPs for each network
1160 control_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1161 public_virtual_ip: {get_attr: [PublicVirtualIP, ip_address]}
1162 internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
1163 storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
1164 storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1166 ControllerBootstrapNodeConfig:
1167 type: OS::TripleO::BootstrapNode::SoftwareConfig
1169 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1170 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1172 ControllerBootstrapNodeDeployment:
1173 type: OS::Heat::StructuredDeployments
1175 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1176 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1178 ControllerSwiftDeployment:
1179 type: OS::Heat::StructuredDeployments
1181 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1182 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1184 ObjectStorageSwiftDeployment:
1185 type: OS::Heat::StructuredDeployments
1187 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1188 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1190 SwiftDevicesAndProxyConfig:
1191 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1193 controller_swift_devices: {get_attr: [Controller, swift_device]}
1194 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1195 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1197 ComputeCephDeployment:
1198 type: OS::Heat::StructuredDeployments
1200 config: {get_attr: [CephClusterConfig, config_id]}
1201 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1203 ControllerCephDeployment:
1204 type: OS::Heat::StructuredDeployments
1206 config: {get_attr: [CephClusterConfig, config_id]}
1207 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1209 CephStorageCephDeployment:
1210 type: OS::Heat::StructuredDeployments
1212 config: {get_attr: [CephClusterConfig, config_id]}
1213 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1216 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1218 ceph_storage_count: {get_param: CephStorageCount}
1219 ceph_fsid: {get_param: CephClusterFSID}
1220 ceph_mon_key: {get_param: CephMonKey}
1221 ceph_admin_key: {get_param: CephAdminKey}
1222 ceph_client_key: {get_param: CephClientKey}
1223 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1224 ceph_mon_names: {get_attr: [Controller, hostname]}
1225 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1227 ControllerClusterConfig:
1228 type: OS::Heat::StructuredConfig
1230 group: os-apply-config
1233 nodes: {get_attr: [Controller, corosync_node]}
1237 nodes: {get_attr: [Controller, hostname]}
1239 nodes: {get_attr: [Controller, corosync_node]}
1241 nodes: {get_attr: [Controller, corosync_node]}
1243 ControllerClusterDeployment:
1244 type: OS::Heat::StructuredDeployments
1246 config: {get_resource: ControllerClusterConfig}
1247 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1249 ControllerAllNodesDeployment:
1250 type: OS::Heat::StructuredDeployments
1252 config: {get_attr: [allNodesConfig, config_id]}
1253 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1255 ComputeAllNodesDeployment:
1256 type: OS::Heat::StructuredDeployments
1258 config: {get_attr: [allNodesConfig, config_id]}
1259 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1261 BlockStorageAllNodesDeployment:
1262 type: OS::Heat::StructuredDeployments
1264 config: {get_attr: [allNodesConfig, config_id]}
1265 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1267 ObjectStorageAllNodesDeployment:
1268 type: OS::Heat::StructuredDeployments
1270 config: {get_attr: [allNodesConfig, config_id]}
1271 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1273 CephStorageAllNodesDeployment:
1274 type: OS::Heat::StructuredDeployments
1276 config: {get_attr: [allNodesConfig, config_id]}
1277 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1279 # All Nodes Validations
1280 AllNodesValidationConfig:
1281 type: OS::TripleO::AllNodes::Validation
1286 - - {get_attr: [Controller, resource.0.external_ip_address]}
1287 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1288 - {get_attr: [Controller, resource.0.storage_ip_address]}
1289 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1290 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1292 ControllerAllNodesValidationDeployment:
1293 type: OS::Heat::StructuredDeployments
1294 depends_on: ControllerAllNodesDeployment
1296 config: {get_resource: AllNodesValidationConfig}
1297 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1299 ComputeAllNodesValidationDeployment:
1300 type: OS::Heat::StructuredDeployments
1301 depends_on: ComputeAllNodesDeployment
1303 config: {get_resource: AllNodesValidationConfig}
1304 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1306 BlockStorageAllNodesValidationDeployment:
1307 type: OS::Heat::StructuredDeployments
1308 depends_on: BlockStorageAllNodesDeployment
1310 config: {get_resource: AllNodesValidationConfig}
1311 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1313 ObjectStorageAllNodesValidationDeployment:
1314 type: OS::Heat::StructuredDeployments
1315 depends_on: ObjectStorageAllNodesDeployment
1317 config: {get_resource: AllNodesValidationConfig}
1318 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1320 CephStorageAllNodesValidationDeployment:
1321 type: OS::Heat::StructuredDeployments
1322 depends_on: CephStorageAllNodesDeployment
1324 config: {get_resource: AllNodesValidationConfig}
1325 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1327 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1328 # the nested template may configure each role differently (or not at all)
1329 AllNodesExtraConfig:
1330 type: OS::TripleO::AllNodesExtraConfig
1332 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1333 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1334 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1335 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1336 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1338 # Nested stack deployment runs after all other controller deployments
1339 ControllerNodesPostDeployment:
1340 type: OS::TripleO::ControllerPostDeployment
1341 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1343 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1344 NodeConfigIdentifiers:
1345 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1346 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1348 ComputeNodesPostDeployment:
1349 type: OS::TripleO::ComputePostDeployment
1350 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1352 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1353 NodeConfigIdentifiers:
1354 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1355 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1357 ObjectStorageNodesPostDeployment:
1358 type: OS::TripleO::ObjectStoragePostDeployment
1359 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1361 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1362 NodeConfigIdentifiers:
1363 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1364 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1366 BlockStorageNodesPostDeployment:
1367 type: OS::TripleO::BlockStoragePostDeployment
1368 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1370 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1371 NodeConfigIdentifiers:
1372 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1373 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1375 CephStorageNodesPostDeployment:
1376 type: OS::TripleO::CephStoragePostDeployment
1377 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1379 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1380 NodeConfigIdentifiers:
1381 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1382 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1386 description: URL for the Overcloud Keystone service
1391 - {get_attr: [PublicVirtualIP, ip_address]}
1394 description: Keystone Admin VIP endpoint
1395 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1397 description: Controller VIP for public API endpoints
1398 value: {get_attr: [PublicVirtualIP, ip_address]}
1399 CeilometerInternalVip:
1400 description: VIP for Ceilometer API internal endpoint
1401 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1403 description: VIP for Cinder API internal endpoint
1404 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1406 description: VIP for Glance API internal endpoint
1407 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1409 description: VIP for Heat API internal endpoint
1410 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1411 KeystoneInternalVip:
1412 description: VIP for Keystone API internal endpoint
1413 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1415 description: VIP for Neutron API internal endpoint
1416 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1418 description: VIP for Nova API internal endpoint
1419 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1421 description: VIP for Swift Proxy internal endpoint
1422 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}