1 heat_template_version: 2015-04-30
4 Deploy an OpenStack environment, consisting of several node types (roles),
5 Controller, Compute, BlockStorage, SwiftStorage and CephStorage. The Storage
6 roles enable independent scaling of the storage components, but the minimal
7 deployment is one Controller and one Compute node.
10 # TODO(shadower): we should probably use the parameter groups to put
14 # Common parameters (not specific to a role)
17 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
22 description: The ceilometer backend type.
24 CeilometerMeteringSecret:
26 description: Secret shared by the ceilometer services.
31 description: The password for the ceilometer service account.
34 # This has to be an UUID so for now we generate it outside the template
38 description: The Ceph cluster FSID. Must be a UUID.
41 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
46 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
49 CinderEnableNfsBackend:
51 description: Whether to enable or not the NFS backend for Cinder
55 description: The Ceph client key. Can be created with ceph-authtool --gen-print-key. Currently only used for external Ceph deployments to create the openstack user keyring.
61 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
62 CinderEnableIscsiBackend:
64 description: Whether to enable or not the Iscsi backend for Cinder
66 CinderEnableRbdBackend:
68 description: Whether to enable or not the Rbd backend for Cinder
72 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
76 description: Should be used for arbitrary ips.
80 description: Set to True to enable debugging on all services.
84 description: Syslog address where HAproxy will send its log
88 description: A list of IP/Hostname allowed to connect to horizon
89 type: comma_delimited_list
91 default: 'REBUILD_PRESERVE_EPHEMERAL'
92 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
96 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
99 - custom_constraint: nova.keypair
100 NeutronExternalNetworkBridge:
101 description: Name of bridge used for external network traffic.
104 NeutronBridgeMappings:
106 The OVS logical->physical bridge mappings to use. See the Neutron
107 documentation for details. Defaults to mapping br-ex - the external
108 bridge on hosts - to a physical name 'datacentre' which can be used
109 to create provider networks (and we use this for the default floating
110 network) - if changing this either use different post-install network
111 scripts or be sure to keep 'datacentre' as a mapping network name.
113 default: "datacentre:br-ex"
114 NeutronControlPlaneID:
117 description: Neutron ID or name for ctlplane network.
118 NeutronEnableIsolatedMetadata:
120 description: If True, DHCP provide metadata route to VM.
122 NeutronEnableTunnelling:
128 Enable/disable the L2 population feature in the Neutron agents.
132 default: 'datacentre'
134 If set, flat networks to configure in neutron plugins. Defaults to
135 'datacentre' to permit external network creation.
138 description: The tenant network type for Neutron, either gre or vxlan.
142 description: The password for the neutron service account, used by neutron agents.
145 NeutronPublicInterface:
147 description: What interface to bridge onto br-ex for network nodes.
149 NeutronPublicInterfaceTag:
152 VLAN tag for creating a public VLAN. The tag will be used to
153 create an access port on the exterior bridge for each control plane node,
154 and that port will be given the IP address returned by neutron from the
155 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
156 overcloud.yaml to include the deployment of VLAN ports to the control
159 NeutronComputeAgentMode:
161 description: Agent mode for the neutron-l3-agent on the compute hosts
165 description: Agent mode for the neutron-l3-agent on the controller hosts
169 description: Whether to configure Neutron Distributed Virtual Routers
171 NeutronMetadataProxySharedSecret:
173 description: Shared secret to prevent spoofing
179 The tunnel types for the Neutron tenant network. To specify multiple
180 values, use a comma separated string, like so: 'gre,vxlan'
182 NeutronTunnelIdRanges:
184 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
185 of GRE tunnel IDs that are available for tenant network allocation
186 default: ["1:1000", ]
187 type: comma_delimited_list
190 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
191 of VXLAN VNI IDs that are available for tenant network allocation
192 default: ["1:1000", ]
193 type: comma_delimited_list
197 The core plugin for Neutron. The value should be the entrypoint to be loaded
198 from neutron.core_plugins namespace.
200 NeutronServicePlugins:
203 Comma-separated list of service plugin entrypoints to be loaded from the
204 neutron.service_plugins namespace.
205 type: comma_delimited_list
207 default: "vxlan,vlan,flat,gre"
209 Comma-separated list of network type driver entrypoints to be loaded.
210 type: comma_delimited_list
211 NeutronMechanismDrivers:
212 default: 'openvswitch'
214 The mechanism drivers for the Neutron tenant network. To specify multiple
215 values, use a comma separated string, like so: 'openvswitch,l2_population'
217 NeutronAllowL3AgentFailover:
219 description: Allow automatic l3-agent failover
223 description: Whether to enable l3-agent HA
225 NeutronDhcpAgentsPerNetwork:
228 description: The number of neutron dhcp agents to schedule per network
231 description: The password for the nova service account, used by nova-api.
236 description: Comma-separated list of ntp servers
237 type: comma_delimited_list
240 description: Should MongoDb journaling be disabled
242 PublicVirtualFixedIPs:
245 Control the IP allocation for the PublicVirtualInterface port. E.g.
246 [{'ip_address':'1.2.3.4'}]
251 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
252 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
255 description: The username for RabbitMQ
259 description: The password for RabbitMQ
265 Rabbit client subscriber parameter to specify
266 an SSL connection to the RabbitMQ host.
270 description: Set rabbit subscriber port, change this if using SSL
272 # We need to set this as string because 'unlimited' is a valid setting
275 description: Configures RabbitMQ FD limit
277 SnmpdReadonlyUserName:
278 default: ro_snmp_user
279 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
281 SnmpdReadonlyUserPassword:
283 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
287 # Controller-specific params
290 description: The keystone auth secret.
293 CinderLVMLoopDeviceSize:
295 description: The size of the loopback file used by the cinder LVM driver.
297 CinderNfsMountOptions:
300 Mount options for NFS mounts used by Cinder NFS backend. Effective
301 when CinderEnableNfsBackend is true.
306 NFS servers used by Cinder NFS backend. Effective when
307 CinderEnableNfsBackend is true.
308 type: comma_delimited_list
311 description: The password for the cinder service account, used by cinder-api.
316 description: The iSCSI helper to use with cinder.
323 controllerExtraConfig:
326 Controller specific configuration to inject into the cluster. Same
327 structure as ExtraConfig.
331 default: overcloud-control
333 - custom_constraint: glance.image
334 OvercloudControlFlavor:
335 description: Flavor for control nodes to request when deploying.
338 - custom_constraint: nova.flavor
339 ControlVirtualInterface:
341 description: Interface where virtual ip will be assigned.
345 description: Whether to enable fencing in Pacemaker or not.
349 description: Whether to use Galera instead of regular MariaDB.
351 ControllerEnableCephStorage:
353 description: Whether to deploy Ceph Storage (OSD) on the Controller
355 ControllerEnableSwiftStorage:
357 description: Whether to enable Swift Storage on the Controller
362 Additional configuration to inject into the cluster. The format required
363 may be implementation specific, e.g puppet hieradata. Any role specific
364 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
369 Pacemaker fencing configuration. The JSON should have
370 the following structure:
374 "agent": "AGENT_NAME",
375 "host_mac": "HOST_MAC_ADDRESS",
376 "params": {"PARAM_NAME": "PARAM_VALUE"}
384 "agent": "fence_xvm",
385 "host_mac": "52:54:00:aa:bb:cc",
387 "multicast_address": "225.0.0.12",
388 "port": "baremetal_0",
390 "manage_key_file": true,
391 "key_file": "/etc/fence_xvm.key",
392 "key_file_password": "abcdef"
399 description: The filepath of the file to use for logging messages from Glance.
402 GlanceNotifierStrategy:
403 description: Strategy to use for Glance notification queue
408 description: The password for the glance service account, used by the glance services.
413 description: The short name of the Glance backend to use. Should be one
414 of swift, rbd or file
417 - allowed_values: ['swift', 'file', 'rbd']
420 description: The password for the Heat service account, used by the Heat services.
423 HeatStackDomainAdminPassword:
424 description: Password for heat_domain_admin user.
428 KeystoneCACertificate:
430 description: Keystone self-signed certificate authority certificate.
432 KeystoneSigningCertificate:
434 description: Keystone certificate for verifying token validity.
438 description: Keystone key for signing tokens.
441 KeystoneSSLCertificate:
443 description: Keystone certificate for verifying token validity.
445 KeystoneSSLCertificateKey:
447 description: Keystone key for signing tokens.
450 KeystoneNotificationDriver:
451 description: Comma-separated list of Oslo notification drivers used by Keystone
452 default: ['messaging']
453 type: comma_delimited_list
454 KeystoneNotificationFormat:
455 description: The Keystone notification format
459 - allowed_values: [ 'basic', 'cadf' ]
462 description: Whether to manage IPtables rules.
466 description: Whether IPtables rules should be purged before setting up the ones.
468 MysqlInnodbBufferPoolSize:
470 Specifies the size of the buffer pool in megabytes. Setting to
471 zero should be interpreted as "no value" and will defer to the
476 description: Configures MySQL max_connections config setting
479 NeutronDnsmasqOptions:
480 default: 'dhcp-option-force=26,1400'
481 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
483 NeutronPublicInterfaceDefaultRoute:
485 description: A custom default route for the NeutronPublicInterface.
487 NeutronPublicInterfaceIP:
489 description: A custom IP address to put onto the NeutronPublicInterface.
491 NeutronPublicInterfaceRawDevice:
493 description: If set, the public interface is a vlan with this device as the raw device.
495 PublicVirtualInterface:
498 Specifies the interface where the public-facing virtual ip will be assigned.
499 This should be int_public when a VLAN is being used.
503 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
508 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
513 description: If set, the contents of an SSL certificate authority file.
517 description: A random string to be used as a salt when hashing to determine mappings in the ring.
522 description: The password for the swift service account, used by the swift proxy services.
527 description: Value of mount_check in Swift account/container/object -server.conf
532 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
535 description: Partition Power to use when building Swift rings
540 description: How many replicas to use in the swift rings.
542 # Compute-specific params
543 CeilometerComputeAgent:
544 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
548 - allowed_values: ['', Present]
552 HypervisorNeutronPhysicalBridge:
555 An OVS bridge to create on each hypervisor. This defaults to br-ex the
556 same as the control plane nodes, as we have a uniform configuration of
557 the openvswitch agent. Typically should not need to be changed.
559 HypervisorNeutronPublicInterface:
561 description: What interface to add to the HypervisorNeutronPhysicalBridge.
563 NeutronNetworkVLANRanges:
564 default: 'datacentre'
566 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
567 Neutron documentation for permitted values. Defaults to permitting any
568 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
569 type: comma_delimited_list
572 default: libvirt.LibvirtDriver
573 NovaComputeExtraConfig:
576 NovaCompute specific configuration to inject into the cluster. Same
577 structure as ExtraConfig.
579 NovaComputeLibvirtType:
582 NovaEnableRbdBackend:
584 description: Whether to enable or not the Rbd backend for Nova
588 default: overcloud-compute
590 - custom_constraint: glance.image
591 OvercloudComputeFlavor:
592 description: Use this flavor
595 - custom_constraint: nova.flavor
598 NeutronTenantNetwork: tenant
599 CeilometerApiNetwork: internal_api
600 MongoDbNetwork: internal_api
601 CinderApiNetwork: internal_api
602 CinderIscsiNetwork: storage
603 GlanceApiNetwork: storage
604 GlanceRegistryNetwork: internal_api
605 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
606 KeystonePublicApiNetwork: internal_api
607 NeutronApiNetwork: internal_api
608 HeatApiNetwork: internal_api
609 NovaApiNetwork: internal_api
610 NovaMetadataNetwork: internal_api
611 NovaVncProxyNetwork: internal_api
612 SwiftMgmtNetwork: storage_mgmt
613 SwiftProxyNetwork: storage
614 HorizonNetwork: internal_api
615 MemcachedNetwork: internal_api
616 RabbitMqNetwork: internal_api
617 RedisNetwork: internal_api
618 MysqlNetwork: internal_api
619 CephClusterNetwork: storage_mgmt
620 CephPublicNetwork: storage
621 ControllerHostnameResolveNetwork: internal_api
622 ComputeHostnameResolveNetwork: internal_api
623 BlockStorageHostnameResolveNetwork: internal_api
624 ObjectStorageHostnameResolveNetwork: internal_api
625 CephStorageHostnameResolveNetwork: storage
626 description: Mapping of service_name -> network name. Typically set
627 via parameter_defaults in the resource registry.
630 # Block storage specific parameters
635 default: overcloud-cinder-volume
637 OvercloudBlockStorageFlavor:
638 description: Flavor for block storage nodes to request when deploying.
641 - custom_constraint: nova.flavor
642 BlockStorageExtraConfig:
645 BlockStorage specific configuration to inject into the cluster. Same
646 structure as ExtraConfig.
649 # Object storage specific parameters
653 OvercloudSwiftStorageFlavor:
654 description: Flavor for Swift storage nodes to request when deploying.
657 - custom_constraint: nova.flavor
659 default: overcloud-swift-storage
661 ObjectStorageExtraConfig:
664 ObjectStorage specific configuration to inject into the cluster. Same
665 structure as ExtraConfig.
669 # Ceph storage specific parameters
674 default: overcloud-ceph-storage
676 OvercloudCephStorageFlavor:
678 description: Flavor for Ceph storage nodes to request when deploying.
681 - custom_constraint: nova.flavor
682 CephStorageExtraConfig:
685 CephStorage specific configuration to inject into the cluster. Same
686 structure as ExtraConfig.
689 # Hostname format for each role
690 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
691 # and %stackname% is replaced with OS::stack_name in the template below.
692 # If you want to use the heat generated names, pass '' (empty string).
693 ControllerHostnameFormat:
695 description: Format for Controller node hostnames
696 default: '%stackname%-controller-%index%'
697 ComputeHostnameFormat:
699 description: Format for Compute node hostnames
700 default: '%stackname%-novacompute-%index%'
701 BlockStorageHostnameFormat:
703 description: Format for BlockStorage node hostnames
704 default: '%stackname%-blockstorage-%index%'
705 ObjectStorageHostnameFormat:
707 description: Format for SwiftStorage node hostnames
708 default: '%stackname%-objectstorage-%index%'
709 CephStorageHostnameFormat:
711 description: Format for CephStorage node hostnames
712 default: '%stackname%-cephstorage-%index%'
714 # Identifiers to trigger tasks on nodes
719 Setting to a previously unused value during stack-update will trigger
720 package update on all nodes
725 Setting this to a unique value will re-run any deployment tasks which
726 perform configuration on a Heat stack-update.
728 # If you want to remove a specific node from a resource group, you can pass
729 # the node name or id as a <Group>RemovalPolicies parameter, for example:
730 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
731 ControllerRemovalPolicies:
735 List of resources to be removed from ControllerResourceGroup when
736 doing an update which requires removal of specific resources.
737 ComputeRemovalPolicies:
741 List of resources to be removed from ComputeResourceGroup when
742 doing an update which requires removal of specific resources.
743 BlockStorageRemovalPolicies:
747 List of resources to be removed from BlockStorageResourceGroup when
748 doing an update which requires removal of specific resources.
749 ObjectStorageRemovalPolicies:
753 List of resources to be removed from ObjectStorageResourceGroup when
754 doing an update which requires removal of specific resources.
755 CephStorageRemovalPolicies:
759 List of resources to be removed from CephStorageResourceGroup when
760 doing an update which requires removal of specific resources.
765 HeatAuthEncryptionKey:
766 type: OS::Heat::RandomString
769 type: OS::Heat::RandomString
774 type: OS::Heat::RandomString
779 type: OS::TripleO::EndpointMap
781 CloudName: {get_param: CloudName}
782 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
783 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
784 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
785 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
786 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
787 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
788 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
789 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
790 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
791 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
792 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
793 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
796 type: OS::Heat::ResourceGroup
799 count: {get_param: ControllerCount}
800 removal_policies: {get_param: ControllerRemovalPolicies}
802 type: OS::TripleO::Controller
804 AdminPassword: {get_param: AdminPassword}
805 AdminToken: {get_param: AdminToken}
806 CeilometerBackend: {get_param: CeilometerBackend}
807 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
808 CeilometerPassword: {get_param: CeilometerPassword}
809 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
810 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
811 CinderNfsServers: {get_param: CinderNfsServers}
812 CinderPassword: {get_param: CinderPassword}
813 CinderISCSIHelper: {get_param: CinderISCSIHelper}
814 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
815 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
816 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
817 CloudName: {get_param: CloudName}
818 ControlVirtualInterface: {get_param: ControlVirtualInterface}
819 ControllerExtraConfig: {get_param: controllerExtraConfig}
820 Debug: {get_param: Debug}
821 EnableFencing: {get_param: EnableFencing}
822 ManageFirewall: {get_param: ManageFirewall}
823 PurgeFirewallRules: {get_param: PurgeFirewallRules}
824 EnableGalera: {get_param: EnableGalera}
825 EnableCephStorage: {get_param: ControllerEnableCephStorage}
826 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
827 ExtraConfig: {get_param: ExtraConfig}
828 FencingConfig: {get_param: FencingConfig}
829 Flavor: {get_param: OvercloudControlFlavor}
830 GlancePassword: {get_param: GlancePassword}
831 GlanceBackend: {get_param: GlanceBackend}
832 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
833 GlanceLogFile: {get_param: GlanceLogFile}
834 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
835 HeatPassword: {get_param: HeatPassword}
836 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
837 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
838 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
839 HorizonSecret: {get_resource: HorizonSecret}
840 Image: {get_param: controllerImage}
841 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
842 KeyName: {get_param: KeyName}
843 KeystoneCACertificate: {get_param: KeystoneCACertificate}
844 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
845 KeystoneSigningKey: {get_param: KeystoneSigningKey}
846 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
847 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
848 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
849 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
850 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
851 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
852 MysqlMaxConnections: {get_param: MysqlMaxConnections}
853 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
854 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
855 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
856 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
857 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
858 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
859 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
860 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
861 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
862 NeutronPublicInterface: {get_param: NeutronPublicInterface}
863 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
864 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
865 NeutronPassword: {get_param: NeutronPassword}
866 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
867 NeutronDVR: {get_param: NeutronDVR}
868 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
869 NeutronAgentMode: {get_param: NeutronAgentMode}
870 NeutronCorePlugin: {get_param: NeutronCorePlugin}
871 NeutronServicePlugins: {get_param: NeutronServicePlugins}
872 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
873 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
874 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
875 NeutronL3HA: {get_param: NeutronL3HA}
876 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
877 NeutronNetworkType: {get_param: NeutronNetworkType}
878 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
879 NovaPassword: {get_param: NovaPassword}
880 NtpServer: {get_param: NtpServer}
881 MongoDbNoJournal: {get_param: MongoDbNoJournal}
882 PcsdPassword: {get_resource: PcsdPassword}
883 PublicVirtualInterface: {get_param: PublicVirtualInterface}
884 RabbitPassword: {get_param: RabbitPassword}
885 RabbitUserName: {get_param: RabbitUserName}
886 RabbitCookie: {get_attr: [RabbitCookie, value]}
887 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
888 RabbitClientPort: {get_param: RabbitClientPort}
889 RabbitFDLimit: {get_param: RabbitFDLimit}
890 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
891 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
892 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
893 SSLCertificate: {get_param: SSLCertificate}
894 SSLKey: {get_param: SSLKey}
895 SSLCACertificate: {get_param: SSLCACertificate}
896 SwiftHashSuffix: {get_param: SwiftHashSuffix}
897 SwiftMountCheck: {get_param: SwiftMountCheck}
898 SwiftMinPartHours: {get_param: SwiftMinPartHours}
899 SwiftPartPower: {get_param: SwiftPartPower}
900 SwiftPassword: {get_param: SwiftPassword}
901 SwiftReplicas: { get_param: SwiftReplicas}
902 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
903 PublicVirtualIP: {get_attr: [PublicVirtualIP, ip_address]}
904 ServiceNetMap: {get_param: ServiceNetMap}
905 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
906 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
907 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
908 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
909 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
910 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
911 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
912 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
913 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
914 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
915 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
916 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
917 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
918 UpdateIdentifier: {get_param: UpdateIdentifier}
921 template: {get_param: ControllerHostnameFormat}
923 '%stackname%': {get_param: 'OS::stack_name'}
926 type: OS::Heat::ResourceGroup
929 count: {get_param: ComputeCount}
930 removal_policies: {get_param: ComputeRemovalPolicies}
932 type: OS::TripleO::Compute
934 AdminPassword: {get_param: AdminPassword}
935 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
936 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
937 CeilometerPassword: {get_param: CeilometerPassword}
938 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
939 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
940 Debug: {get_param: Debug}
941 ExtraConfig: {get_param: ExtraConfig}
942 Flavor: {get_param: OvercloudComputeFlavor}
943 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
944 Image: {get_param: NovaImage}
945 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
946 KeyName: {get_param: KeyName}
947 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
948 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
949 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
950 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
951 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
952 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
953 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
954 NeutronNetworkType: {get_param: NeutronNetworkType}
955 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
956 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
957 NeutronPassword: {get_param: NeutronPassword}
958 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
959 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
960 NeutronDVR: {get_param: NeutronDVR}
961 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
962 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
963 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
964 NeutronCorePlugin: {get_param: NeutronCorePlugin}
965 NeutronServicePlugins: {get_param: NeutronServicePlugins}
966 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
967 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
968 # L3 HA and Failover is not relevant for Computes, should be removed
969 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
970 NeutronL3HA: {get_param: NeutronL3HA}
971 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
972 NovaComputeDriver: {get_param: NovaComputeDriver}
973 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
974 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
975 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
976 NovaPublicIP: {get_attr: [PublicVirtualIP, ip_address]}
977 NovaPassword: {get_param: NovaPassword}
978 NtpServer: {get_param: NtpServer}
979 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
980 RabbitPassword: {get_param: RabbitPassword}
981 RabbitUserName: {get_param: RabbitUserName}
982 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
983 RabbitClientPort: {get_param: RabbitClientPort}
984 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
985 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
986 ServiceNetMap: {get_param: ServiceNetMap}
987 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
988 UpdateIdentifier: {get_param: UpdateIdentifier}
991 template: {get_param: ComputeHostnameFormat}
993 '%stackname%': {get_param: 'OS::stack_name'}
996 type: OS::Heat::ResourceGroup
999 count: {get_param: BlockStorageCount}
1000 removal_policies: {get_param: BlockStorageRemovalPolicies}
1002 type: OS::TripleO::BlockStorage
1004 Debug: {get_param: Debug}
1005 Image: {get_param: BlockStorageImage}
1006 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1007 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1008 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1009 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1010 CinderPassword: {get_param: CinderPassword}
1011 KeyName: {get_param: KeyName}
1012 Flavor: {get_param: OvercloudBlockStorageFlavor}
1013 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1014 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1015 RabbitPassword: {get_param: RabbitPassword}
1016 RabbitUserName: {get_param: RabbitUserName}
1017 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1018 RabbitClientPort: {get_param: RabbitClientPort}
1019 NtpServer: {get_param: NtpServer}
1020 UpdateIdentifier: {get_param: UpdateIdentifier}
1023 template: {get_param: BlockStorageHostnameFormat}
1025 '%stackname%': {get_param: 'OS::stack_name'}
1026 ServiceNetMap: {get_param: ServiceNetMap}
1027 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1028 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1029 ExtraConfig: {get_param: ExtraConfig}
1030 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1033 type: OS::Heat::ResourceGroup
1034 depends_on: Networks
1036 count: {get_param: ObjectStorageCount}
1037 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1039 type: OS::TripleO::ObjectStorage
1041 KeyName: {get_param: KeyName}
1042 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1043 HashSuffix: {get_param: SwiftHashSuffix}
1044 MountCheck: {get_param: SwiftMountCheck}
1045 MinPartHours: {get_param: SwiftMinPartHours}
1046 PartPower: {get_param: SwiftPartPower}
1047 Image: {get_param: SwiftStorageImage}
1048 Replicas: { get_param: SwiftReplicas}
1049 NtpServer: {get_param: NtpServer}
1050 UpdateIdentifier: {get_param: UpdateIdentifier}
1051 ServiceNetMap: {get_param: ServiceNetMap}
1054 template: {get_param: ObjectStorageHostnameFormat}
1056 '%stackname%': {get_param: 'OS::stack_name'}
1057 ExtraConfig: {get_param: ExtraConfig}
1058 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1061 type: OS::Heat::ResourceGroup
1062 depends_on: Networks
1064 count: {get_param: CephStorageCount}
1065 removal_policies: {get_param: CephStorageRemovalPolicies}
1067 type: OS::TripleO::CephStorage
1069 Image: {get_param: CephStorageImage}
1070 KeyName: {get_param: KeyName}
1071 Flavor: {get_param: OvercloudCephStorageFlavor}
1072 NtpServer: {get_param: NtpServer}
1073 ServiceNetMap: {get_param: ServiceNetMap}
1074 UpdateIdentifier: {get_param: UpdateIdentifier}
1077 template: {get_param: CephStorageHostnameFormat}
1079 '%stackname%': {get_param: 'OS::stack_name'}
1080 ExtraConfig: {get_param: ExtraConfig}
1081 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1083 ControllerIpListMap:
1084 type: OS::TripleO::Network::Ports::NetIpListMap
1086 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1087 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1088 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1089 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1090 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1091 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1094 type: OS::TripleO::AllNodes::SoftwareConfig
1096 compute_hosts: {get_attr: [Compute, hosts_entry]}
1097 controller_hosts: {get_attr: [Controller, hosts_entry]}
1098 controller_ips: {get_attr: [Controller, ip_address]}
1099 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1100 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1101 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1102 controller_names: {get_attr: [Controller, hostname]}
1103 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1104 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1105 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1106 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1107 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1108 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1109 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1110 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1111 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1112 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1113 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1114 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1115 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1116 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1117 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1118 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1119 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1122 type: OS::Heat::RandomString
1126 MysqlClusterUniquePart:
1127 type: OS::Heat::RandomString
1132 type: OS::Heat::RandomString
1135 salt: {get_param: RabbitCookieSalt}
1137 # creates the network architecture
1139 type: OS::TripleO::Network
1142 type: OS::Neutron::Port
1143 depends_on: Networks
1145 name: control_virtual_ip
1146 network: {get_param: NeutronControlPlaneID}
1147 fixed_ips: {get_param: ControlFixedIPs}
1148 replacement_policy: AUTO
1151 depends_on: Networks
1152 type: OS::TripleO::Controller::Ports::RedisVipPort
1154 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1155 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1156 PortName: redis_virtual_ip
1157 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1159 # The public VIP is on the External net, falls back to ctlplane
1161 depends_on: Networks
1162 type: OS::TripleO::Controller::Ports::ExternalPort
1164 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1165 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1166 PortName: public_virtual_ip
1167 FixedIPs: {get_param: PublicVirtualFixedIPs}
1169 InternalApiVirtualIP:
1170 depends_on: Networks
1171 type: OS::TripleO::Controller::Ports::InternalApiPort
1173 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1174 PortName: internal_api_virtual_ip
1177 depends_on: Networks
1178 type: OS::TripleO::Controller::Ports::StoragePort
1180 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1181 PortName: storage_virtual_ip
1183 StorageMgmtVirtualIP:
1184 depends_on: Networks
1185 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1187 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1188 PortName: storage_management_virtual_ip
1191 type: OS::TripleO::Network::Ports::NetIpMap
1193 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1194 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1195 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1196 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1197 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1198 # No tenant VIP required
1201 type: OS::TripleO::VipConfig
1204 type: OS::Heat::StructuredDeployments
1206 config: {get_resource: VipConfig}
1207 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1209 # service VIP mappings
1210 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1211 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1212 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1213 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1214 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1215 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1216 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1217 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1218 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1219 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1220 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1221 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1222 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1223 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1224 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1225 # direct configuration of Virtual IPs for each network
1226 control_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1227 public_virtual_ip: {get_attr: [PublicVirtualIP, ip_address]}
1228 internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
1229 storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
1230 storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1232 ControllerBootstrapNodeConfig:
1233 type: OS::TripleO::BootstrapNode::SoftwareConfig
1235 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1236 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1238 ControllerBootstrapNodeDeployment:
1239 type: OS::Heat::StructuredDeployments
1241 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1242 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1244 ControllerSwiftDeployment:
1245 type: OS::Heat::StructuredDeployments
1247 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1248 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1250 ObjectStorageSwiftDeployment:
1251 type: OS::Heat::StructuredDeployments
1253 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1254 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1256 SwiftDevicesAndProxyConfig:
1257 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1259 controller_swift_devices: {get_attr: [Controller, swift_device]}
1260 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1261 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1263 ComputeCephDeployment:
1264 type: OS::Heat::StructuredDeployments
1266 config: {get_attr: [CephClusterConfig, config_id]}
1267 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1269 ControllerCephDeployment:
1270 type: OS::Heat::StructuredDeployments
1272 config: {get_attr: [CephClusterConfig, config_id]}
1273 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1275 CephStorageCephDeployment:
1276 type: OS::Heat::StructuredDeployments
1278 config: {get_attr: [CephClusterConfig, config_id]}
1279 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1282 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1284 ceph_storage_count: {get_param: CephStorageCount}
1285 ceph_fsid: {get_param: CephClusterFSID}
1286 ceph_mon_key: {get_param: CephMonKey}
1287 ceph_admin_key: {get_param: CephAdminKey}
1288 ceph_client_key: {get_param: CephClientKey}
1289 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1290 ceph_mon_names: {get_attr: [Controller, hostname]}
1291 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1293 ControllerClusterConfig:
1294 type: OS::Heat::StructuredConfig
1296 group: os-apply-config
1299 nodes: {get_attr: [Controller, corosync_node]}
1303 nodes: {get_attr: [Controller, hostname]}
1305 nodes: {get_attr: [Controller, corosync_node]}
1307 nodes: {get_attr: [Controller, corosync_node]}
1309 ControllerClusterDeployment:
1310 type: OS::Heat::StructuredDeployments
1312 config: {get_resource: ControllerClusterConfig}
1313 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1315 ControllerAllNodesDeployment:
1316 type: OS::Heat::StructuredDeployments
1318 config: {get_attr: [allNodesConfig, config_id]}
1319 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1321 ComputeAllNodesDeployment:
1322 type: OS::Heat::StructuredDeployments
1324 config: {get_attr: [allNodesConfig, config_id]}
1325 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1327 BlockStorageAllNodesDeployment:
1328 type: OS::Heat::StructuredDeployments
1330 config: {get_attr: [allNodesConfig, config_id]}
1331 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1333 ObjectStorageAllNodesDeployment:
1334 type: OS::Heat::StructuredDeployments
1336 config: {get_attr: [allNodesConfig, config_id]}
1337 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1339 CephStorageAllNodesDeployment:
1340 type: OS::Heat::StructuredDeployments
1342 config: {get_attr: [allNodesConfig, config_id]}
1343 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1345 # All Nodes Validations
1346 AllNodesValidationConfig:
1347 type: OS::TripleO::AllNodes::Validation
1352 - - {get_attr: [Controller, resource.0.external_ip_address]}
1353 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1354 - {get_attr: [Controller, resource.0.storage_ip_address]}
1355 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1356 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1358 ControllerAllNodesValidationDeployment:
1359 type: OS::Heat::StructuredDeployments
1360 depends_on: ControllerAllNodesDeployment
1362 config: {get_resource: AllNodesValidationConfig}
1363 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1365 ComputeAllNodesValidationDeployment:
1366 type: OS::Heat::StructuredDeployments
1367 depends_on: ComputeAllNodesDeployment
1369 config: {get_resource: AllNodesValidationConfig}
1370 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1372 BlockStorageAllNodesValidationDeployment:
1373 type: OS::Heat::StructuredDeployments
1374 depends_on: BlockStorageAllNodesDeployment
1376 config: {get_resource: AllNodesValidationConfig}
1377 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1379 ObjectStorageAllNodesValidationDeployment:
1380 type: OS::Heat::StructuredDeployments
1381 depends_on: ObjectStorageAllNodesDeployment
1383 config: {get_resource: AllNodesValidationConfig}
1384 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1386 CephStorageAllNodesValidationDeployment:
1387 type: OS::Heat::StructuredDeployments
1388 depends_on: CephStorageAllNodesDeployment
1390 config: {get_resource: AllNodesValidationConfig}
1391 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1393 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1394 # the nested template may configure each role differently (or not at all)
1395 AllNodesExtraConfig:
1396 type: OS::TripleO::AllNodesExtraConfig
1398 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1399 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1400 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1401 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1402 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1404 # Nested stack deployment runs after all other controller deployments
1405 ControllerNodesPostDeployment:
1406 type: OS::TripleO::ControllerPostDeployment
1407 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1409 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1410 NodeConfigIdentifiers:
1411 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1412 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1413 deployment_identifier: {get_param: DeployIdentifier}
1415 ComputeNodesPostDeployment:
1416 type: OS::TripleO::ComputePostDeployment
1417 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1419 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1420 NodeConfigIdentifiers:
1421 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1422 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1423 deployment_identifier: {get_param: DeployIdentifier}
1425 ObjectStorageNodesPostDeployment:
1426 type: OS::TripleO::ObjectStoragePostDeployment
1427 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1429 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1430 NodeConfigIdentifiers:
1431 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1432 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1433 deployment_identifier: {get_param: DeployIdentifier}
1435 BlockStorageNodesPostDeployment:
1436 type: OS::TripleO::BlockStoragePostDeployment
1437 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1439 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1440 NodeConfigIdentifiers:
1441 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1442 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1443 deployment_identifier: {get_param: DeployIdentifier}
1445 CephStorageNodesPostDeployment:
1446 type: OS::TripleO::CephStoragePostDeployment
1447 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1449 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1450 NodeConfigIdentifiers:
1451 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1452 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1453 deployment_identifier: {get_param: DeployIdentifier}
1457 description: URL for the Overcloud Keystone service
1458 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1460 description: Keystone Admin VIP endpoint
1461 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1463 description: Controller VIP for public API endpoints
1464 value: {get_attr: [PublicVirtualIP, ip_address]}
1465 CeilometerInternalVip:
1466 description: VIP for Ceilometer API internal endpoint
1467 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1469 description: VIP for Cinder API internal endpoint
1470 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1472 description: VIP for Glance API internal endpoint
1473 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1475 description: VIP for Heat API internal endpoint
1476 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1477 KeystoneInternalVip:
1478 description: VIP for Keystone API internal endpoint
1479 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1481 description: VIP for Neutron API internal endpoint
1482 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1484 description: VIP for Nova API internal endpoint
1485 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1487 description: VIP for Swift Proxy internal endpoint
1488 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}