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.
295 Extra properties or metadata passed to Nova for the created nodes in
296 the overcloud. It's accessible via the Nova metadata API.
299 # Controller-specific params
302 description: The keystone auth secret.
305 CinderLVMLoopDeviceSize:
307 description: The size of the loopback file used by the cinder LVM driver.
309 CinderNfsMountOptions:
312 Mount options for NFS mounts used by Cinder NFS backend. Effective
313 when CinderEnableNfsBackend is true.
318 NFS servers used by Cinder NFS backend. Effective when
319 CinderEnableNfsBackend is true.
320 type: comma_delimited_list
323 description: The password for the cinder service account, used by cinder-api.
328 description: The iSCSI helper to use with cinder.
335 controllerExtraConfig:
338 Controller specific configuration to inject into the cluster. Same
339 structure as ExtraConfig.
343 default: overcloud-control
345 - custom_constraint: glance.image
346 OvercloudControlFlavor:
347 description: Flavor for control nodes to request when deploying.
350 - custom_constraint: nova.flavor
351 ControlVirtualInterface:
353 description: Interface where virtual ip will be assigned.
357 description: Whether to enable fencing in Pacemaker or not.
361 description: Whether to use Galera instead of regular MariaDB.
363 ControllerEnableCephStorage:
365 description: Whether to deploy Ceph Storage (OSD) on the Controller
367 ControllerEnableSwiftStorage:
369 description: Whether to enable Swift Storage on the Controller
374 Additional configuration to inject into the cluster. The format required
375 may be implementation specific, e.g puppet hieradata. Any role specific
376 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
381 Pacemaker fencing configuration. The JSON should have
382 the following structure:
386 "agent": "AGENT_NAME",
387 "host_mac": "HOST_MAC_ADDRESS",
388 "params": {"PARAM_NAME": "PARAM_VALUE"}
396 "agent": "fence_xvm",
397 "host_mac": "52:54:00:aa:bb:cc",
399 "multicast_address": "225.0.0.12",
400 "port": "baremetal_0",
402 "manage_key_file": true,
403 "key_file": "/etc/fence_xvm.key",
404 "key_file_password": "abcdef"
411 description: The filepath of the file to use for logging messages from Glance.
414 GlanceNotifierStrategy:
415 description: Strategy to use for Glance notification queue
420 description: The password for the glance service account, used by the glance services.
425 description: The short name of the Glance backend to use. Should be one
426 of swift, rbd or file
429 - allowed_values: ['swift', 'file', 'rbd']
432 description: The password for the Heat service account, used by the Heat services.
435 HeatStackDomainAdminPassword:
436 description: Password for heat_domain_admin user.
440 InstanceNameTemplate:
441 default: 'instance-%08x'
442 description: Template string to be used to generate instance names
444 KeystoneCACertificate:
446 description: Keystone self-signed certificate authority certificate.
448 KeystoneSigningCertificate:
450 description: Keystone certificate for verifying token validity.
454 description: Keystone key for signing tokens.
457 KeystoneSSLCertificate:
459 description: Keystone certificate for verifying token validity.
461 KeystoneSSLCertificateKey:
463 description: Keystone key for signing tokens.
466 KeystoneNotificationDriver:
467 description: Comma-separated list of Oslo notification drivers used by Keystone
468 default: ['messaging']
469 type: comma_delimited_list
470 KeystoneNotificationFormat:
471 description: The Keystone notification format
475 - allowed_values: [ 'basic', 'cadf' ]
478 description: Whether to manage IPtables rules.
482 description: Whether IPtables rules should be purged before setting up the ones.
484 MysqlInnodbBufferPoolSize:
486 Specifies the size of the buffer pool in megabytes. Setting to
487 zero should be interpreted as "no value" and will defer to the
492 description: Configures MySQL max_connections config setting
495 NeutronDnsmasqOptions:
496 default: 'dhcp-option-force=26,1400'
497 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
499 NeutronPublicInterfaceDefaultRoute:
501 description: A custom default route for the NeutronPublicInterface.
503 NeutronPublicInterfaceIP:
505 description: A custom IP address to put onto the NeutronPublicInterface.
507 NeutronPublicInterfaceRawDevice:
509 description: If set, the public interface is a vlan with this device as the raw device.
511 PublicVirtualInterface:
514 Specifies the interface where the public-facing virtual ip will be assigned.
515 This should be int_public when a VLAN is being used.
519 description: A random string to be used as a salt when hashing to determine mappings in the ring.
524 description: The password for the swift service account, used by the swift proxy services.
529 description: Value of mount_check in Swift account/container/object -server.conf
534 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
537 description: Partition Power to use when building Swift rings
542 description: How many replicas to use in the swift rings.
544 # Compute-specific params
545 CeilometerComputeAgent:
546 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
550 - allowed_values: ['', Present]
554 HypervisorNeutronPhysicalBridge:
557 An OVS bridge to create on each hypervisor. This defaults to br-ex the
558 same as the control plane nodes, as we have a uniform configuration of
559 the openvswitch agent. Typically should not need to be changed.
561 HypervisorNeutronPublicInterface:
563 description: What interface to add to the HypervisorNeutronPhysicalBridge.
565 NeutronNetworkVLANRanges:
566 default: 'datacentre'
568 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
569 Neutron documentation for permitted values. Defaults to permitting any
570 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
571 type: comma_delimited_list
574 default: libvirt.LibvirtDriver
575 NovaComputeExtraConfig:
578 NovaCompute specific configuration to inject into the cluster. Same
579 structure as ExtraConfig.
581 NovaComputeLibvirtType:
584 NovaComputeLibvirtVifDriver:
586 description: Libvirt VIF driver configuration for the network
588 NovaEnableRbdBackend:
590 description: Whether to enable or not the Rbd backend for Nova
594 default: overcloud-compute
596 - custom_constraint: glance.image
599 description: Name of integration bridge used by Open vSwitch
601 NovaSecurityGroupAPI:
603 description: The full class name of the security API class
605 OvercloudComputeFlavor:
606 description: Use this flavor
609 - custom_constraint: nova.flavor
612 NeutronTenantNetwork: tenant
613 CeilometerApiNetwork: internal_api
614 MongoDbNetwork: internal_api
615 CinderApiNetwork: internal_api
616 CinderIscsiNetwork: storage
617 GlanceApiNetwork: storage
618 GlanceRegistryNetwork: internal_api
619 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
620 KeystonePublicApiNetwork: internal_api
621 NeutronApiNetwork: internal_api
622 HeatApiNetwork: internal_api
623 NovaApiNetwork: internal_api
624 NovaMetadataNetwork: internal_api
625 NovaVncProxyNetwork: internal_api
626 SwiftMgmtNetwork: storage_mgmt
627 SwiftProxyNetwork: storage
628 HorizonNetwork: internal_api
629 MemcachedNetwork: internal_api
630 RabbitMqNetwork: internal_api
631 RedisNetwork: internal_api
632 MysqlNetwork: internal_api
633 CephClusterNetwork: storage_mgmt
634 CephPublicNetwork: storage
635 ControllerHostnameResolveNetwork: internal_api
636 ComputeHostnameResolveNetwork: internal_api
637 BlockStorageHostnameResolveNetwork: internal_api
638 ObjectStorageHostnameResolveNetwork: internal_api
639 CephStorageHostnameResolveNetwork: storage
640 description: Mapping of service_name -> network name. Typically set
641 via parameter_defaults in the resource registry.
644 # Block storage specific parameters
649 default: overcloud-cinder-volume
651 OvercloudBlockStorageFlavor:
652 description: Flavor for block storage nodes to request when deploying.
655 - custom_constraint: nova.flavor
656 BlockStorageExtraConfig:
659 BlockStorage specific configuration to inject into the cluster. Same
660 structure as ExtraConfig.
663 # Object storage specific parameters
667 OvercloudSwiftStorageFlavor:
668 description: Flavor for Swift storage nodes to request when deploying.
671 - custom_constraint: nova.flavor
673 default: overcloud-swift-storage
675 ObjectStorageExtraConfig:
678 ObjectStorage specific configuration to inject into the cluster. Same
679 structure as ExtraConfig.
683 # Ceph storage specific parameters
688 default: overcloud-ceph-storage
690 OvercloudCephStorageFlavor:
692 description: Flavor for Ceph storage nodes to request when deploying.
695 - custom_constraint: nova.flavor
696 CephStorageExtraConfig:
699 CephStorage specific configuration to inject into the cluster. Same
700 structure as ExtraConfig.
703 # Hostname format for each role
704 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
705 # and %stackname% is replaced with OS::stack_name in the template below.
706 # If you want to use the heat generated names, pass '' (empty string).
707 ControllerHostnameFormat:
709 description: Format for Controller node hostnames
710 default: '%stackname%-controller-%index%'
711 ComputeHostnameFormat:
713 description: Format for Compute node hostnames
714 default: '%stackname%-novacompute-%index%'
715 BlockStorageHostnameFormat:
717 description: Format for BlockStorage node hostnames
718 default: '%stackname%-blockstorage-%index%'
719 ObjectStorageHostnameFormat:
721 description: Format for SwiftStorage node hostnames
722 default: '%stackname%-objectstorage-%index%'
723 CephStorageHostnameFormat:
725 description: Format for CephStorage node hostnames
726 default: '%stackname%-cephstorage-%index%'
728 # Identifiers to trigger tasks on nodes
733 Setting to a previously unused value during stack-update will trigger
734 package update on all nodes
739 Setting this to a unique value will re-run any deployment tasks which
740 perform configuration on a Heat stack-update.
742 # If you want to remove a specific node from a resource group, you can pass
743 # the node name or id as a <Group>RemovalPolicies parameter, for example:
744 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
745 ControllerRemovalPolicies:
749 List of resources to be removed from ControllerResourceGroup when
750 doing an update which requires removal of specific resources.
751 ComputeRemovalPolicies:
755 List of resources to be removed from ComputeResourceGroup when
756 doing an update which requires removal of specific resources.
757 BlockStorageRemovalPolicies:
761 List of resources to be removed from BlockStorageResourceGroup when
762 doing an update which requires removal of specific resources.
763 ObjectStorageRemovalPolicies:
767 List of resources to be removed from ObjectStorageResourceGroup when
768 doing an update which requires removal of specific resources.
769 CephStorageRemovalPolicies:
773 List of resources to be removed from CephStorageResourceGroup when
774 doing an update which requires removal of specific resources.
779 HeatAuthEncryptionKey:
780 type: OS::Heat::RandomString
783 type: OS::Heat::RandomString
788 type: OS::Heat::RandomString
793 type: OS::TripleO::EndpointMap
795 CloudName: {get_param: CloudName}
796 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
797 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
798 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
799 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
800 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
801 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
802 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
803 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
804 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
805 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
806 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
807 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
810 type: OS::Heat::ResourceGroup
813 count: {get_param: ControllerCount}
814 removal_policies: {get_param: ControllerRemovalPolicies}
816 type: OS::TripleO::Controller
818 AdminPassword: {get_param: AdminPassword}
819 AdminToken: {get_param: AdminToken}
820 CeilometerBackend: {get_param: CeilometerBackend}
821 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
822 CeilometerPassword: {get_param: CeilometerPassword}
823 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
824 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
825 CinderNfsServers: {get_param: CinderNfsServers}
826 CinderPassword: {get_param: CinderPassword}
827 CinderISCSIHelper: {get_param: CinderISCSIHelper}
828 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
829 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
830 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
831 CloudName: {get_param: CloudName}
832 CloudDomain: {get_param: CloudDomain}
833 ControlVirtualInterface: {get_param: ControlVirtualInterface}
834 ControllerExtraConfig: {get_param: controllerExtraConfig}
835 Debug: {get_param: Debug}
836 EnableFencing: {get_param: EnableFencing}
837 ManageFirewall: {get_param: ManageFirewall}
838 PurgeFirewallRules: {get_param: PurgeFirewallRules}
839 EnableGalera: {get_param: EnableGalera}
840 EnableCephStorage: {get_param: ControllerEnableCephStorage}
841 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
842 ExtraConfig: {get_param: ExtraConfig}
843 FencingConfig: {get_param: FencingConfig}
844 Flavor: {get_param: OvercloudControlFlavor}
845 GlancePassword: {get_param: GlancePassword}
846 GlanceBackend: {get_param: GlanceBackend}
847 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
848 GlanceLogFile: {get_param: GlanceLogFile}
849 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
850 HeatPassword: {get_param: HeatPassword}
851 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
852 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
853 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
854 HorizonSecret: {get_resource: HorizonSecret}
855 Image: {get_param: controllerImage}
856 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
857 InstanceNameTemplate: {get_param: InstanceNameTemplate}
858 KeyName: {get_param: KeyName}
859 KeystoneCACertificate: {get_param: KeystoneCACertificate}
860 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
861 KeystoneSigningKey: {get_param: KeystoneSigningKey}
862 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
863 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
864 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
865 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
866 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
867 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
868 MysqlMaxConnections: {get_param: MysqlMaxConnections}
869 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
870 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
871 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
872 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
873 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
874 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
875 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
876 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
877 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
878 NeutronPublicInterface: {get_param: NeutronPublicInterface}
879 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
880 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
881 NeutronPassword: {get_param: NeutronPassword}
882 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
883 NeutronDVR: {get_param: NeutronDVR}
884 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
885 NeutronAgentMode: {get_param: NeutronAgentMode}
886 NeutronCorePlugin: {get_param: NeutronCorePlugin}
887 NeutronServicePlugins: {get_param: NeutronServicePlugins}
888 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
889 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
890 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
891 NeutronL3HA: {get_param: NeutronL3HA}
892 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
893 NeutronNetworkType: {get_param: NeutronNetworkType}
894 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
895 NovaPassword: {get_param: NovaPassword}
896 NtpServer: {get_param: NtpServer}
897 MongoDbNoJournal: {get_param: MongoDbNoJournal}
898 PcsdPassword: {get_resource: PcsdPassword}
899 PublicVirtualInterface: {get_param: PublicVirtualInterface}
900 RabbitPassword: {get_param: RabbitPassword}
901 RabbitUserName: {get_param: RabbitUserName}
902 RabbitCookie: {get_attr: [RabbitCookie, value]}
903 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
904 RabbitClientPort: {get_param: RabbitClientPort}
905 RabbitFDLimit: {get_param: RabbitFDLimit}
906 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
907 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
908 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
909 SwiftHashSuffix: {get_param: SwiftHashSuffix}
910 SwiftMountCheck: {get_param: SwiftMountCheck}
911 SwiftMinPartHours: {get_param: SwiftMinPartHours}
912 SwiftPartPower: {get_param: SwiftPartPower}
913 SwiftPassword: {get_param: SwiftPassword}
914 SwiftReplicas: { get_param: SwiftReplicas}
915 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
916 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
917 ServiceNetMap: {get_param: ServiceNetMap}
918 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
919 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
920 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
921 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
922 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
923 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
924 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
925 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
926 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
927 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
928 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
929 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
930 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
931 UpdateIdentifier: {get_param: UpdateIdentifier}
934 template: {get_param: ControllerHostnameFormat}
936 '%stackname%': {get_param: 'OS::stack_name'}
938 ServerMetadata: {get_param: ServerMetadata}
941 type: OS::Heat::ResourceGroup
944 count: {get_param: ComputeCount}
945 removal_policies: {get_param: ComputeRemovalPolicies}
947 type: OS::TripleO::Compute
949 AdminPassword: {get_param: AdminPassword}
950 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
951 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
952 CeilometerPassword: {get_param: CeilometerPassword}
953 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
954 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
955 Debug: {get_param: Debug}
956 ExtraConfig: {get_param: ExtraConfig}
957 Flavor: {get_param: OvercloudComputeFlavor}
958 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
959 Image: {get_param: NovaImage}
960 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
961 KeyName: {get_param: KeyName}
962 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
963 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
964 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
965 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
966 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
967 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
968 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
969 NeutronNetworkType: {get_param: NeutronNetworkType}
970 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
971 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
972 NeutronPassword: {get_param: NeutronPassword}
973 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
974 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
975 NeutronDVR: {get_param: NeutronDVR}
976 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
977 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
978 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
979 NeutronCorePlugin: {get_param: NeutronCorePlugin}
980 NeutronServicePlugins: {get_param: NeutronServicePlugins}
981 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
982 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
983 # L3 HA and Failover is not relevant for Computes, should be removed
984 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
985 NeutronL3HA: {get_param: NeutronL3HA}
986 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
987 NovaComputeDriver: {get_param: NovaComputeDriver}
988 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
989 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
990 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
991 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
992 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
993 NovaPassword: {get_param: NovaPassword}
994 NovaOVSBridge: {get_param: NovaOVSBridge}
995 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
996 NtpServer: {get_param: NtpServer}
997 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
998 RabbitPassword: {get_param: RabbitPassword}
999 RabbitUserName: {get_param: RabbitUserName}
1000 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1001 RabbitClientPort: {get_param: RabbitClientPort}
1002 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1003 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1004 ServiceNetMap: {get_param: ServiceNetMap}
1005 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1006 UpdateIdentifier: {get_param: UpdateIdentifier}
1009 template: {get_param: ComputeHostnameFormat}
1011 '%stackname%': {get_param: 'OS::stack_name'}
1012 CloudDomain: {get_param: CloudDomain}
1013 ServerMetadata: {get_param: ServerMetadata}
1016 type: OS::Heat::ResourceGroup
1017 depends_on: Networks
1019 count: {get_param: BlockStorageCount}
1020 removal_policies: {get_param: BlockStorageRemovalPolicies}
1022 type: OS::TripleO::BlockStorage
1024 Debug: {get_param: Debug}
1025 Image: {get_param: BlockStorageImage}
1026 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1027 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1028 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1029 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1030 CinderPassword: {get_param: CinderPassword}
1031 KeyName: {get_param: KeyName}
1032 Flavor: {get_param: OvercloudBlockStorageFlavor}
1033 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1034 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1035 RabbitPassword: {get_param: RabbitPassword}
1036 RabbitUserName: {get_param: RabbitUserName}
1037 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1038 RabbitClientPort: {get_param: RabbitClientPort}
1039 NtpServer: {get_param: NtpServer}
1040 UpdateIdentifier: {get_param: UpdateIdentifier}
1043 template: {get_param: BlockStorageHostnameFormat}
1045 '%stackname%': {get_param: 'OS::stack_name'}
1046 ServiceNetMap: {get_param: ServiceNetMap}
1047 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1048 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1049 ExtraConfig: {get_param: ExtraConfig}
1050 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1051 CloudDomain: {get_param: CloudDomain}
1052 ServerMetadata: {get_param: ServerMetadata}
1055 type: OS::Heat::ResourceGroup
1056 depends_on: Networks
1058 count: {get_param: ObjectStorageCount}
1059 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1061 type: OS::TripleO::ObjectStorage
1063 KeyName: {get_param: KeyName}
1064 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1065 HashSuffix: {get_param: SwiftHashSuffix}
1066 MountCheck: {get_param: SwiftMountCheck}
1067 MinPartHours: {get_param: SwiftMinPartHours}
1068 PartPower: {get_param: SwiftPartPower}
1069 Image: {get_param: SwiftStorageImage}
1070 Replicas: { get_param: SwiftReplicas}
1071 NtpServer: {get_param: NtpServer}
1072 UpdateIdentifier: {get_param: UpdateIdentifier}
1073 ServiceNetMap: {get_param: ServiceNetMap}
1076 template: {get_param: ObjectStorageHostnameFormat}
1078 '%stackname%': {get_param: 'OS::stack_name'}
1079 ExtraConfig: {get_param: ExtraConfig}
1080 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1081 CloudDomain: {get_param: CloudDomain}
1082 ServerMetadata: {get_param: ServerMetadata}
1085 type: OS::Heat::ResourceGroup
1086 depends_on: Networks
1088 count: {get_param: CephStorageCount}
1089 removal_policies: {get_param: CephStorageRemovalPolicies}
1091 type: OS::TripleO::CephStorage
1093 Image: {get_param: CephStorageImage}
1094 KeyName: {get_param: KeyName}
1095 Flavor: {get_param: OvercloudCephStorageFlavor}
1096 NtpServer: {get_param: NtpServer}
1097 ServiceNetMap: {get_param: ServiceNetMap}
1098 UpdateIdentifier: {get_param: UpdateIdentifier}
1101 template: {get_param: CephStorageHostnameFormat}
1103 '%stackname%': {get_param: 'OS::stack_name'}
1104 ExtraConfig: {get_param: ExtraConfig}
1105 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1106 CloudDomain: {get_param: CloudDomain}
1107 ServerMetadata: {get_param: ServerMetadata}
1109 ControllerIpListMap:
1110 type: OS::TripleO::Network::Ports::NetIpListMap
1112 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1113 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1114 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1115 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1116 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1117 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1120 type: OS::TripleO::AllNodes::SoftwareConfig
1122 compute_hosts: {get_attr: [Compute, hosts_entry]}
1123 controller_hosts: {get_attr: [Controller, hosts_entry]}
1124 controller_ips: {get_attr: [Controller, ip_address]}
1125 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1126 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1127 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1128 controller_names: {get_attr: [Controller, hostname]}
1129 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1130 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1131 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1132 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1133 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1134 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1135 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1136 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1137 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1138 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1139 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1140 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1141 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1142 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1143 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1144 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1145 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1148 type: OS::Heat::RandomString
1152 MysqlClusterUniquePart:
1153 type: OS::Heat::RandomString
1158 type: OS::Heat::RandomString
1161 salt: {get_param: RabbitCookieSalt}
1163 # creates the network architecture
1165 type: OS::TripleO::Network
1168 type: OS::Neutron::Port
1169 depends_on: Networks
1171 name: control_virtual_ip
1172 network: {get_param: NeutronControlPlaneID}
1173 fixed_ips: {get_param: ControlFixedIPs}
1174 replacement_policy: AUTO
1177 depends_on: Networks
1178 type: OS::TripleO::Controller::Ports::RedisVipPort
1180 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1181 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1182 PortName: redis_virtual_ip
1183 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1185 # The public VIP is on the External net, falls back to ctlplane
1187 depends_on: Networks
1188 type: OS::TripleO::Controller::Ports::ExternalPort
1190 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1191 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1192 PortName: public_virtual_ip
1193 FixedIPs: {get_param: PublicVirtualFixedIPs}
1195 InternalApiVirtualIP:
1196 depends_on: Networks
1197 type: OS::TripleO::Controller::Ports::InternalApiPort
1199 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1200 PortName: internal_api_virtual_ip
1203 depends_on: Networks
1204 type: OS::TripleO::Controller::Ports::StoragePort
1206 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1207 PortName: storage_virtual_ip
1209 StorageMgmtVirtualIP:
1210 depends_on: Networks
1211 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1213 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1214 PortName: storage_management_virtual_ip
1217 type: OS::TripleO::Network::Ports::NetVipMap
1219 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1220 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1221 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1222 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1223 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1224 # No tenant VIP required
1227 type: OS::TripleO::VipConfig
1230 type: OS::Heat::StructuredDeployments
1233 config: {get_resource: VipConfig}
1234 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1236 # service VIP mappings
1237 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1238 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1239 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1240 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1241 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1242 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1243 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1244 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1245 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1246 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1247 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1248 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1249 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1250 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1251 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1252 # direct configuration of Virtual IPs for each network
1253 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1254 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1255 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1256 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1257 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1259 ControllerBootstrapNodeConfig:
1260 type: OS::TripleO::BootstrapNode::SoftwareConfig
1262 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1263 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1265 ControllerBootstrapNodeDeployment:
1266 type: OS::Heat::StructuredDeployments
1268 name: ControllerBootstrapNodeDeployment
1269 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1270 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1272 ControllerSwiftDeployment:
1273 type: OS::Heat::StructuredDeployments
1275 name: ControllerSwiftDeployment
1276 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1277 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1279 ObjectStorageSwiftDeployment:
1280 type: OS::Heat::StructuredDeployments
1282 name: ObjectStorageSwiftDeployment
1283 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1284 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1286 SwiftDevicesAndProxyConfig:
1287 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1289 controller_swift_devices: {get_attr: [Controller, swift_device]}
1290 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1291 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1293 ComputeCephDeployment:
1294 type: OS::Heat::StructuredDeployments
1296 name: ComputeCephDeployment
1297 config: {get_attr: [CephClusterConfig, config_id]}
1298 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1300 ControllerCephDeployment:
1301 type: OS::Heat::StructuredDeployments
1303 name: ControllerCephDeployment
1304 config: {get_attr: [CephClusterConfig, config_id]}
1305 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1307 CephStorageCephDeployment:
1308 type: OS::Heat::StructuredDeployments
1310 name: CephStorageCephDeployment
1311 config: {get_attr: [CephClusterConfig, config_id]}
1312 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1315 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1317 ceph_storage_count: {get_param: CephStorageCount}
1318 ceph_fsid: {get_param: CephClusterFSID}
1319 ceph_mon_key: {get_param: CephMonKey}
1320 ceph_admin_key: {get_param: CephAdminKey}
1321 ceph_client_key: {get_param: CephClientKey}
1322 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1323 ceph_mon_names: {get_attr: [Controller, hostname]}
1324 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1326 ControllerClusterConfig:
1327 type: OS::Heat::StructuredConfig
1329 group: os-apply-config
1332 nodes: {get_attr: [Controller, corosync_node]}
1336 nodes: {get_attr: [Controller, hostname]}
1338 nodes: {get_attr: [Controller, corosync_node]}
1340 nodes: {get_attr: [Controller, corosync_node]}
1342 ControllerClusterDeployment:
1343 type: OS::Heat::StructuredDeployments
1345 name: ControllerClusterDeployment
1346 config: {get_resource: ControllerClusterConfig}
1347 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1349 ControllerAllNodesDeployment:
1350 type: OS::Heat::StructuredDeployments
1352 name: ControllerAllNodesDeployment
1353 config: {get_attr: [allNodesConfig, config_id]}
1354 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1356 ComputeAllNodesDeployment:
1357 type: OS::Heat::StructuredDeployments
1359 name: ComputeAllNodesDeployment
1360 config: {get_attr: [allNodesConfig, config_id]}
1361 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1363 BlockStorageAllNodesDeployment:
1364 type: OS::Heat::StructuredDeployments
1366 name: BlockStorageAllNodesDeployment
1367 config: {get_attr: [allNodesConfig, config_id]}
1368 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1370 ObjectStorageAllNodesDeployment:
1371 type: OS::Heat::StructuredDeployments
1373 name: ObjectStorageAllNodesDeployment
1374 config: {get_attr: [allNodesConfig, config_id]}
1375 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1377 CephStorageAllNodesDeployment:
1378 type: OS::Heat::StructuredDeployments
1380 name: CephStorageAllNodesDeployment
1381 config: {get_attr: [allNodesConfig, config_id]}
1382 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1384 # All Nodes Validations
1385 AllNodesValidationConfig:
1386 type: OS::TripleO::AllNodes::Validation
1391 - - {get_attr: [Controller, resource.0.external_ip_address]}
1392 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1393 - {get_attr: [Controller, resource.0.storage_ip_address]}
1394 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1395 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1397 ControllerAllNodesValidationDeployment:
1398 type: OS::Heat::StructuredDeployments
1399 depends_on: ControllerAllNodesDeployment
1401 name: ControllerAllNodesValidationDeployment
1402 config: {get_resource: AllNodesValidationConfig}
1403 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1405 ComputeAllNodesValidationDeployment:
1406 type: OS::Heat::StructuredDeployments
1407 depends_on: ComputeAllNodesDeployment
1409 name: ComputeAllNodesValidationDeployment
1410 config: {get_resource: AllNodesValidationConfig}
1411 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1413 BlockStorageAllNodesValidationDeployment:
1414 type: OS::Heat::StructuredDeployments
1415 depends_on: BlockStorageAllNodesDeployment
1417 name: BlockStorageAllNodesValidationDeployment
1418 config: {get_resource: AllNodesValidationConfig}
1419 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1421 ObjectStorageAllNodesValidationDeployment:
1422 type: OS::Heat::StructuredDeployments
1423 depends_on: ObjectStorageAllNodesDeployment
1425 name: ObjectStorageAllNodesValidationDeployment
1426 config: {get_resource: AllNodesValidationConfig}
1427 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1429 CephStorageAllNodesValidationDeployment:
1430 type: OS::Heat::StructuredDeployments
1431 depends_on: CephStorageAllNodesDeployment
1433 name: CephStorageAllNodesValidationDeployment
1434 config: {get_resource: AllNodesValidationConfig}
1435 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1437 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1438 # the nested template may configure each role differently (or not at all)
1439 AllNodesExtraConfig:
1440 type: OS::TripleO::AllNodesExtraConfig
1442 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1443 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1444 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1445 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1446 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1448 # Nested stack deployment runs after all other controller deployments
1449 ControllerNodesPostDeployment:
1450 type: OS::TripleO::ControllerPostDeployment
1451 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1453 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1454 NodeConfigIdentifiers:
1455 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1456 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1457 deployment_identifier: {get_param: DeployIdentifier}
1459 ComputeNodesPostDeployment:
1460 type: OS::TripleO::ComputePostDeployment
1461 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1463 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1464 NodeConfigIdentifiers:
1465 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1466 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1467 deployment_identifier: {get_param: DeployIdentifier}
1469 ObjectStorageNodesPostDeployment:
1470 type: OS::TripleO::ObjectStoragePostDeployment
1471 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1473 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1474 NodeConfigIdentifiers:
1475 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1476 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1477 deployment_identifier: {get_param: DeployIdentifier}
1479 BlockStorageNodesPostDeployment:
1480 type: OS::TripleO::BlockStoragePostDeployment
1481 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1483 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1484 NodeConfigIdentifiers:
1485 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1486 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1487 deployment_identifier: {get_param: DeployIdentifier}
1489 CephStorageNodesPostDeployment:
1490 type: OS::TripleO::CephStoragePostDeployment
1491 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1493 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1494 NodeConfigIdentifiers:
1495 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1496 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1497 deployment_identifier: {get_param: DeployIdentifier}
1501 description: URL for the Overcloud Keystone service
1502 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1504 description: Keystone Admin VIP endpoint
1505 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1507 description: Controller VIP for public API endpoints
1508 value: {get_attr: [VipMap, net_ip_map, external]}
1509 CeilometerInternalVip:
1510 description: VIP for Ceilometer API internal endpoint
1511 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1513 description: VIP for Cinder API internal endpoint
1514 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1516 description: VIP for Glance API internal endpoint
1517 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1519 description: VIP for Heat API internal endpoint
1520 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1521 KeystoneInternalVip:
1522 description: VIP for Keystone API internal endpoint
1523 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1525 description: VIP for Neutron API internal endpoint
1526 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1528 description: VIP for Nova API internal endpoint
1529 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1531 description: VIP for Swift Proxy internal endpoint
1532 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}