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' ]
460 MysqlInnodbBufferPoolSize:
462 Specifies the size of the buffer pool in megabytes. Setting to
463 zero should be interpreted as "no value" and will defer to the
468 description: Configures MySQL max_connections config setting
471 NeutronDnsmasqOptions:
472 default: 'dhcp-option-force=26,1400'
473 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
475 NeutronPublicInterfaceDefaultRoute:
477 description: A custom default route for the NeutronPublicInterface.
479 NeutronPublicInterfaceIP:
481 description: A custom IP address to put onto the NeutronPublicInterface.
483 NeutronPublicInterfaceRawDevice:
485 description: If set, the public interface is a vlan with this device as the raw device.
487 PublicVirtualInterface:
490 Specifies the interface where the public-facing virtual ip will be assigned.
491 This should be int_public when a VLAN is being used.
495 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
500 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
505 description: If set, the contents of an SSL certificate authority file.
509 description: A random string to be used as a salt when hashing to determine mappings in the ring.
514 description: The password for the swift service account, used by the swift proxy services.
519 description: Value of mount_check in Swift account/container/object -server.conf
524 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
527 description: Partition Power to use when building Swift rings
532 description: How many replicas to use in the swift rings.
534 # Compute-specific params
535 CeilometerComputeAgent:
536 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
540 - allowed_values: ['', Present]
544 HypervisorNeutronPhysicalBridge:
547 An OVS bridge to create on each hypervisor. This defaults to br-ex the
548 same as the control plane nodes, as we have a uniform configuration of
549 the openvswitch agent. Typically should not need to be changed.
551 HypervisorNeutronPublicInterface:
553 description: What interface to add to the HypervisorNeutronPhysicalBridge.
555 NeutronNetworkVLANRanges:
556 default: 'datacentre'
558 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
559 Neutron documentation for permitted values. Defaults to permitting any
560 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
561 type: comma_delimited_list
564 default: libvirt.LibvirtDriver
565 NovaComputeExtraConfig:
568 NovaCompute specific configuration to inject into the cluster. Same
569 structure as ExtraConfig.
571 NovaComputeLibvirtType:
574 NovaEnableRbdBackend:
576 description: Whether to enable or not the Rbd backend for Nova
580 default: overcloud-compute
582 - custom_constraint: glance.image
583 OvercloudComputeFlavor:
584 description: Use this flavor
587 - custom_constraint: nova.flavor
590 NeutronTenantNetwork: tenant
591 CeilometerApiNetwork: internal_api
592 MongoDbNetwork: internal_api
593 CinderApiNetwork: internal_api
594 CinderIscsiNetwork: storage
595 GlanceApiNetwork: storage
596 GlanceRegistryNetwork: internal_api
597 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
598 KeystonePublicApiNetwork: internal_api
599 NeutronApiNetwork: internal_api
600 HeatApiNetwork: internal_api
601 NovaApiNetwork: internal_api
602 NovaMetadataNetwork: internal_api
603 NovaVncProxyNetwork: internal_api
604 SwiftMgmtNetwork: storage_mgmt
605 SwiftProxyNetwork: storage
606 HorizonNetwork: internal_api
607 MemcachedNetwork: internal_api
608 RabbitMqNetwork: internal_api
609 RedisNetwork: internal_api
610 MysqlNetwork: internal_api
611 CephClusterNetwork: storage_mgmt
612 CephPublicNetwork: storage
613 ControllerHostnameResolveNetwork: internal_api
614 ComputeHostnameResolveNetwork: internal_api
615 BlockStorageHostnameResolveNetwork: internal_api
616 ObjectStorageHostnameResolveNetwork: internal_api
617 CephStorageHostnameResolveNetwork: storage
618 description: Mapping of service_name -> network name. Typically set
619 via parameter_defaults in the resource registry.
622 # Block storage specific parameters
627 default: overcloud-cinder-volume
629 OvercloudBlockStorageFlavor:
630 description: Flavor for block storage nodes to request when deploying.
633 - custom_constraint: nova.flavor
634 BlockStorageExtraConfig:
637 BlockStorage specific configuration to inject into the cluster. Same
638 structure as ExtraConfig.
641 # Object storage specific parameters
645 OvercloudSwiftStorageFlavor:
646 description: Flavor for Swift storage nodes to request when deploying.
649 - custom_constraint: nova.flavor
651 default: overcloud-swift-storage
653 ObjectStorageExtraConfig:
656 ObjectStorage specific configuration to inject into the cluster. Same
657 structure as ExtraConfig.
661 # Ceph storage specific parameters
666 default: overcloud-ceph-storage
668 OvercloudCephStorageFlavor:
670 description: Flavor for Ceph storage nodes to request when deploying.
673 - custom_constraint: nova.flavor
674 CephStorageExtraConfig:
677 CephStorage specific configuration to inject into the cluster. Same
678 structure as ExtraConfig.
681 # Hostname format for each role
682 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
683 # and %stackname% is replaced with OS::stack_name in the template below.
684 # If you want to use the heat generated names, pass '' (empty string).
685 ControllerHostnameFormat:
687 description: Format for Controller node hostnames
688 default: '%stackname%-controller-%index%'
689 ComputeHostnameFormat:
691 description: Format for Compute node hostnames
692 default: '%stackname%-novacompute-%index%'
693 BlockStorageHostnameFormat:
695 description: Format for BlockStorage node hostnames
696 default: '%stackname%-blockstorage-%index%'
697 ObjectStorageHostnameFormat:
699 description: Format for SwiftStorage node hostnames
700 default: '%stackname%-objectstorage-%index%'
701 CephStorageHostnameFormat:
703 description: Format for CephStorage node hostnames
704 default: '%stackname%-cephstorage-%index%'
706 # Identifiers to trigger tasks on nodes
711 Setting to a previously unused value during stack-update will trigger
712 package update on all nodes
717 Setting this to a unique value will re-run any deployment tasks which
718 perform configuration on a Heat stack-update.
720 # If you want to remove a specific node from a resource group, you can pass
721 # the node name or id as a <Group>RemovalPolicies parameter, for example:
722 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
723 ControllerRemovalPolicies:
727 List of resources to be removed from ControllerResourceGroup when
728 doing an update which requires removal of specific resources.
729 ComputeRemovalPolicies:
733 List of resources to be removed from ComputeResourceGroup when
734 doing an update which requires removal of specific resources.
735 BlockStorageRemovalPolicies:
739 List of resources to be removed from BlockStorageResourceGroup when
740 doing an update which requires removal of specific resources.
741 ObjectStorageRemovalPolicies:
745 List of resources to be removed from ObjectStorageResourceGroup when
746 doing an update which requires removal of specific resources.
747 CephStorageRemovalPolicies:
751 List of resources to be removed from CephStorageResourceGroup when
752 doing an update which requires removal of specific resources.
757 HeatAuthEncryptionKey:
758 type: OS::Heat::RandomString
761 type: OS::Heat::RandomString
766 type: OS::Heat::RandomString
771 type: OS::TripleO::EndpointMap
773 CloudName: {get_param: CloudName}
774 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
775 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
776 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
777 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
778 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
779 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
780 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
781 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
782 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
783 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
784 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
785 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
788 type: OS::Heat::ResourceGroup
791 count: {get_param: ControllerCount}
792 removal_policies: {get_param: ControllerRemovalPolicies}
794 type: OS::TripleO::Controller
796 AdminPassword: {get_param: AdminPassword}
797 AdminToken: {get_param: AdminToken}
798 CeilometerBackend: {get_param: CeilometerBackend}
799 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
800 CeilometerPassword: {get_param: CeilometerPassword}
801 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
802 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
803 CinderNfsServers: {get_param: CinderNfsServers}
804 CinderPassword: {get_param: CinderPassword}
805 CinderISCSIHelper: {get_param: CinderISCSIHelper}
806 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
807 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
808 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
809 CloudName: {get_param: CloudName}
810 ControlVirtualInterface: {get_param: ControlVirtualInterface}
811 ControllerExtraConfig: {get_param: controllerExtraConfig}
812 Debug: {get_param: Debug}
813 EnableFencing: {get_param: EnableFencing}
814 EnableGalera: {get_param: EnableGalera}
815 EnableCephStorage: {get_param: ControllerEnableCephStorage}
816 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
817 ExtraConfig: {get_param: ExtraConfig}
818 FencingConfig: {get_param: FencingConfig}
819 Flavor: {get_param: OvercloudControlFlavor}
820 GlancePassword: {get_param: GlancePassword}
821 GlanceBackend: {get_param: GlanceBackend}
822 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
823 GlanceLogFile: {get_param: GlanceLogFile}
824 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
825 HeatPassword: {get_param: HeatPassword}
826 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
827 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
828 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
829 HorizonSecret: {get_resource: HorizonSecret}
830 Image: {get_param: controllerImage}
831 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
832 KeyName: {get_param: KeyName}
833 KeystoneCACertificate: {get_param: KeystoneCACertificate}
834 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
835 KeystoneSigningKey: {get_param: KeystoneSigningKey}
836 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
837 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
838 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
839 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
840 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
841 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
842 MysqlMaxConnections: {get_param: MysqlMaxConnections}
843 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
844 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
845 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
846 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
847 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
848 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
849 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
850 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
851 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
852 NeutronPublicInterface: {get_param: NeutronPublicInterface}
853 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
854 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
855 NeutronPassword: {get_param: NeutronPassword}
856 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
857 NeutronDVR: {get_param: NeutronDVR}
858 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
859 NeutronAgentMode: {get_param: NeutronAgentMode}
860 NeutronCorePlugin: {get_param: NeutronCorePlugin}
861 NeutronServicePlugins: {get_param: NeutronServicePlugins}
862 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
863 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
864 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
865 NeutronL3HA: {get_param: NeutronL3HA}
866 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
867 NeutronNetworkType: {get_param: NeutronNetworkType}
868 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
869 NovaPassword: {get_param: NovaPassword}
870 NtpServer: {get_param: NtpServer}
871 MongoDbNoJournal: {get_param: MongoDbNoJournal}
872 PcsdPassword: {get_resource: PcsdPassword}
873 PublicVirtualInterface: {get_param: PublicVirtualInterface}
874 RabbitPassword: {get_param: RabbitPassword}
875 RabbitUserName: {get_param: RabbitUserName}
876 RabbitCookie: {get_attr: [RabbitCookie, value]}
877 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
878 RabbitClientPort: {get_param: RabbitClientPort}
879 RabbitFDLimit: {get_param: RabbitFDLimit}
880 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
881 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
882 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
883 SSLCertificate: {get_param: SSLCertificate}
884 SSLKey: {get_param: SSLKey}
885 SSLCACertificate: {get_param: SSLCACertificate}
886 SwiftHashSuffix: {get_param: SwiftHashSuffix}
887 SwiftMountCheck: {get_param: SwiftMountCheck}
888 SwiftMinPartHours: {get_param: SwiftMinPartHours}
889 SwiftPartPower: {get_param: SwiftPartPower}
890 SwiftPassword: {get_param: SwiftPassword}
891 SwiftReplicas: { get_param: SwiftReplicas}
892 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
893 PublicVirtualIP: {get_attr: [PublicVirtualIP, ip_address]}
894 ServiceNetMap: {get_param: ServiceNetMap}
895 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
896 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
897 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
898 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
899 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
900 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
901 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
902 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
903 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
904 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
905 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
906 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
907 UpdateIdentifier: {get_param: UpdateIdentifier}
910 template: {get_param: ControllerHostnameFormat}
912 '%stackname%': {get_param: 'OS::stack_name'}
915 type: OS::Heat::ResourceGroup
918 count: {get_param: ComputeCount}
919 removal_policies: {get_param: ComputeRemovalPolicies}
921 type: OS::TripleO::Compute
923 AdminPassword: {get_param: AdminPassword}
924 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
925 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
926 CeilometerPassword: {get_param: CeilometerPassword}
927 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
928 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
929 Debug: {get_param: Debug}
930 ExtraConfig: {get_param: ExtraConfig}
931 Flavor: {get_param: OvercloudComputeFlavor}
932 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
933 Image: {get_param: NovaImage}
934 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
935 KeyName: {get_param: KeyName}
936 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
937 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
938 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
939 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
940 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
941 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
942 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
943 NeutronNetworkType: {get_param: NeutronNetworkType}
944 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
945 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
946 NeutronPassword: {get_param: NeutronPassword}
947 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
948 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
949 NeutronDVR: {get_param: NeutronDVR}
950 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
951 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
952 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
953 NeutronCorePlugin: {get_param: NeutronCorePlugin}
954 NeutronServicePlugins: {get_param: NeutronServicePlugins}
955 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
956 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
957 # L3 HA and Failover is not relevant for Computes, should be removed
958 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
959 NeutronL3HA: {get_param: NeutronL3HA}
960 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
961 NovaComputeDriver: {get_param: NovaComputeDriver}
962 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
963 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
964 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
965 NovaPublicIP: {get_attr: [PublicVirtualIP, ip_address]}
966 NovaPassword: {get_param: NovaPassword}
967 NtpServer: {get_param: NtpServer}
968 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
969 RabbitPassword: {get_param: RabbitPassword}
970 RabbitUserName: {get_param: RabbitUserName}
971 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
972 RabbitClientPort: {get_param: RabbitClientPort}
973 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
974 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
975 ServiceNetMap: {get_param: ServiceNetMap}
976 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
977 UpdateIdentifier: {get_param: UpdateIdentifier}
980 template: {get_param: ComputeHostnameFormat}
982 '%stackname%': {get_param: 'OS::stack_name'}
985 type: OS::Heat::ResourceGroup
988 count: {get_param: BlockStorageCount}
989 removal_policies: {get_param: BlockStorageRemovalPolicies}
991 type: OS::TripleO::BlockStorage
993 Debug: {get_param: Debug}
994 Image: {get_param: BlockStorageImage}
995 CinderISCSIHelper: {get_param: CinderISCSIHelper}
996 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
997 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
998 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
999 CinderPassword: {get_param: CinderPassword}
1000 KeyName: {get_param: KeyName}
1001 Flavor: {get_param: OvercloudBlockStorageFlavor}
1002 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1003 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1004 RabbitPassword: {get_param: RabbitPassword}
1005 RabbitUserName: {get_param: RabbitUserName}
1006 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1007 RabbitClientPort: {get_param: RabbitClientPort}
1008 NtpServer: {get_param: NtpServer}
1009 UpdateIdentifier: {get_param: UpdateIdentifier}
1012 template: {get_param: BlockStorageHostnameFormat}
1014 '%stackname%': {get_param: 'OS::stack_name'}
1015 ServiceNetMap: {get_param: ServiceNetMap}
1016 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1017 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1018 ExtraConfig: {get_param: ExtraConfig}
1019 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1022 type: OS::Heat::ResourceGroup
1023 depends_on: Networks
1025 count: {get_param: ObjectStorageCount}
1026 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1028 type: OS::TripleO::ObjectStorage
1030 KeyName: {get_param: KeyName}
1031 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1032 HashSuffix: {get_param: SwiftHashSuffix}
1033 MountCheck: {get_param: SwiftMountCheck}
1034 MinPartHours: {get_param: SwiftMinPartHours}
1035 PartPower: {get_param: SwiftPartPower}
1036 Image: {get_param: SwiftStorageImage}
1037 Replicas: { get_param: SwiftReplicas}
1038 NtpServer: {get_param: NtpServer}
1039 UpdateIdentifier: {get_param: UpdateIdentifier}
1040 ServiceNetMap: {get_param: ServiceNetMap}
1043 template: {get_param: ObjectStorageHostnameFormat}
1045 '%stackname%': {get_param: 'OS::stack_name'}
1046 ExtraConfig: {get_param: ExtraConfig}
1047 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1050 type: OS::Heat::ResourceGroup
1051 depends_on: Networks
1053 count: {get_param: CephStorageCount}
1054 removal_policies: {get_param: CephStorageRemovalPolicies}
1056 type: OS::TripleO::CephStorage
1058 Image: {get_param: CephStorageImage}
1059 KeyName: {get_param: KeyName}
1060 Flavor: {get_param: OvercloudCephStorageFlavor}
1061 NtpServer: {get_param: NtpServer}
1062 ServiceNetMap: {get_param: ServiceNetMap}
1063 UpdateIdentifier: {get_param: UpdateIdentifier}
1066 template: {get_param: CephStorageHostnameFormat}
1068 '%stackname%': {get_param: 'OS::stack_name'}
1069 ExtraConfig: {get_param: ExtraConfig}
1070 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1072 ControllerIpListMap:
1073 type: OS::TripleO::Network::Ports::NetIpListMap
1075 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1076 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1077 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1078 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1079 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1080 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1083 type: OS::TripleO::AllNodes::SoftwareConfig
1085 compute_hosts: {get_attr: [Compute, hosts_entry]}
1086 controller_hosts: {get_attr: [Controller, hosts_entry]}
1087 controller_ips: {get_attr: [Controller, ip_address]}
1088 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1089 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1090 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1091 controller_names: {get_attr: [Controller, hostname]}
1092 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1093 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1094 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1095 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1096 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1097 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1098 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1099 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1100 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1101 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1102 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1103 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1104 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1105 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1106 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1107 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1108 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1111 type: OS::Heat::RandomString
1115 MysqlClusterUniquePart:
1116 type: OS::Heat::RandomString
1121 type: OS::Heat::RandomString
1124 salt: {get_param: RabbitCookieSalt}
1126 # creates the network architecture
1128 type: OS::TripleO::Network
1131 type: OS::Neutron::Port
1132 depends_on: Networks
1134 name: control_virtual_ip
1135 network: {get_param: NeutronControlPlaneID}
1136 fixed_ips: {get_param: ControlFixedIPs}
1137 replacement_policy: AUTO
1140 depends_on: Networks
1141 type: OS::TripleO::Controller::Ports::RedisVipPort
1143 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1144 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1145 PortName: redis_virtual_ip
1146 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1148 # The public VIP is on the External net, falls back to ctlplane
1150 depends_on: Networks
1151 type: OS::TripleO::Controller::Ports::ExternalPort
1153 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1154 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1155 PortName: public_virtual_ip
1156 FixedIPs: {get_param: PublicVirtualFixedIPs}
1158 InternalApiVirtualIP:
1159 depends_on: Networks
1160 type: OS::TripleO::Controller::Ports::InternalApiPort
1162 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1163 PortName: internal_api_virtual_ip
1166 depends_on: Networks
1167 type: OS::TripleO::Controller::Ports::StoragePort
1169 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1170 PortName: storage_virtual_ip
1172 StorageMgmtVirtualIP:
1173 depends_on: Networks
1174 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1176 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1177 PortName: storage_management_virtual_ip
1180 type: OS::TripleO::Network::Ports::NetIpMap
1182 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1183 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1184 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1185 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1186 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1187 # No tenant VIP required
1190 type: OS::TripleO::VipConfig
1193 type: OS::Heat::StructuredDeployments
1195 config: {get_resource: VipConfig}
1196 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1198 # service VIP mappings
1199 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1200 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1201 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1202 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1203 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1204 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1205 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1206 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1207 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1208 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1209 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1210 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1211 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1212 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1213 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1214 # direct configuration of Virtual IPs for each network
1215 control_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1216 public_virtual_ip: {get_attr: [PublicVirtualIP, ip_address]}
1217 internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
1218 storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
1219 storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1221 ControllerBootstrapNodeConfig:
1222 type: OS::TripleO::BootstrapNode::SoftwareConfig
1224 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1225 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1227 ControllerBootstrapNodeDeployment:
1228 type: OS::Heat::StructuredDeployments
1230 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1231 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1233 ControllerSwiftDeployment:
1234 type: OS::Heat::StructuredDeployments
1236 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1237 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1239 ObjectStorageSwiftDeployment:
1240 type: OS::Heat::StructuredDeployments
1242 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1243 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1245 SwiftDevicesAndProxyConfig:
1246 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1248 controller_swift_devices: {get_attr: [Controller, swift_device]}
1249 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1250 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1252 ComputeCephDeployment:
1253 type: OS::Heat::StructuredDeployments
1255 config: {get_attr: [CephClusterConfig, config_id]}
1256 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1258 ControllerCephDeployment:
1259 type: OS::Heat::StructuredDeployments
1261 config: {get_attr: [CephClusterConfig, config_id]}
1262 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1264 CephStorageCephDeployment:
1265 type: OS::Heat::StructuredDeployments
1267 config: {get_attr: [CephClusterConfig, config_id]}
1268 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1271 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1273 ceph_storage_count: {get_param: CephStorageCount}
1274 ceph_fsid: {get_param: CephClusterFSID}
1275 ceph_mon_key: {get_param: CephMonKey}
1276 ceph_admin_key: {get_param: CephAdminKey}
1277 ceph_client_key: {get_param: CephClientKey}
1278 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1279 ceph_mon_names: {get_attr: [Controller, hostname]}
1280 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1282 ControllerClusterConfig:
1283 type: OS::Heat::StructuredConfig
1285 group: os-apply-config
1288 nodes: {get_attr: [Controller, corosync_node]}
1292 nodes: {get_attr: [Controller, hostname]}
1294 nodes: {get_attr: [Controller, corosync_node]}
1296 nodes: {get_attr: [Controller, corosync_node]}
1298 ControllerClusterDeployment:
1299 type: OS::Heat::StructuredDeployments
1301 config: {get_resource: ControllerClusterConfig}
1302 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1304 ControllerAllNodesDeployment:
1305 type: OS::Heat::StructuredDeployments
1307 config: {get_attr: [allNodesConfig, config_id]}
1308 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1310 ComputeAllNodesDeployment:
1311 type: OS::Heat::StructuredDeployments
1313 config: {get_attr: [allNodesConfig, config_id]}
1314 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1316 BlockStorageAllNodesDeployment:
1317 type: OS::Heat::StructuredDeployments
1319 config: {get_attr: [allNodesConfig, config_id]}
1320 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1322 ObjectStorageAllNodesDeployment:
1323 type: OS::Heat::StructuredDeployments
1325 config: {get_attr: [allNodesConfig, config_id]}
1326 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1328 CephStorageAllNodesDeployment:
1329 type: OS::Heat::StructuredDeployments
1331 config: {get_attr: [allNodesConfig, config_id]}
1332 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1334 # All Nodes Validations
1335 AllNodesValidationConfig:
1336 type: OS::TripleO::AllNodes::Validation
1341 - - {get_attr: [Controller, resource.0.external_ip_address]}
1342 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1343 - {get_attr: [Controller, resource.0.storage_ip_address]}
1344 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1345 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1347 ControllerAllNodesValidationDeployment:
1348 type: OS::Heat::StructuredDeployments
1349 depends_on: ControllerAllNodesDeployment
1351 config: {get_resource: AllNodesValidationConfig}
1352 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1354 ComputeAllNodesValidationDeployment:
1355 type: OS::Heat::StructuredDeployments
1356 depends_on: ComputeAllNodesDeployment
1358 config: {get_resource: AllNodesValidationConfig}
1359 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1361 BlockStorageAllNodesValidationDeployment:
1362 type: OS::Heat::StructuredDeployments
1363 depends_on: BlockStorageAllNodesDeployment
1365 config: {get_resource: AllNodesValidationConfig}
1366 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1368 ObjectStorageAllNodesValidationDeployment:
1369 type: OS::Heat::StructuredDeployments
1370 depends_on: ObjectStorageAllNodesDeployment
1372 config: {get_resource: AllNodesValidationConfig}
1373 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1375 CephStorageAllNodesValidationDeployment:
1376 type: OS::Heat::StructuredDeployments
1377 depends_on: CephStorageAllNodesDeployment
1379 config: {get_resource: AllNodesValidationConfig}
1380 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1382 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1383 # the nested template may configure each role differently (or not at all)
1384 AllNodesExtraConfig:
1385 type: OS::TripleO::AllNodesExtraConfig
1387 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1388 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1389 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1390 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1391 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1393 # Nested stack deployment runs after all other controller deployments
1394 ControllerNodesPostDeployment:
1395 type: OS::TripleO::ControllerPostDeployment
1396 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1398 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1399 NodeConfigIdentifiers:
1400 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1401 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1402 deployment_identifier: {get_param: DeployIdentifier}
1404 ComputeNodesPostDeployment:
1405 type: OS::TripleO::ComputePostDeployment
1406 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1408 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1409 NodeConfigIdentifiers:
1410 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1411 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1412 deployment_identifier: {get_param: DeployIdentifier}
1414 ObjectStorageNodesPostDeployment:
1415 type: OS::TripleO::ObjectStoragePostDeployment
1416 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1418 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1419 NodeConfigIdentifiers:
1420 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1421 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1422 deployment_identifier: {get_param: DeployIdentifier}
1424 BlockStorageNodesPostDeployment:
1425 type: OS::TripleO::BlockStoragePostDeployment
1426 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1428 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1429 NodeConfigIdentifiers:
1430 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1431 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1432 deployment_identifier: {get_param: DeployIdentifier}
1434 CephStorageNodesPostDeployment:
1435 type: OS::TripleO::CephStoragePostDeployment
1436 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1438 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1439 NodeConfigIdentifiers:
1440 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1441 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1442 deployment_identifier: {get_param: DeployIdentifier}
1446 description: URL for the Overcloud Keystone service
1447 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1449 description: Keystone Admin VIP endpoint
1450 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1452 description: Controller VIP for public API endpoints
1453 value: {get_attr: [PublicVirtualIP, ip_address]}
1454 CeilometerInternalVip:
1455 description: VIP for Ceilometer API internal endpoint
1456 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1458 description: VIP for Cinder API internal endpoint
1459 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1461 description: VIP for Glance API internal endpoint
1462 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1464 description: VIP for Heat API internal endpoint
1465 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1466 KeystoneInternalVip:
1467 description: VIP for Keystone API internal endpoint
1468 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1470 description: VIP for Neutron API internal endpoint
1471 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1473 description: VIP for Nova API internal endpoint
1474 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1476 description: VIP for Swift Proxy internal endpoint
1477 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}