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 default: 'localdomain'
290 The DNS domain used for the hosts. This should match the dhcp_domain
291 configured in the Undercloud neutron. Defaults to localdomain.
293 # Controller-specific params
296 description: The keystone auth secret.
299 CinderLVMLoopDeviceSize:
301 description: The size of the loopback file used by the cinder LVM driver.
303 CinderNfsMountOptions:
306 Mount options for NFS mounts used by Cinder NFS backend. Effective
307 when CinderEnableNfsBackend is true.
312 NFS servers used by Cinder NFS backend. Effective when
313 CinderEnableNfsBackend is true.
314 type: comma_delimited_list
317 description: The password for the cinder service account, used by cinder-api.
322 description: The iSCSI helper to use with cinder.
329 controllerExtraConfig:
332 Controller specific configuration to inject into the cluster. Same
333 structure as ExtraConfig.
337 default: overcloud-control
339 - custom_constraint: glance.image
340 OvercloudControlFlavor:
341 description: Flavor for control nodes to request when deploying.
344 - custom_constraint: nova.flavor
345 ControlVirtualInterface:
347 description: Interface where virtual ip will be assigned.
351 description: Whether to enable fencing in Pacemaker or not.
355 description: Whether to use Galera instead of regular MariaDB.
357 ControllerEnableCephStorage:
359 description: Whether to deploy Ceph Storage (OSD) on the Controller
361 ControllerEnableSwiftStorage:
363 description: Whether to enable Swift Storage on the Controller
368 Additional configuration to inject into the cluster. The format required
369 may be implementation specific, e.g puppet hieradata. Any role specific
370 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
375 Pacemaker fencing configuration. The JSON should have
376 the following structure:
380 "agent": "AGENT_NAME",
381 "host_mac": "HOST_MAC_ADDRESS",
382 "params": {"PARAM_NAME": "PARAM_VALUE"}
390 "agent": "fence_xvm",
391 "host_mac": "52:54:00:aa:bb:cc",
393 "multicast_address": "225.0.0.12",
394 "port": "baremetal_0",
396 "manage_key_file": true,
397 "key_file": "/etc/fence_xvm.key",
398 "key_file_password": "abcdef"
405 description: The filepath of the file to use for logging messages from Glance.
408 GlanceNotifierStrategy:
409 description: Strategy to use for Glance notification queue
414 description: The password for the glance service account, used by the glance services.
419 description: The short name of the Glance backend to use. Should be one
420 of swift, rbd or file
423 - allowed_values: ['swift', 'file', 'rbd']
426 description: The password for the Heat service account, used by the Heat services.
429 HeatStackDomainAdminPassword:
430 description: Password for heat_domain_admin user.
434 KeystoneCACertificate:
436 description: Keystone self-signed certificate authority certificate.
438 KeystoneSigningCertificate:
440 description: Keystone certificate for verifying token validity.
444 description: Keystone key for signing tokens.
447 KeystoneSSLCertificate:
449 description: Keystone certificate for verifying token validity.
451 KeystoneSSLCertificateKey:
453 description: Keystone key for signing tokens.
456 KeystoneNotificationDriver:
457 description: Comma-separated list of Oslo notification drivers used by Keystone
458 default: ['messaging']
459 type: comma_delimited_list
460 KeystoneNotificationFormat:
461 description: The Keystone notification format
465 - allowed_values: [ 'basic', 'cadf' ]
468 description: Whether to manage IPtables rules.
472 description: Whether IPtables rules should be purged before setting up the ones.
474 MysqlInnodbBufferPoolSize:
476 Specifies the size of the buffer pool in megabytes. Setting to
477 zero should be interpreted as "no value" and will defer to the
482 description: Configures MySQL max_connections config setting
485 NeutronDnsmasqOptions:
486 default: 'dhcp-option-force=26,1400'
487 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
489 NeutronPublicInterfaceDefaultRoute:
491 description: A custom default route for the NeutronPublicInterface.
493 NeutronPublicInterfaceIP:
495 description: A custom IP address to put onto the NeutronPublicInterface.
497 NeutronPublicInterfaceRawDevice:
499 description: If set, the public interface is a vlan with this device as the raw device.
501 PublicVirtualInterface:
504 Specifies the interface where the public-facing virtual ip will be assigned.
505 This should be int_public when a VLAN is being used.
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 CloudDomain: {get_param: CloudDomain}
811 ControlVirtualInterface: {get_param: ControlVirtualInterface}
812 ControllerExtraConfig: {get_param: controllerExtraConfig}
813 Debug: {get_param: Debug}
814 EnableFencing: {get_param: EnableFencing}
815 ManageFirewall: {get_param: ManageFirewall}
816 PurgeFirewallRules: {get_param: PurgeFirewallRules}
817 EnableGalera: {get_param: EnableGalera}
818 EnableCephStorage: {get_param: ControllerEnableCephStorage}
819 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
820 ExtraConfig: {get_param: ExtraConfig}
821 FencingConfig: {get_param: FencingConfig}
822 Flavor: {get_param: OvercloudControlFlavor}
823 GlancePassword: {get_param: GlancePassword}
824 GlanceBackend: {get_param: GlanceBackend}
825 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
826 GlanceLogFile: {get_param: GlanceLogFile}
827 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
828 HeatPassword: {get_param: HeatPassword}
829 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
830 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
831 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
832 HorizonSecret: {get_resource: HorizonSecret}
833 Image: {get_param: controllerImage}
834 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
835 KeyName: {get_param: KeyName}
836 KeystoneCACertificate: {get_param: KeystoneCACertificate}
837 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
838 KeystoneSigningKey: {get_param: KeystoneSigningKey}
839 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
840 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
841 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
842 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
843 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
844 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
845 MysqlMaxConnections: {get_param: MysqlMaxConnections}
846 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
847 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
848 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
849 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
850 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
851 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
852 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
853 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
854 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
855 NeutronPublicInterface: {get_param: NeutronPublicInterface}
856 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
857 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
858 NeutronPassword: {get_param: NeutronPassword}
859 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
860 NeutronDVR: {get_param: NeutronDVR}
861 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
862 NeutronAgentMode: {get_param: NeutronAgentMode}
863 NeutronCorePlugin: {get_param: NeutronCorePlugin}
864 NeutronServicePlugins: {get_param: NeutronServicePlugins}
865 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
866 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
867 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
868 NeutronL3HA: {get_param: NeutronL3HA}
869 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
870 NeutronNetworkType: {get_param: NeutronNetworkType}
871 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
872 NovaPassword: {get_param: NovaPassword}
873 NtpServer: {get_param: NtpServer}
874 MongoDbNoJournal: {get_param: MongoDbNoJournal}
875 PcsdPassword: {get_resource: PcsdPassword}
876 PublicVirtualInterface: {get_param: PublicVirtualInterface}
877 RabbitPassword: {get_param: RabbitPassword}
878 RabbitUserName: {get_param: RabbitUserName}
879 RabbitCookie: {get_attr: [RabbitCookie, value]}
880 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
881 RabbitClientPort: {get_param: RabbitClientPort}
882 RabbitFDLimit: {get_param: RabbitFDLimit}
883 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
884 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
885 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
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: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
893 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
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 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
908 UpdateIdentifier: {get_param: UpdateIdentifier}
911 template: {get_param: ControllerHostnameFormat}
913 '%stackname%': {get_param: 'OS::stack_name'}
917 type: OS::Heat::ResourceGroup
920 count: {get_param: ComputeCount}
921 removal_policies: {get_param: ComputeRemovalPolicies}
923 type: OS::TripleO::Compute
925 AdminPassword: {get_param: AdminPassword}
926 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
927 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
928 CeilometerPassword: {get_param: CeilometerPassword}
929 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
930 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
931 Debug: {get_param: Debug}
932 ExtraConfig: {get_param: ExtraConfig}
933 Flavor: {get_param: OvercloudComputeFlavor}
934 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
935 Image: {get_param: NovaImage}
936 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
937 KeyName: {get_param: KeyName}
938 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
939 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
940 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
941 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
942 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
943 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
944 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
945 NeutronNetworkType: {get_param: NeutronNetworkType}
946 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
947 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
948 NeutronPassword: {get_param: NeutronPassword}
949 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
950 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
951 NeutronDVR: {get_param: NeutronDVR}
952 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
953 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
954 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
955 NeutronCorePlugin: {get_param: NeutronCorePlugin}
956 NeutronServicePlugins: {get_param: NeutronServicePlugins}
957 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
958 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
959 # L3 HA and Failover is not relevant for Computes, should be removed
960 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
961 NeutronL3HA: {get_param: NeutronL3HA}
962 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
963 NovaComputeDriver: {get_param: NovaComputeDriver}
964 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
965 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
966 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
967 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
968 NovaPassword: {get_param: NovaPassword}
969 NtpServer: {get_param: NtpServer}
970 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
971 RabbitPassword: {get_param: RabbitPassword}
972 RabbitUserName: {get_param: RabbitUserName}
973 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
974 RabbitClientPort: {get_param: RabbitClientPort}
975 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
976 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
977 ServiceNetMap: {get_param: ServiceNetMap}
978 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
979 UpdateIdentifier: {get_param: UpdateIdentifier}
982 template: {get_param: ComputeHostnameFormat}
984 '%stackname%': {get_param: 'OS::stack_name'}
985 CloudDomain: {get_param: CloudDomain}
988 type: OS::Heat::ResourceGroup
991 count: {get_param: BlockStorageCount}
992 removal_policies: {get_param: BlockStorageRemovalPolicies}
994 type: OS::TripleO::BlockStorage
996 Debug: {get_param: Debug}
997 Image: {get_param: BlockStorageImage}
998 CinderISCSIHelper: {get_param: CinderISCSIHelper}
999 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1000 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1001 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1002 CinderPassword: {get_param: CinderPassword}
1003 KeyName: {get_param: KeyName}
1004 Flavor: {get_param: OvercloudBlockStorageFlavor}
1005 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1006 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1007 RabbitPassword: {get_param: RabbitPassword}
1008 RabbitUserName: {get_param: RabbitUserName}
1009 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1010 RabbitClientPort: {get_param: RabbitClientPort}
1011 NtpServer: {get_param: NtpServer}
1012 UpdateIdentifier: {get_param: UpdateIdentifier}
1015 template: {get_param: BlockStorageHostnameFormat}
1017 '%stackname%': {get_param: 'OS::stack_name'}
1018 ServiceNetMap: {get_param: ServiceNetMap}
1019 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1020 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1021 ExtraConfig: {get_param: ExtraConfig}
1022 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1023 CloudDomain: {get_param: CloudDomain}
1026 type: OS::Heat::ResourceGroup
1027 depends_on: Networks
1029 count: {get_param: ObjectStorageCount}
1030 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1032 type: OS::TripleO::ObjectStorage
1034 KeyName: {get_param: KeyName}
1035 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1036 HashSuffix: {get_param: SwiftHashSuffix}
1037 MountCheck: {get_param: SwiftMountCheck}
1038 MinPartHours: {get_param: SwiftMinPartHours}
1039 PartPower: {get_param: SwiftPartPower}
1040 Image: {get_param: SwiftStorageImage}
1041 Replicas: { get_param: SwiftReplicas}
1042 NtpServer: {get_param: NtpServer}
1043 UpdateIdentifier: {get_param: UpdateIdentifier}
1044 ServiceNetMap: {get_param: ServiceNetMap}
1047 template: {get_param: ObjectStorageHostnameFormat}
1049 '%stackname%': {get_param: 'OS::stack_name'}
1050 ExtraConfig: {get_param: ExtraConfig}
1051 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1052 CloudDomain: {get_param: CloudDomain}
1055 type: OS::Heat::ResourceGroup
1056 depends_on: Networks
1058 count: {get_param: CephStorageCount}
1059 removal_policies: {get_param: CephStorageRemovalPolicies}
1061 type: OS::TripleO::CephStorage
1063 Image: {get_param: CephStorageImage}
1064 KeyName: {get_param: KeyName}
1065 Flavor: {get_param: OvercloudCephStorageFlavor}
1066 NtpServer: {get_param: NtpServer}
1067 ServiceNetMap: {get_param: ServiceNetMap}
1068 UpdateIdentifier: {get_param: UpdateIdentifier}
1071 template: {get_param: CephStorageHostnameFormat}
1073 '%stackname%': {get_param: 'OS::stack_name'}
1074 ExtraConfig: {get_param: ExtraConfig}
1075 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1076 CloudDomain: {get_param: CloudDomain}
1078 ControllerIpListMap:
1079 type: OS::TripleO::Network::Ports::NetIpListMap
1081 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1082 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1083 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1084 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1085 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1086 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1089 type: OS::TripleO::AllNodes::SoftwareConfig
1091 compute_hosts: {get_attr: [Compute, hosts_entry]}
1092 controller_hosts: {get_attr: [Controller, hosts_entry]}
1093 controller_ips: {get_attr: [Controller, ip_address]}
1094 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1095 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1096 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1097 controller_names: {get_attr: [Controller, hostname]}
1098 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1099 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1100 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1101 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1102 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1103 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1104 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1105 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1106 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1107 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1108 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1109 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1110 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1111 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1112 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1113 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1114 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1117 type: OS::Heat::RandomString
1121 MysqlClusterUniquePart:
1122 type: OS::Heat::RandomString
1127 type: OS::Heat::RandomString
1130 salt: {get_param: RabbitCookieSalt}
1132 # creates the network architecture
1134 type: OS::TripleO::Network
1137 type: OS::Neutron::Port
1138 depends_on: Networks
1140 name: control_virtual_ip
1141 network: {get_param: NeutronControlPlaneID}
1142 fixed_ips: {get_param: ControlFixedIPs}
1143 replacement_policy: AUTO
1146 depends_on: Networks
1147 type: OS::TripleO::Controller::Ports::RedisVipPort
1149 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1150 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1151 PortName: redis_virtual_ip
1152 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1154 # The public VIP is on the External net, falls back to ctlplane
1156 depends_on: Networks
1157 type: OS::TripleO::Controller::Ports::ExternalPort
1159 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1160 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1161 PortName: public_virtual_ip
1162 FixedIPs: {get_param: PublicVirtualFixedIPs}
1164 InternalApiVirtualIP:
1165 depends_on: Networks
1166 type: OS::TripleO::Controller::Ports::InternalApiPort
1168 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1169 PortName: internal_api_virtual_ip
1172 depends_on: Networks
1173 type: OS::TripleO::Controller::Ports::StoragePort
1175 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1176 PortName: storage_virtual_ip
1178 StorageMgmtVirtualIP:
1179 depends_on: Networks
1180 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1182 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1183 PortName: storage_management_virtual_ip
1186 type: OS::TripleO::Network::Ports::NetVipMap
1188 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1189 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1190 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1191 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1192 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1193 # No tenant VIP required
1196 type: OS::TripleO::VipConfig
1199 type: OS::Heat::StructuredDeployments
1201 config: {get_resource: VipConfig}
1202 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1204 # service VIP mappings
1205 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1206 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1207 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1208 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1209 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1210 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1211 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1212 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1213 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1214 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1215 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1216 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1217 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1218 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1219 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1220 # direct configuration of Virtual IPs for each network
1221 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1222 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1223 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1224 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1225 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1227 ControllerBootstrapNodeConfig:
1228 type: OS::TripleO::BootstrapNode::SoftwareConfig
1230 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1231 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1233 ControllerBootstrapNodeDeployment:
1234 type: OS::Heat::StructuredDeployments
1236 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1237 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1239 ControllerSwiftDeployment:
1240 type: OS::Heat::StructuredDeployments
1242 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1243 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1245 ObjectStorageSwiftDeployment:
1246 type: OS::Heat::StructuredDeployments
1248 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1249 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1251 SwiftDevicesAndProxyConfig:
1252 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1254 controller_swift_devices: {get_attr: [Controller, swift_device]}
1255 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1256 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1258 ComputeCephDeployment:
1259 type: OS::Heat::StructuredDeployments
1261 config: {get_attr: [CephClusterConfig, config_id]}
1262 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1264 ControllerCephDeployment:
1265 type: OS::Heat::StructuredDeployments
1267 config: {get_attr: [CephClusterConfig, config_id]}
1268 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1270 CephStorageCephDeployment:
1271 type: OS::Heat::StructuredDeployments
1273 config: {get_attr: [CephClusterConfig, config_id]}
1274 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1277 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1279 ceph_storage_count: {get_param: CephStorageCount}
1280 ceph_fsid: {get_param: CephClusterFSID}
1281 ceph_mon_key: {get_param: CephMonKey}
1282 ceph_admin_key: {get_param: CephAdminKey}
1283 ceph_client_key: {get_param: CephClientKey}
1284 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1285 ceph_mon_names: {get_attr: [Controller, hostname]}
1286 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1288 ControllerClusterConfig:
1289 type: OS::Heat::StructuredConfig
1291 group: os-apply-config
1294 nodes: {get_attr: [Controller, corosync_node]}
1298 nodes: {get_attr: [Controller, hostname]}
1300 nodes: {get_attr: [Controller, corosync_node]}
1302 nodes: {get_attr: [Controller, corosync_node]}
1304 ControllerClusterDeployment:
1305 type: OS::Heat::StructuredDeployments
1307 config: {get_resource: ControllerClusterConfig}
1308 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1310 ControllerAllNodesDeployment:
1311 type: OS::Heat::StructuredDeployments
1313 config: {get_attr: [allNodesConfig, config_id]}
1314 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1316 ComputeAllNodesDeployment:
1317 type: OS::Heat::StructuredDeployments
1319 config: {get_attr: [allNodesConfig, config_id]}
1320 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1322 BlockStorageAllNodesDeployment:
1323 type: OS::Heat::StructuredDeployments
1325 config: {get_attr: [allNodesConfig, config_id]}
1326 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1328 ObjectStorageAllNodesDeployment:
1329 type: OS::Heat::StructuredDeployments
1331 config: {get_attr: [allNodesConfig, config_id]}
1332 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1334 CephStorageAllNodesDeployment:
1335 type: OS::Heat::StructuredDeployments
1337 config: {get_attr: [allNodesConfig, config_id]}
1338 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1340 # All Nodes Validations
1341 AllNodesValidationConfig:
1342 type: OS::TripleO::AllNodes::Validation
1347 - - {get_attr: [Controller, resource.0.external_ip_address]}
1348 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1349 - {get_attr: [Controller, resource.0.storage_ip_address]}
1350 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1351 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1353 ControllerAllNodesValidationDeployment:
1354 type: OS::Heat::StructuredDeployments
1355 depends_on: ControllerAllNodesDeployment
1357 config: {get_resource: AllNodesValidationConfig}
1358 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1360 ComputeAllNodesValidationDeployment:
1361 type: OS::Heat::StructuredDeployments
1362 depends_on: ComputeAllNodesDeployment
1364 config: {get_resource: AllNodesValidationConfig}
1365 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1367 BlockStorageAllNodesValidationDeployment:
1368 type: OS::Heat::StructuredDeployments
1369 depends_on: BlockStorageAllNodesDeployment
1371 config: {get_resource: AllNodesValidationConfig}
1372 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1374 ObjectStorageAllNodesValidationDeployment:
1375 type: OS::Heat::StructuredDeployments
1376 depends_on: ObjectStorageAllNodesDeployment
1378 config: {get_resource: AllNodesValidationConfig}
1379 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1381 CephStorageAllNodesValidationDeployment:
1382 type: OS::Heat::StructuredDeployments
1383 depends_on: CephStorageAllNodesDeployment
1385 config: {get_resource: AllNodesValidationConfig}
1386 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1388 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1389 # the nested template may configure each role differently (or not at all)
1390 AllNodesExtraConfig:
1391 type: OS::TripleO::AllNodesExtraConfig
1393 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1394 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1395 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1396 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1397 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1399 # Nested stack deployment runs after all other controller deployments
1400 ControllerNodesPostDeployment:
1401 type: OS::TripleO::ControllerPostDeployment
1402 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1404 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1405 NodeConfigIdentifiers:
1406 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1407 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1408 deployment_identifier: {get_param: DeployIdentifier}
1410 ComputeNodesPostDeployment:
1411 type: OS::TripleO::ComputePostDeployment
1412 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1414 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1415 NodeConfigIdentifiers:
1416 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1417 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1418 deployment_identifier: {get_param: DeployIdentifier}
1420 ObjectStorageNodesPostDeployment:
1421 type: OS::TripleO::ObjectStoragePostDeployment
1422 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1424 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1425 NodeConfigIdentifiers:
1426 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1427 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1428 deployment_identifier: {get_param: DeployIdentifier}
1430 BlockStorageNodesPostDeployment:
1431 type: OS::TripleO::BlockStoragePostDeployment
1432 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1434 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1435 NodeConfigIdentifiers:
1436 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1437 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1438 deployment_identifier: {get_param: DeployIdentifier}
1440 CephStorageNodesPostDeployment:
1441 type: OS::TripleO::CephStoragePostDeployment
1442 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1444 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1445 NodeConfigIdentifiers:
1446 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1447 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1448 deployment_identifier: {get_param: DeployIdentifier}
1452 description: URL for the Overcloud Keystone service
1453 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1455 description: Keystone Admin VIP endpoint
1456 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1458 description: Controller VIP for public API endpoints
1459 value: {get_attr: [VipMap, net_ip_map, external]}
1460 CeilometerInternalVip:
1461 description: VIP for Ceilometer API internal endpoint
1462 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1464 description: VIP for Cinder API internal endpoint
1465 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1467 description: VIP for Glance API internal endpoint
1468 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1470 description: VIP for Heat API internal endpoint
1471 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1472 KeystoneInternalVip:
1473 description: VIP for Keystone API internal endpoint
1474 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1476 description: VIP for Neutron API internal endpoint
1477 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1479 description: VIP for Nova API internal endpoint
1480 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1482 description: VIP for Swift Proxy internal endpoint
1483 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}