1 description: Nova API,Keystone,Heat Engine and API,Glance,Neutron,Dedicated MySQL
2 server,Dedicated RabbitMQ Server,Group of Nova Computes
3 heat_template_version: 2013-05-23
7 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
12 description: The keystone auth secret.
15 CeilometerComputeAgent:
16 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
20 - allowed_values: ['', Present]
21 CeilometerMeteringSecret:
23 description: Secret shared by the ceilometer services.
28 description: The password for the ceilometer service account.
33 description: The iSCSI helper to use with cinder.
35 CinderLVMLoopDeviceSize:
37 description: The size of the loopback file used by the cinder LVM driver.
41 description: The password for the cinder service account, used by cinder-api.
46 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
50 description: Should be used for arbitrary ips.
52 controllerExtraConfig:
55 Controller specific configuration to inject into the cluster. Same
56 structure as ExtraConfig.
60 default: overcloud-control
62 - custom_constraint: glance.image
63 ControlVirtualInterface:
65 description: Interface where virtual ip will be assigned.
69 description: Set to True to enable debugging on all services.
71 DefaultSignalTransport:
73 description: Transport to use for software-config signals.
76 - allowed_values: [ CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL ]
80 Additional configuration to inject into the cluster. The JSON should have
81 the following structure:
84 [{"section": "SECTIONNAME",
86 [{"option": "OPTIONNAME",
97 [{"section": "default",
99 [{"option": "force_config_drive",
106 [{"option": "driver",
107 "value": "nova.cells.rpc_driver.CellsRPCDriver"
116 description: The filepath of the file to use for logging messages from Glance.
121 description: The password for the glance service account, used by the glance services.
126 description: Glance port.
130 description: Protocol to use when connecting to glance, set to https for SSL.
132 GlanceNotifierStrategy:
133 description: Strategy to use for Glance notification queue
138 description: The password for the Heat service account, used by the Heat services.
141 HeatStackDomainAdminPassword:
142 description: Password for heat_domain_admin user.
146 HypervisorNeutronPhysicalBridge:
149 An OVS bridge to create on each hypervisor. This defaults to br-ex the
150 same as the control plane nodes, as we have a uniform configuration of
151 the openvswitch agent. Typically should not need to be changed.
153 HypervisorNeutronPublicInterface:
155 description: What interface to add to the HypervisorNeutronPhysicalBridge.
158 default: 'REBUILD_PRESERVE_EPHEMERAL'
159 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
163 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
166 - custom_constraint: nova.keypair
167 KeystoneCACertificate:
169 description: Keystone self-signed certificate authority certificate.
171 KeystoneSigningCertificate:
173 description: Keystone certificate for verifying token validity.
177 description: Keystone key for signing tokens.
180 KeystoneSSLCertificate:
182 description: Keystone certificate for verifying token validity.
184 KeystoneSSLCertificateKey:
186 description: Keystone key for signing tokens.
189 MysqlInnodbBufferPoolSize:
191 Specifies the size of the buffer pool in megabytes. Setting to
192 zero should be interpreted as "no value" and will defer to the
196 NeutronBridgeMappings:
198 The OVS logical->physical bridge mappings to use. See the Neutron
199 documentation for details. Defaults to mapping br-ex - the external
200 bridge on hosts - to a physical name 'datacentre' which can be used
201 to create provider networks (and we use this for the default floating
202 network) - if changing this either use different post-install network
203 scripts or be sure to keep 'datacentre' as a mapping network name.
205 default: "datacentre:br-ex"
206 NeutronControlPlaneID:
209 description: Neutron ID for ctlplane network.
210 NeutronDnsmasqOptions:
211 default: 'dhcp-option-force=26,1400'
212 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
216 default: 'datacentre'
218 If set, flat networks to configure in neutron plugins. Defaults to
219 'datacentre' to permit external network creation.
222 description: The tenant network type for Neutron, either gre or vxlan.
224 NeutronNetworkVLANRanges:
225 default: 'datacentre'
227 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
228 Neutron documentation for permitted values. Defaults to permitting any
229 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
233 description: The password for the neutron service account, used by neutron agents.
236 NeutronPublicInterface:
238 description: What interface to bridge onto br-ex for network nodes.
240 NeutronPublicInterfaceDefaultRoute:
242 description: A custom default route for the NeutronPublicInterface.
244 NeutronPublicInterfaceIP:
246 description: A custom IP address to put onto the NeutronPublicInterface.
248 NeutronPublicInterfaceRawDevice:
250 description: If set, the public interface is a vlan with this device as the raw device.
252 NeutronPublicInterfaceTag:
255 VLAN tag for creating a public VLAN. The tag will be used to
256 create an access port on the exterior bridge for each control plane node,
257 and that port will be given the IP address returned by neutron from the
258 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
259 overcloud.yaml to include the deployment of VLAN ports to the control
262 NeutronComputeAgentMode:
264 description: Agent mode for the neutron-l3-agent on the compute hosts
268 description: Agent mode for the neutron-l3-agent on the controller hosts
272 description: Whether to configure Neutron Distributed Virtual Routers
274 NeutronMetadataProxySharedSecret:
276 description: Shared secret to prevent spoofing
281 The tunnel types for the Neutron tenant network. To specify multiple
282 values, use a comma separated string, like so: 'gre,vxlan'
284 NeutronMechanismDrivers:
285 default: 'openvswitch'
287 The mechanism drivers for the Neutron tenant network. To specify multiple
288 values, use a comma separated string, like so: 'openvswitch,l2_population'
290 NeutronAllowL3AgentFailover:
292 description: Allow automatic l3-agent failover
295 default: libvirt.LibvirtDriver
297 NovaComputeExtraConfig:
300 NovaCompute specific configuration to inject into the cluster. Same
301 structure as ExtraConfig.
303 NovaComputeLibvirtType:
308 default: overcloud-compute
310 - custom_constraint: glance.image
313 description: The password for the nova service account, used by nova-api.
319 OvercloudComputeFlavor:
320 description: Flavor for compute nodes to request when deploying.
323 - custom_constraint: nova.flavor
324 OvercloudControlFlavor:
325 description: Flavor for control nodes to request when deploying.
328 - custom_constraint: nova.flavor
329 PublicVirtualFixedIPs:
332 Control the IP allocation for the PublicVirtualInterface port. E.g.
333 [{'ip_address':'1.2.3.4'}]
335 PublicVirtualInterface:
338 Specifies the interface where the public-facing virtual ip will be assigned.
339 This should be int_public when a VLAN is being used.
341 PublicVirtualNetwork:
345 Neutron network to allocate public virtual IP port on.
349 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
352 description: The password for RabbitMQ
357 description: The username for RabbitMQ
362 Rabbit client subscriber parameter to specify
363 an SSL connection to the RabbitMQ host.
367 description: Set rabbit subscriber port, change this if using SSL
369 SnmpdReadonlyUserName:
370 default: ro_snmp_user
371 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
373 SnmpdReadonlyUserPassword:
375 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
380 type: OS::Neutron::Port
382 name: control_virtual_ip
383 network_id: {get_param: NeutronControlPlaneID}
385 get_param: ControlFixedIPs
386 replacement_policy: AUTO
387 MysqlClusterUniquePart:
388 type: OS::Heat::RandomString
392 type: OS::Heat::RandomString
396 type: OS::Neutron::Port
398 name: public_virtual_ip
399 network: {get_param: PublicVirtualNetwork}
401 get_param: PublicVirtualFixedIPs
402 replacement_policy: AUTO
404 type: OS::Heat::RandomString
408 get_param: RabbitCookieSalt
409 NovaCompute0Deployment:
411 Path: nova-compute-instance.yaml
412 SubKey: resources.NovaCompute0Deployment
414 DefaultSignalTransport:
415 get_param: DefaultSignalTransport
416 NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
417 KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
418 NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
419 GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
420 RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
421 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
425 - - mysql://ceilometer:unset@
426 - &compute_database_host {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
429 get_param: NeutronNetworkType
431 get_param: NeutronTunnelTypes
432 NeutronEnableTunnelling: "True"
434 get_param: NeutronFlatNetworks
435 NeutronNetworkVLANRanges:
436 get_param: NeutronNetworkVLANRanges
437 NeutronPhysicalBridge:
438 get_param: HypervisorNeutronPhysicalBridge
439 NeutronPublicInterface:
440 get_param: HypervisorNeutronPublicInterface
441 NeutronBridgeMappings:
442 get_param: NeutronBridgeMappings
444 get_param: NeutronDVR
446 get_param: NeutronComputeAgentMode
447 NeutronPublicInterfaceRawDevice:
448 get_param: NeutronPublicInterfaceRawDevice
449 NeutronMechanismDrivers:
450 get_param: NeutronMechanismDrivers
451 NeutronAllowL3AgentFailover:
452 get_param: NeutronAllowL3AgentFailover
453 NovaCompute0AllNodesDeployment:
455 Path: nova-compute-instance.yaml
456 SubKey: resources.NovaCompute0AllNodesDeployment
458 AllNodesConfig: {get_resource: allNodesConfig}
461 Path: nova-compute-instance.yaml
462 SubKey: resources.NovaCompute0
463 NovaCompute0Passthrough:
465 Path: nova-compute-instance.yaml
466 SubKey: resources.NovaCompute0Passthrough
468 passthrough_config: {get_param: ExtraConfig}
469 NovaCompute0PassthroughSpecific:
471 Path: nova-compute-instance.yaml
472 SubKey: resources.NovaCompute0PassthroughSpecific
474 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
476 type: OS::Heat::StructuredConfig
478 group: os-apply-config
481 get_param: AdminPassword
483 get_param: AdminToken
486 get_param: NeutronPublicInterfaceIP
498 nodeid: {get_input: bootstack_nodeid}
501 {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
506 - - mysql://cinder:unset@
509 debug: {get_param: Debug}
511 get_param: CinderLVMLoopDeviceSize
513 get_param: CinderPassword
515 get_param: CinderISCSIHelper
517 get_input: controller_host
519 bindnetaddr: {get_input: controller_host}
524 ip: {get_attr: [controller0, networks, ctlplane, 0]}
526 stonith_enabled : false
528 quorum_policy : ignore
532 host: {get_input: controller_virtual_ip}
537 - - mysql://glance:unset@
540 debug: {get_param: Debug}
542 get_input: controller_virtual_ip
544 get_param: GlancePort
546 get_param: GlanceProtocol
548 get_param: GlancePassword
549 swift-store-user: service:glance
551 get_param: GlancePassword
553 get_param: GlanceNotifierStrategy
555 get_param: GlanceLogFile
558 get_param: HeatPassword
559 admin_tenant_name: service
561 auth_encryption_key: unset___________
565 - - mysql://heat:unset@
568 debug: {get_param: Debug}
569 stack_domain_admin_password: {get_param: HeatStackDomainAdminPassword}
570 watch_server_url: {get_input: heat.watch_server_url}
571 metadata_server_url: {get_input: heat.metadata_server_url}
572 waitcondition_server_url: {get_input: heat.waitcondition_server_url}
579 {get_attr: [controller0, name]}
584 - - mysql://keystone:unset@
587 debug: {get_param: Debug}
589 get_input: controller_virtual_ip
590 ca_certificate: {get_param: KeystoneCACertificate}
591 signing_key: {get_param: KeystoneSigningKey}
592 signing_certificate: {get_param: KeystoneSigningCertificate}
594 certificate: {get_param: KeystoneSSLCertificate}
595 certificate_key: {get_param: KeystoneSSLCertificateKey}
597 innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize}
599 root-password: {get_resource: MysqlRootPassword}
603 ip: {get_attr: [controller0, networks, ctlplane, 0]}
608 - {get_resource: MysqlClusterUniquePart}
610 debug: {get_param: Debug}
611 flat-networks: {get_param: NeutronFlatNetworks}
612 host: {get_input: controller_virtual_ip}
613 metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
614 agent_mode: {get_param: NeutronAgentMode}
615 router_distributed: {get_param: NeutronDVR}
616 mechanism_drivers: {get_param: NeutronMechanismDrivers}
617 allow_automatic_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
619 enable_tunneling: 'True'
621 get_input: controller_host
622 network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
623 bridge_mappings: {get_param: NeutronBridgeMappings}
625 get_param: NeutronPublicInterface
626 public_interface_raw_device:
627 get_param: NeutronPublicInterfaceRawDevice
628 public_interface_route:
629 get_param: NeutronPublicInterfaceDefaultRoute
630 public_interface_tag:
631 get_param: NeutronPublicInterfaceTag
632 physical_bridge: br-ex
634 get_param: NeutronNetworkType
636 get_param: NeutronTunnelTypes
640 - - mysql://neutron:unset@
642 - /ovs_neutron?charset=utf8
644 get_param: NeutronPassword
646 get_param: NeutronDnsmasqOptions
651 - - mysql://ceilometer:unset@
654 debug: {get_param: Debug}
655 metering_secret: {get_param: CeilometerMeteringSecret}
657 get_param: CeilometerPassword
659 export_MIB: UCD-SNMP-MIB
661 get_param: SnmpdReadonlyUserName
662 readonly_user_password:
663 get_param: SnmpdReadonlyUserPassword
665 compute_driver: libvirt.LibvirtDriver
669 - - mysql://nova:unset@
672 default_floating_pool:
674 host: {get_input: controller_virtual_ip}
677 get_param: NovaPassword
679 host: {get_input: controller_virtual_ip}
681 get_param: RabbitUserName
683 get_param: RabbitPassword
688 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
689 rabbit_port: {get_param: RabbitClientPort}
692 - {server: {get_param: NtpServer}, fudge: "stratum 0"}
695 - vrrp_instance_name: VI_CONTROL
696 virtual_router_id: 51
698 get_param: ControlVirtualInterface
701 - ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
703 get_param: ControlVirtualInterface
704 - vrrp_instance_name: VI_PUBLIC
705 virtual_router_id: 52
707 get_param: PublicVirtualInterface
710 - ip: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
712 get_param: PublicVirtualInterface
720 get_param: PublicVirtualInterface
724 ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
726 get_param: ControlVirtualInterface
728 ip: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
730 get_param: PublicVirtualInterface
735 ip: {get_attr: [controller0, networks, ctlplane, 0]}
736 name: {get_attr: [controller0, name]}
738 - &control_vip {ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}}
739 - &public_vip {ip: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}}
741 - option httpchk GET /
743 - name: keystone_admin
745 - name: keystone_public
755 - name: glance_registry
757 options: # overwrite options as glace_reg needs auth for http req
760 - name: heat_cloudwatch
777 - name: nova_metadata
779 - name: nova_novncproxy
783 options: # overwrite options as ceil needs auth for http req
784 - name: swift_proxy_server
787 - option httpchk GET /info
796 controllerPassthrough:
797 type: OS::Heat::StructuredConfig
799 group: os-apply-config
800 config: {get_input: passthrough_config}
801 controllerPassthroughSpecific:
802 type: OS::Heat::StructuredConfig
804 group: os-apply-config
805 config: {get_input: passthrough_config_specific}
807 type: OS::Nova::Server
810 get_param: controllerImage
812 get_param: ImageUpdatePolicy
814 get_param: OvercloudControlFlavor
819 user_data_format: SOFTWARE_CONFIG
820 controller0AllNodesDeployment:
821 depends_on: [controller0Deployment,controller0SSLDeployment,controller0Swift,controller0PassthroughSpecific]
822 type: OS::Heat::StructuredDeployment
824 signal_transport: {get_param: DefaultSignalTransport}
825 config: {get_resource: allNodesConfig}
826 server: {get_resource: controller0}
827 controller0Deployment:
828 type: OS::Heat::StructuredDeployment
830 signal_transport: NO_SIGNAL
831 config: {get_resource: controllerConfig}
832 server: {get_resource: controller0}
834 bootstack_nodeid: {get_attr: [controller0, name]}
835 controller_host: {get_attr: [controller0, networks, ctlplane, 0]}
836 controller_virtual_ip:
837 {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
838 heat.watch_server_url:
842 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
844 heat.metadata_server_url:
848 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
850 heat.waitcondition_server_url:
854 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
855 - ':8000/v1/waitcondition'
857 type: OS::Heat::StructuredConfig
860 completion-signal: {get_input: deploy_signal_id}
870 - - {get_attr: [NovaCompute0, networks, ctlplane, 0]}
871 - {get_attr: [NovaCompute0, name]}
874 - - {get_attr: [NovaCompute0, name]}
882 - - {get_attr: [BlockStorage0, networks, ctlplane, 0]}
883 - {get_attr: [BlockStorage0, name]}
886 - - {get_attr: [BlockStorage0, name]}
894 - - {get_attr: [SwiftStorage0, networks, ctlplane, 0]}
895 - {get_attr: [SwiftStorage0, name]}
898 - - {get_attr: [SwiftStorage0, name]}
906 - - {get_attr: [controller0, networks, ctlplane, 0]}
907 - {get_attr: [controller0, name]}
910 - - {get_attr: [controller0, name]}
912 - {get_param: CloudName}
919 {get_attr: [controller0, name]}
921 net.ipv4.tcp_keepalive_time: 5
922 net.ipv4.tcp_keepalive_probes: 5
923 net.ipv4.tcp_keepalive_intvl: 1
924 controller0SSLDeployment:
925 type: OS::Heat::StructuredDeployment
927 config: {get_resource: SSLConfig}
928 server: {get_resource: controller0}
929 signal_transport: NO_SIGNAL
931 controller_host: {get_attr: [controller0, networks, ctlplane, 0]}
932 ssl_certificate: {get_param: SSLCertificate}
933 ssl_key: {get_param: SSLKey}
934 ssl_ca_certificate: {get_param: SSLCACertificate}
935 controller0Passthrough:
936 type: OS::Heat::StructuredDeployment
938 config: {get_resource: controllerPassthrough}
939 server: {get_resource: controller0}
940 signal_transport: NO_SIGNAL
942 passthrough_config: {get_param: ExtraConfig}
943 controller0PassthroughSpecific:
944 depends_on: [controller0Passthrough]
945 type: OS::Heat::StructuredDeployment
947 config: {get_resource: controllerPassthroughSpecific}
948 server: {get_resource: controller0}
949 signal_transport: NO_SIGNAL
951 passthrough_config_specific: {get_param: controllerExtraConfig}
954 description: URL for the Overcloud Keystone service
959 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}