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 Nova key pair 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
371 ControllerSchedulerHints:
373 description: Optional scheduler hints to pass to nova
378 Additional configuration to inject into the cluster. The format required
379 may be implementation specific, e.g puppet hieradata. Any role specific
380 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
385 Pacemaker fencing configuration. The JSON should have
386 the following structure:
390 "agent": "AGENT_NAME",
391 "host_mac": "HOST_MAC_ADDRESS",
392 "params": {"PARAM_NAME": "PARAM_VALUE"}
400 "agent": "fence_xvm",
401 "host_mac": "52:54:00:aa:bb:cc",
403 "multicast_address": "225.0.0.12",
404 "port": "baremetal_0",
406 "manage_key_file": true,
407 "key_file": "/etc/fence_xvm.key",
408 "key_file_password": "abcdef"
415 description: The filepath of the file to use for logging messages from Glance.
418 GlanceNotifierStrategy:
419 description: Strategy to use for Glance notification queue
424 description: The password for the glance service account, used by the glance services.
429 description: The short name of the Glance backend to use. Should be one
430 of swift, rbd or file
433 - allowed_values: ['swift', 'file', 'rbd']
436 description: The password for the Heat service account, used by the Heat services.
439 HeatStackDomainAdminPassword:
440 description: Password for heat_domain_admin user.
444 InstanceNameTemplate:
445 default: 'instance-%08x'
446 description: Template string to be used to generate instance names
448 KeystoneCACertificate:
450 description: Keystone self-signed certificate authority certificate.
452 KeystoneSigningCertificate:
454 description: Keystone certificate for verifying token validity.
458 description: Keystone key for signing tokens.
461 KeystoneSSLCertificate:
463 description: Keystone certificate for verifying token validity.
465 KeystoneSSLCertificateKey:
467 description: Keystone key for signing tokens.
470 KeystoneNotificationDriver:
471 description: Comma-separated list of Oslo notification drivers used by Keystone
472 default: ['messaging']
473 type: comma_delimited_list
474 KeystoneNotificationFormat:
475 description: The Keystone notification format
479 - allowed_values: [ 'basic', 'cadf' ]
482 description: Whether to manage IPtables rules.
486 description: Whether IPtables rules should be purged before setting up the ones.
488 MysqlInnodbBufferPoolSize:
490 Specifies the size of the buffer pool in megabytes. Setting to
491 zero should be interpreted as "no value" and will defer to the
496 description: Configures MySQL max_connections config setting
499 NeutronDnsmasqOptions:
500 default: 'dhcp-option-force=26,1400'
501 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
503 NeutronPublicInterfaceDefaultRoute:
505 description: A custom default route for the NeutronPublicInterface.
507 NeutronPublicInterfaceIP:
509 description: A custom IP address to put onto the NeutronPublicInterface.
511 NeutronPublicInterfaceRawDevice:
513 description: If set, the public interface is a vlan with this device as the raw device.
515 PublicVirtualInterface:
518 Specifies the interface where the public-facing virtual ip will be assigned.
519 This should be int_public when a VLAN is being used.
523 description: A random string to be used as a salt when hashing to determine mappings in the ring.
528 description: The password for the swift service account, used by the swift proxy services.
533 description: Value of mount_check in Swift account/container/object -server.conf
538 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
541 description: Partition Power to use when building Swift rings
546 description: How many replicas to use in the swift rings.
548 # Compute-specific params
549 CeilometerComputeAgent:
550 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
554 - allowed_values: ['', Present]
558 HypervisorNeutronPhysicalBridge:
561 An OVS bridge to create on each hypervisor. This defaults to br-ex the
562 same as the control plane nodes, as we have a uniform configuration of
563 the openvswitch agent. Typically should not need to be changed.
565 HypervisorNeutronPublicInterface:
567 description: What interface to add to the HypervisorNeutronPhysicalBridge.
569 NeutronNetworkVLANRanges:
570 default: 'datacentre'
572 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
573 Neutron documentation for permitted values. Defaults to permitting any
574 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
575 type: comma_delimited_list
578 default: libvirt.LibvirtDriver
579 NovaComputeExtraConfig:
582 NovaCompute specific configuration to inject into the cluster. Same
583 structure as ExtraConfig.
585 NovaComputeLibvirtType:
588 NovaComputeLibvirtVifDriver:
590 description: Libvirt VIF driver configuration for the network
592 NovaComputeSchedulerHints:
594 description: Optional scheduler hints to pass to nova
596 NovaEnableRbdBackend:
598 description: Whether to enable or not the Rbd backend for Nova
602 default: overcloud-compute
604 - custom_constraint: glance.image
607 description: Name of integration bridge used by Open vSwitch
609 NovaSecurityGroupAPI:
611 description: The full class name of the security API class
613 OvercloudComputeFlavor:
614 description: Use this flavor
617 - custom_constraint: nova.flavor
620 NeutronTenantNetwork: tenant
621 CeilometerApiNetwork: internal_api
622 MongoDbNetwork: internal_api
623 CinderApiNetwork: internal_api
624 CinderIscsiNetwork: storage
625 GlanceApiNetwork: storage
626 GlanceRegistryNetwork: internal_api
627 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
628 KeystonePublicApiNetwork: internal_api
629 NeutronApiNetwork: internal_api
630 HeatApiNetwork: internal_api
631 NovaApiNetwork: internal_api
632 NovaMetadataNetwork: internal_api
633 NovaVncProxyNetwork: internal_api
634 SwiftMgmtNetwork: storage_mgmt
635 SwiftProxyNetwork: storage
636 HorizonNetwork: internal_api
637 MemcachedNetwork: internal_api
638 RabbitMqNetwork: internal_api
639 RedisNetwork: internal_api
640 MysqlNetwork: internal_api
641 CephClusterNetwork: storage_mgmt
642 CephPublicNetwork: storage
643 ControllerHostnameResolveNetwork: internal_api
644 ComputeHostnameResolveNetwork: internal_api
645 BlockStorageHostnameResolveNetwork: internal_api
646 ObjectStorageHostnameResolveNetwork: internal_api
647 CephStorageHostnameResolveNetwork: storage
648 description: Mapping of service_name -> network name. Typically set
649 via parameter_defaults in the resource registry.
652 # Block storage specific parameters
657 default: overcloud-cinder-volume
659 OvercloudBlockStorageFlavor:
660 description: Flavor for block storage nodes to request when deploying.
663 - custom_constraint: nova.flavor
664 BlockStorageExtraConfig:
667 BlockStorage specific configuration to inject into the cluster. Same
668 structure as ExtraConfig.
670 BlockStorageSchedulerHints:
672 description: Optional scheduler hints to pass to nova
676 # Object storage specific parameters
680 OvercloudSwiftStorageFlavor:
681 description: Flavor for Swift storage nodes to request when deploying.
684 - custom_constraint: nova.flavor
686 default: overcloud-swift-storage
688 ObjectStorageExtraConfig:
691 ObjectStorage specific configuration to inject into the cluster. Same
692 structure as ExtraConfig.
694 ObjectStorageSchedulerHints:
696 description: Optional scheduler hints to pass to nova
699 # Ceph storage specific parameters
704 default: overcloud-ceph-storage
706 OvercloudCephStorageFlavor:
708 description: Flavor for Ceph storage nodes to request when deploying.
711 - custom_constraint: nova.flavor
712 CephStorageExtraConfig:
715 CephStorage specific configuration to inject into the cluster. Same
716 structure as ExtraConfig.
718 CephStorageSchedulerHints:
720 description: Optional scheduler hints to pass to nova
724 # Hostname format for each role
725 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
726 # and %stackname% is replaced with OS::stack_name in the template below.
727 # If you want to use the heat generated names, pass '' (empty string).
728 ControllerHostnameFormat:
730 description: Format for Controller node hostnames
731 default: '%stackname%-controller-%index%'
732 ComputeHostnameFormat:
734 description: Format for Compute node hostnames
735 default: '%stackname%-novacompute-%index%'
736 BlockStorageHostnameFormat:
738 description: Format for BlockStorage node hostnames
739 default: '%stackname%-blockstorage-%index%'
740 ObjectStorageHostnameFormat:
742 description: Format for SwiftStorage node hostnames
743 default: '%stackname%-objectstorage-%index%'
744 CephStorageHostnameFormat:
746 description: Format for CephStorage node hostnames
747 default: '%stackname%-cephstorage-%index%'
749 # Identifiers to trigger tasks on nodes
754 Setting to a previously unused value during stack-update will trigger
755 package update on all nodes
760 Setting this to a unique value will re-run any deployment tasks which
761 perform configuration on a Heat stack-update.
763 # If you want to remove a specific node from a resource group, you can pass
764 # the node name or id as a <Group>RemovalPolicies parameter, for example:
765 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
766 ControllerRemovalPolicies:
770 List of resources to be removed from ControllerResourceGroup when
771 doing an update which requires removal of specific resources.
772 ComputeRemovalPolicies:
776 List of resources to be removed from ComputeResourceGroup when
777 doing an update which requires removal of specific resources.
778 BlockStorageRemovalPolicies:
782 List of resources to be removed from BlockStorageResourceGroup when
783 doing an update which requires removal of specific resources.
784 ObjectStorageRemovalPolicies:
788 List of resources to be removed from ObjectStorageResourceGroup when
789 doing an update which requires removal of specific resources.
790 CephStorageRemovalPolicies:
794 List of resources to be removed from CephStorageResourceGroup when
795 doing an update which requires removal of specific resources.
800 HeatAuthEncryptionKey:
801 type: OS::Heat::RandomString
804 type: OS::Heat::RandomString
809 type: OS::Heat::RandomString
814 type: OS::TripleO::EndpointMap
816 CloudName: {get_param: CloudName}
817 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
818 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
819 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
820 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
821 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
822 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
823 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
824 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
825 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
826 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
827 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
828 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
831 type: OS::Heat::ResourceGroup
834 count: {get_param: ControllerCount}
835 removal_policies: {get_param: ControllerRemovalPolicies}
837 type: OS::TripleO::Controller
839 AdminPassword: {get_param: AdminPassword}
840 AdminToken: {get_param: AdminToken}
841 CeilometerBackend: {get_param: CeilometerBackend}
842 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
843 CeilometerPassword: {get_param: CeilometerPassword}
844 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
845 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
846 CinderNfsServers: {get_param: CinderNfsServers}
847 CinderPassword: {get_param: CinderPassword}
848 CinderISCSIHelper: {get_param: CinderISCSIHelper}
849 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
850 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
851 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
852 CloudName: {get_param: CloudName}
853 CloudDomain: {get_param: CloudDomain}
854 ControlVirtualInterface: {get_param: ControlVirtualInterface}
855 ControllerExtraConfig: {get_param: controllerExtraConfig}
856 Debug: {get_param: Debug}
857 EnableFencing: {get_param: EnableFencing}
858 ManageFirewall: {get_param: ManageFirewall}
859 PurgeFirewallRules: {get_param: PurgeFirewallRules}
860 EnableGalera: {get_param: EnableGalera}
861 EnableCephStorage: {get_param: ControllerEnableCephStorage}
862 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
863 ExtraConfig: {get_param: ExtraConfig}
864 FencingConfig: {get_param: FencingConfig}
865 Flavor: {get_param: OvercloudControlFlavor}
866 GlancePassword: {get_param: GlancePassword}
867 GlanceBackend: {get_param: GlanceBackend}
868 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
869 GlanceLogFile: {get_param: GlanceLogFile}
870 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
871 HeatPassword: {get_param: HeatPassword}
872 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
873 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
874 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
875 HorizonSecret: {get_resource: HorizonSecret}
876 Image: {get_param: controllerImage}
877 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
878 InstanceNameTemplate: {get_param: InstanceNameTemplate}
879 KeyName: {get_param: KeyName}
880 KeystoneCACertificate: {get_param: KeystoneCACertificate}
881 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
882 KeystoneSigningKey: {get_param: KeystoneSigningKey}
883 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
884 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
885 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
886 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
887 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
888 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
889 MysqlMaxConnections: {get_param: MysqlMaxConnections}
890 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
891 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
892 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
893 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
894 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
895 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
896 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
897 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
898 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
899 NeutronPublicInterface: {get_param: NeutronPublicInterface}
900 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
901 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
902 NeutronPassword: {get_param: NeutronPassword}
903 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
904 NeutronDVR: {get_param: NeutronDVR}
905 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
906 NeutronAgentMode: {get_param: NeutronAgentMode}
907 NeutronCorePlugin: {get_param: NeutronCorePlugin}
908 NeutronServicePlugins: {get_param: NeutronServicePlugins}
909 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
910 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
911 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
912 NeutronL3HA: {get_param: NeutronL3HA}
913 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
914 NeutronNetworkType: {get_param: NeutronNetworkType}
915 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
916 NovaPassword: {get_param: NovaPassword}
917 NtpServer: {get_param: NtpServer}
918 MongoDbNoJournal: {get_param: MongoDbNoJournal}
919 PcsdPassword: {get_resource: PcsdPassword}
920 PublicVirtualInterface: {get_param: PublicVirtualInterface}
921 RabbitPassword: {get_param: RabbitPassword}
922 RabbitUserName: {get_param: RabbitUserName}
923 RabbitCookie: {get_attr: [RabbitCookie, value]}
924 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
925 RabbitClientPort: {get_param: RabbitClientPort}
926 RabbitFDLimit: {get_param: RabbitFDLimit}
927 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
928 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
929 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
930 SwiftHashSuffix: {get_param: SwiftHashSuffix}
931 SwiftMountCheck: {get_param: SwiftMountCheck}
932 SwiftMinPartHours: {get_param: SwiftMinPartHours}
933 SwiftPartPower: {get_param: SwiftPartPower}
934 SwiftPassword: {get_param: SwiftPassword}
935 SwiftReplicas: { get_param: SwiftReplicas}
936 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
937 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
938 ServiceNetMap: {get_param: ServiceNetMap}
939 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
940 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
941 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
942 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
943 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
944 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
945 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
946 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
947 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
948 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
949 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
950 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
951 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
952 UpdateIdentifier: {get_param: UpdateIdentifier}
955 template: {get_param: ControllerHostnameFormat}
957 '%stackname%': {get_param: 'OS::stack_name'}
959 ServerMetadata: {get_param: ServerMetadata}
960 SchedulerHints: {get_param: ControllerSchedulerHints}
963 type: OS::Heat::ResourceGroup
966 count: {get_param: ComputeCount}
967 removal_policies: {get_param: ComputeRemovalPolicies}
969 type: OS::TripleO::Compute
971 AdminPassword: {get_param: AdminPassword}
972 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
973 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
974 CeilometerPassword: {get_param: CeilometerPassword}
975 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
976 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
977 Debug: {get_param: Debug}
978 ExtraConfig: {get_param: ExtraConfig}
979 Flavor: {get_param: OvercloudComputeFlavor}
980 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
981 Image: {get_param: NovaImage}
982 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
983 KeyName: {get_param: KeyName}
984 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
985 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
986 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
987 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
988 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
989 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
990 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
991 NeutronNetworkType: {get_param: NeutronNetworkType}
992 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
993 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
994 NeutronPassword: {get_param: NeutronPassword}
995 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
996 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
997 NeutronDVR: {get_param: NeutronDVR}
998 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
999 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1000 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1001 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1002 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1003 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1004 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1005 # L3 HA and Failover is not relevant for Computes, should be removed
1006 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1007 NeutronL3HA: {get_param: NeutronL3HA}
1008 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1009 NovaComputeDriver: {get_param: NovaComputeDriver}
1010 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1011 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1012 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1013 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1014 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1015 NovaPassword: {get_param: NovaPassword}
1016 NovaOVSBridge: {get_param: NovaOVSBridge}
1017 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1018 NtpServer: {get_param: NtpServer}
1019 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1020 RabbitPassword: {get_param: RabbitPassword}
1021 RabbitUserName: {get_param: RabbitUserName}
1022 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1023 RabbitClientPort: {get_param: RabbitClientPort}
1024 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1025 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1026 ServiceNetMap: {get_param: ServiceNetMap}
1027 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1028 UpdateIdentifier: {get_param: UpdateIdentifier}
1031 template: {get_param: ComputeHostnameFormat}
1033 '%stackname%': {get_param: 'OS::stack_name'}
1034 CloudDomain: {get_param: CloudDomain}
1035 ServerMetadata: {get_param: ServerMetadata}
1036 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1039 type: OS::Heat::ResourceGroup
1040 depends_on: Networks
1042 count: {get_param: BlockStorageCount}
1043 removal_policies: {get_param: BlockStorageRemovalPolicies}
1045 type: OS::TripleO::BlockStorage
1047 Debug: {get_param: Debug}
1048 Image: {get_param: BlockStorageImage}
1049 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1050 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1051 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1052 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1053 CinderPassword: {get_param: CinderPassword}
1054 KeyName: {get_param: KeyName}
1055 Flavor: {get_param: OvercloudBlockStorageFlavor}
1056 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1057 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1058 RabbitPassword: {get_param: RabbitPassword}
1059 RabbitUserName: {get_param: RabbitUserName}
1060 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1061 RabbitClientPort: {get_param: RabbitClientPort}
1062 NtpServer: {get_param: NtpServer}
1063 UpdateIdentifier: {get_param: UpdateIdentifier}
1066 template: {get_param: BlockStorageHostnameFormat}
1068 '%stackname%': {get_param: 'OS::stack_name'}
1069 ServiceNetMap: {get_param: ServiceNetMap}
1070 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1071 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1072 ExtraConfig: {get_param: ExtraConfig}
1073 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1074 CloudDomain: {get_param: CloudDomain}
1075 ServerMetadata: {get_param: ServerMetadata}
1076 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1079 type: OS::Heat::ResourceGroup
1080 depends_on: Networks
1082 count: {get_param: ObjectStorageCount}
1083 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1085 type: OS::TripleO::ObjectStorage
1087 KeyName: {get_param: KeyName}
1088 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1089 HashSuffix: {get_param: SwiftHashSuffix}
1090 MountCheck: {get_param: SwiftMountCheck}
1091 MinPartHours: {get_param: SwiftMinPartHours}
1092 PartPower: {get_param: SwiftPartPower}
1093 Image: {get_param: SwiftStorageImage}
1094 Replicas: { get_param: SwiftReplicas}
1095 NtpServer: {get_param: NtpServer}
1096 UpdateIdentifier: {get_param: UpdateIdentifier}
1097 ServiceNetMap: {get_param: ServiceNetMap}
1100 template: {get_param: ObjectStorageHostnameFormat}
1102 '%stackname%': {get_param: 'OS::stack_name'}
1103 ExtraConfig: {get_param: ExtraConfig}
1104 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1105 CloudDomain: {get_param: CloudDomain}
1106 ServerMetadata: {get_param: ServerMetadata}
1107 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1110 type: OS::Heat::ResourceGroup
1111 depends_on: Networks
1113 count: {get_param: CephStorageCount}
1114 removal_policies: {get_param: CephStorageRemovalPolicies}
1116 type: OS::TripleO::CephStorage
1118 Image: {get_param: CephStorageImage}
1119 KeyName: {get_param: KeyName}
1120 Flavor: {get_param: OvercloudCephStorageFlavor}
1121 NtpServer: {get_param: NtpServer}
1122 ServiceNetMap: {get_param: ServiceNetMap}
1123 UpdateIdentifier: {get_param: UpdateIdentifier}
1126 template: {get_param: CephStorageHostnameFormat}
1128 '%stackname%': {get_param: 'OS::stack_name'}
1129 ExtraConfig: {get_param: ExtraConfig}
1130 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1131 CloudDomain: {get_param: CloudDomain}
1132 ServerMetadata: {get_param: ServerMetadata}
1133 SchedulerHints: {get_param: CephStorageSchedulerHints}
1135 ControllerIpListMap:
1136 type: OS::TripleO::Network::Ports::NetIpListMap
1138 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1139 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1140 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1141 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1142 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1143 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1146 type: OS::TripleO::AllNodes::SoftwareConfig
1148 compute_hosts: {get_attr: [Compute, hosts_entry]}
1149 controller_hosts: {get_attr: [Controller, hosts_entry]}
1150 controller_ips: {get_attr: [Controller, ip_address]}
1151 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1152 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1153 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1154 controller_names: {get_attr: [Controller, hostname]}
1155 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1156 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1157 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1158 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1159 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1160 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1161 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1162 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1163 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1164 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1165 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1166 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1167 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1168 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1169 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1170 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1171 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1172 DeployIdentifier: {get_param: DeployIdentifier}
1173 UpdateIdentifier: {get_param: UpdateIdentifier}
1176 type: OS::Heat::RandomString
1180 MysqlClusterUniquePart:
1181 type: OS::Heat::RandomString
1186 type: OS::Heat::RandomString
1189 salt: {get_param: RabbitCookieSalt}
1191 # creates the network architecture
1193 type: OS::TripleO::Network
1196 type: OS::Neutron::Port
1197 depends_on: Networks
1199 name: control_virtual_ip
1200 network: {get_param: NeutronControlPlaneID}
1201 fixed_ips: {get_param: ControlFixedIPs}
1202 replacement_policy: AUTO
1205 depends_on: Networks
1206 type: OS::TripleO::Controller::Ports::RedisVipPort
1208 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1209 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1210 PortName: redis_virtual_ip
1211 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1213 # The public VIP is on the External net, falls back to ctlplane
1215 depends_on: Networks
1216 type: OS::TripleO::Controller::Ports::ExternalPort
1218 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1219 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1220 PortName: public_virtual_ip
1221 FixedIPs: {get_param: PublicVirtualFixedIPs}
1223 InternalApiVirtualIP:
1224 depends_on: Networks
1225 type: OS::TripleO::Controller::Ports::InternalApiPort
1227 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1228 PortName: internal_api_virtual_ip
1231 depends_on: Networks
1232 type: OS::TripleO::Controller::Ports::StoragePort
1234 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1235 PortName: storage_virtual_ip
1237 StorageMgmtVirtualIP:
1238 depends_on: Networks
1239 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1241 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1242 PortName: storage_management_virtual_ip
1245 type: OS::TripleO::Network::Ports::NetVipMap
1247 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1248 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1249 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1250 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1251 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1252 # No tenant VIP required
1255 type: OS::TripleO::VipConfig
1258 type: OS::Heat::StructuredDeployments
1260 config: {get_resource: VipConfig}
1261 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1263 # service VIP mappings
1264 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1265 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1266 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1267 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1268 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1269 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1270 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1271 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1272 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1273 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1274 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1275 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1276 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1277 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1278 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1279 # direct configuration of Virtual IPs for each network
1280 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1281 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1282 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1283 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1284 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1286 ControllerBootstrapNodeConfig:
1287 type: OS::TripleO::BootstrapNode::SoftwareConfig
1289 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1290 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1292 ControllerBootstrapNodeDeployment:
1293 type: OS::Heat::StructuredDeployments
1295 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1296 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1298 ControllerSwiftDeployment:
1299 type: OS::Heat::StructuredDeployments
1301 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1302 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1304 ObjectStorageSwiftDeployment:
1305 type: OS::Heat::StructuredDeployments
1307 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1308 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1310 SwiftDevicesAndProxyConfig:
1311 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1313 controller_swift_devices: {get_attr: [Controller, swift_device]}
1314 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1315 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1317 ComputeCephDeployment:
1318 type: OS::Heat::StructuredDeployments
1320 config: {get_attr: [CephClusterConfig, config_id]}
1321 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1323 ControllerCephDeployment:
1324 type: OS::Heat::StructuredDeployments
1326 config: {get_attr: [CephClusterConfig, config_id]}
1327 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1329 CephStorageCephDeployment:
1330 type: OS::Heat::StructuredDeployments
1332 config: {get_attr: [CephClusterConfig, config_id]}
1333 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1336 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1338 ceph_storage_count: {get_param: CephStorageCount}
1339 ceph_fsid: {get_param: CephClusterFSID}
1340 ceph_mon_key: {get_param: CephMonKey}
1341 ceph_admin_key: {get_param: CephAdminKey}
1342 ceph_client_key: {get_param: CephClientKey}
1343 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1344 ceph_mon_names: {get_attr: [Controller, hostname]}
1345 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1347 ControllerClusterConfig:
1348 type: OS::Heat::StructuredConfig
1350 group: os-apply-config
1353 nodes: {get_attr: [Controller, corosync_node]}
1357 nodes: {get_attr: [Controller, hostname]}
1359 nodes: {get_attr: [Controller, corosync_node]}
1361 nodes: {get_attr: [Controller, corosync_node]}
1363 ControllerClusterDeployment:
1364 type: OS::Heat::StructuredDeployments
1366 config: {get_resource: ControllerClusterConfig}
1367 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1369 ControllerAllNodesDeployment:
1370 type: OS::Heat::StructuredDeployments
1372 config: {get_attr: [allNodesConfig, config_id]}
1373 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1375 ComputeAllNodesDeployment:
1376 type: OS::Heat::StructuredDeployments
1378 config: {get_attr: [allNodesConfig, config_id]}
1379 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1381 BlockStorageAllNodesDeployment:
1382 type: OS::Heat::StructuredDeployments
1384 config: {get_attr: [allNodesConfig, config_id]}
1385 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1387 ObjectStorageAllNodesDeployment:
1388 type: OS::Heat::StructuredDeployments
1390 config: {get_attr: [allNodesConfig, config_id]}
1391 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1393 CephStorageAllNodesDeployment:
1394 type: OS::Heat::StructuredDeployments
1396 config: {get_attr: [allNodesConfig, config_id]}
1397 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1399 # All Nodes Validations
1400 AllNodesValidationConfig:
1401 type: OS::TripleO::AllNodes::Validation
1406 - - {get_attr: [Controller, resource.0.external_ip_address]}
1407 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1408 - {get_attr: [Controller, resource.0.storage_ip_address]}
1409 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1410 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1412 ControllerAllNodesValidationDeployment:
1413 type: OS::Heat::StructuredDeployments
1414 depends_on: ControllerAllNodesDeployment
1416 config: {get_resource: AllNodesValidationConfig}
1417 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1419 ComputeAllNodesValidationDeployment:
1420 type: OS::Heat::StructuredDeployments
1421 depends_on: ComputeAllNodesDeployment
1423 config: {get_resource: AllNodesValidationConfig}
1424 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1426 BlockStorageAllNodesValidationDeployment:
1427 type: OS::Heat::StructuredDeployments
1428 depends_on: BlockStorageAllNodesDeployment
1430 config: {get_resource: AllNodesValidationConfig}
1431 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1433 ObjectStorageAllNodesValidationDeployment:
1434 type: OS::Heat::StructuredDeployments
1435 depends_on: ObjectStorageAllNodesDeployment
1437 config: {get_resource: AllNodesValidationConfig}
1438 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1440 CephStorageAllNodesValidationDeployment:
1441 type: OS::Heat::StructuredDeployments
1442 depends_on: CephStorageAllNodesDeployment
1444 config: {get_resource: AllNodesValidationConfig}
1445 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1447 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1448 # the nested template may configure each role differently (or not at all)
1449 AllNodesExtraConfig:
1450 type: OS::TripleO::AllNodesExtraConfig
1452 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1453 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1454 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1455 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1456 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1458 # Nested stack deployment runs after all other controller deployments
1459 ControllerNodesPostDeployment:
1460 type: OS::TripleO::ControllerPostDeployment
1461 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1463 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1464 NodeConfigIdentifiers:
1465 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1466 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1467 deployment_identifier: {get_param: DeployIdentifier}
1469 ComputeNodesPostDeployment:
1470 type: OS::TripleO::ComputePostDeployment
1471 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1473 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1474 NodeConfigIdentifiers:
1475 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1476 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1477 deployment_identifier: {get_param: DeployIdentifier}
1479 ObjectStorageNodesPostDeployment:
1480 type: OS::TripleO::ObjectStoragePostDeployment
1481 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1483 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1484 NodeConfigIdentifiers:
1485 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1486 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1487 deployment_identifier: {get_param: DeployIdentifier}
1489 BlockStorageNodesPostDeployment:
1490 type: OS::TripleO::BlockStoragePostDeployment
1491 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1493 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1494 NodeConfigIdentifiers:
1495 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1496 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1497 deployment_identifier: {get_param: DeployIdentifier}
1499 CephStorageNodesPostDeployment:
1500 type: OS::TripleO::CephStoragePostDeployment
1501 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1503 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1504 NodeConfigIdentifiers:
1505 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1506 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1507 deployment_identifier: {get_param: DeployIdentifier}
1511 description: URL for the Overcloud Keystone service
1512 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1514 description: Keystone Admin VIP endpoint
1515 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1517 description: Controller VIP for public API endpoints
1518 value: {get_attr: [VipMap, net_ip_map, external]}
1519 CeilometerInternalVip:
1520 description: VIP for Ceilometer API internal endpoint
1521 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1523 description: VIP for Cinder API internal endpoint
1524 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1526 description: VIP for Glance API internal endpoint
1527 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1529 description: VIP for Heat API internal endpoint
1530 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1531 KeystoneInternalVip:
1532 description: VIP for Keystone API internal endpoint
1533 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1535 description: VIP for Neutron API internal endpoint
1536 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1538 description: VIP for Nova API internal endpoint
1539 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1541 description: VIP for Swift Proxy internal endpoint
1542 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1545 The content that should be appended to your /etc/hosts if you want do get
1546 hostname-based access to the deployed nodes (useful for testing without
1548 value: {get_attr: [allNodesConfig, hosts_entries]}