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.
17 description: The password for the cinder service account, used by cinder-api.
22 description: The iSCSI helper to use with cinder.
24 CinderLVMLoopDeviceSize:
26 description: The size of the loopback file used by the cinder LVM driver.
31 Additional configuration to inject into the cluster. The JSON should have
32 the following structure:
35 [{"section": "SECTIONNAME",
37 [{"option": "OPTIONNAME",
48 [{"section": "default",
50 [{"option": "compute_manager",
51 "value": "ironic.nova.compute.manager.ClusterComputeManager"
58 "value": "nova.cells.rpc_driver.CellsRPCDriver"
66 OvercloudControlFlavor:
68 description: Flavor for control nodes to request when deploying.
70 OvercloudComputeFlavor:
72 description: Flavor for compute nodes to request when deploying.
76 description: Glance port.
80 description: Protocol to use when connecting to glance, set to https for SSL.
84 description: The password for the glance service account, used by the glance services.
87 GlanceNotifierStrategy:
88 description: Strategy to use for Glance notification queue
92 description: The filepath of the file to use for logging messages from Glance.
97 description: The password for the Heat service account, used by the Heat services.
101 default: 'REBUILD_PRESERVE_EPHEMERAL'
102 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
106 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
108 NeutronBridgeMappings:
109 description: The OVS logical->physical bridge mappings to use.
114 description: The password for the neutron service account, used by neutron agents.
117 CeilometerComputeAgent:
118 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
122 - allowed_values: ['', Present]
123 CeilometerMeteringSecret:
125 description: Secret shared by the ceilometer services.
130 description: The password for the ceilometer service account.
133 SnmpdReadonlyUserName:
134 default: ro_snmp_user
135 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
137 SnmpdReadonlyUserPassword:
139 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
144 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
147 default: libvirt.LibvirtDriver
149 NovaComputeLibvirtType:
154 default: overcloud-compute
157 description: The password for the nova service account, used by nova-api.
163 description: If set, flat networks to configure in neutron plugins.
164 HypervisorNeutronPhysicalBridge:
166 description: An OVS bridge to create on each hypervisor.
168 HypervisorNeutronPublicInterface:
170 description: What interface to add to the HypervisorNeutronPhysicalBridge.
172 NeutronPublicInterface:
174 description: What interface to bridge onto br-ex for network nodes.
176 NeutronPublicInterfaceDefaultRoute:
178 description: A custom default route for the NeutronPublicInterface.
180 NeutronPublicInterfaceIP:
182 description: A custom IP address to put onto the NeutronPublicInterface.
184 NeutronPublicInterfaceTag:
187 VLAN tag for creating a public VLAN. The tag will be used to
188 create an access port on the exterior bridge for each control plane node,
189 and that port will be given the IP address returned by neutron from the
190 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
191 overcloud.yaml to include the deployment of VLAN ports to the control
194 NeutronPublicInterfaceRawDevice:
196 description: If set, the public interface is a vlan with this device as the raw device.
198 NeutronControlPlaneID:
201 description: Neutron ID for ctlplane network.
202 NeutronDnsmasqOptions:
203 default: 'dhcp-option-force=26,1400'
204 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the gre tunnel overhead.
208 default: overcloud-control
214 description: The username for RabbitMQ
218 description: The password for RabbitMQ
224 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
225 HeatStackDomainAdminPassword:
226 description: Password for heat_domain_admin user.
232 description: The live-update username for the undercloud Glance API.
234 LiveUpdateTenantName:
236 description: The live-update tenant name for the undercloud Glance API.
240 description: The IP address for the undercloud Glance API.
245 description: The live-update password for the undercloud Glance API.
247 LiveUpdateComputeImage:
249 description: The image ID for live-updates to the overcloud compute nodes.
251 MysqlInnodbBufferPoolSize:
253 Specifies the size of the buffer pool in megabytes. Setting to
254 zero should be interpreted as "no value" and will defer to the
258 ControlVirtualInterface:
260 description: Interface where virtual ip will be assigned.
264 description: Should be used for arbitrary ips.
266 PublicVirtualFixedIPs:
269 Control the IP allocation for the PublicVirtualInterface port. E.g.
270 [{'ip_address':'1.2.3.4'}]
272 PublicVirtualInterface:
275 Specifies the interface where the public-facing virtual ip will be assigned.
276 This should be int_public when a VLAN is being used.
278 PublicVirtualNetwork:
282 Neutron network to allocate public virtual IP port on.
283 KeystoneCACertificate:
285 description: Keystone self-signed certificate authority certificate.
287 KeystoneSigningCertificate:
289 description: Keystone certificate for verifying token validity.
293 description: Keystone key for signing tokens.
298 type: OS::Neutron::Port
300 name: control_virtual_ip
301 network_id: {get_param: NeutronControlPlaneID}
303 get_param: ControlFixedIPs
304 MysqlClusterUniquePart:
305 type: OS::Heat::RandomString
309 type: OS::Neutron::Port
311 name: public_virtual_ip
312 network: {get_param: PublicVirtualNetwork}
314 get_param: PublicVirtualFixedIPs
316 type: OS::Heat::RandomString
320 get_param: RabbitCookieSalt
323 Path: nova-compute-instance.yaml
324 SubKey: resources.NovaCompute0Deploy
326 NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
327 KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
328 NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
329 GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
330 RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
334 - - mysql://nova:unset@
335 - &compute_database_host {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
340 - - mysql://ceilometer:unset@
341 - *compute_database_host
346 - - mysql://neutron:unset@
347 - *compute_database_host
349 NeutronNetworkType: "gre"
350 NeutronEnableTunnelling: "True"
352 get_param: NeutronFlatNetworks
353 NeutronNetworkVLANRanges: ""
354 NeutronPhysicalBridge:
355 get_param: HypervisorNeutronPhysicalBridge
356 NeutronPublicInterface:
357 get_param: HypervisorNeutronPublicInterface
358 NeutronBridgeMappings:
359 get_param: NeutronBridgeMappings
360 NovaCompute0AllNodes:
362 Path: nova-compute-instance.yaml
363 SubKey: resources.NovaCompute0AllNodesDeploy
365 AllNodesConfig: {get_resource: allNodesConfig}
366 NovaCompute0Passthrough:
368 Path: nova-compute-instance.yaml
369 SubKey: resources.NovaCompute0Passthrough
371 passthrough_config: {get_param: ExtraConfig}
374 Path: nova-compute-instance.yaml
375 SubKey: resources.NovaCompute0
377 type: OS::Heat::StructuredConfig
379 group: os-apply-config
382 get_param: AdminPassword
384 get_param: AdminToken
387 get_param: NeutronPublicInterfaceIP
401 nodeid: {get_input: bootstack_nodeid}
404 {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
409 - - mysql://cinder:unset@
413 get_param: CinderLVMLoopDeviceSize
415 get_param: CinderPassword
417 get_param: CinderISCSIHelper
419 get_input: controller_host
421 bindnetaddr: {get_input: controller_host}
426 ip: {get_attr: [controller0, networks, ctlplane, 0]}
428 stonith_enabled : false
430 quorum_policy : ignore
434 host: {get_input: controller_virtual_ip}
439 - - mysql://glance:unset@
443 get_input: controller_virtual_ip
445 get_param: GlancePort
447 get_param: GlanceProtocol
449 get_param: GlancePassword
450 swift-store-user: service:glance
452 get_param: GlancePassword
454 get_param: GlanceNotifierStrategy
456 get_param: GlanceLogFile
459 get_param: HeatPassword
460 admin_tenant_name: service
462 auth_encryption_key: unset___________
466 - - mysql://heat:unset@
469 stack_domain_admin_password: {get_param: HeatStackDomainAdminPassword}
470 watch_server_url: {get_input: heat.watch_server_url}
471 metadata_server_url: {get_input: heat.metadata_server_url}
472 waitcondition_server_url: {get_input: heat.waitcondition_server_url}
479 {get_attr: [controller0, show, name]}
484 - - mysql://keystone:unset@
488 get_input: controller_virtual_ip
489 ca_certificate: {get_param: KeystoneCACertificate}
490 signing_key: {get_param: KeystoneSigningKey}
491 signing_certificate: {get_param: KeystoneSigningCertificate}
493 innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize}
498 ip: {get_attr: [controller0, networks, ctlplane, 0]}
503 - {get_resource: MysqlClusterUniquePart}
505 flat-networks: {get_param: NeutronFlatNetworks}
506 host: {get_input: controller_virtual_ip}
507 metadata_proxy_shared_secret: unset
509 enable_tunneling: 'True'
511 get_input: controller_host
512 bridge_mappings: {get_param: NeutronBridgeMappings}
514 get_param: NeutronPublicInterface
515 public_interface_raw_device:
516 get_param: NeutronPublicInterfaceRawDevice
517 public_interface_route:
518 get_param: NeutronPublicInterfaceDefaultRoute
519 public_interface_tag:
520 get_param: NeutronPublicInterfaceTag
521 physical_bridge: br-ex
522 tenant_network_type: gre
526 - - mysql://neutron:unset@
528 - /ovs_neutron?charset=utf8
530 get_param: NeutronPassword
532 get_param: NeutronDnsmasqOptions
537 - - mysql://ceilometer:unset@
540 metering_secret: {get_param: CeilometerMeteringSecret}
542 get_param: CeilometerPassword
544 export_MIB: UCD-SNMP-MIB
546 get_param: SnmpdReadonlyUserName
547 readonly_user_password:
548 get_param: SnmpdReadonlyUserPassword
550 compute_driver: libvirt.LibvirtDriver
554 - - mysql://nova:unset@
557 default_floating_pool:
559 host: {get_input: controller_virtual_ip}
562 get_param: NovaPassword
564 host: {get_input: controller_virtual_ip}
566 get_param: RabbitUserName
568 get_param: RabbitPassword
575 - {server: {get_param: NtpServer}, fudge: "stratum 0"}
578 - vrrp_instance_name: VI_CONTROL
579 virtual_router_id: 51
581 get_param: ControlVirtualInterface
584 - ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
586 get_param: ControlVirtualInterface
587 - vrrp_instance_name: VI_PUBLIC
588 virtual_router_id: 52
590 get_param: PublicVirtualInterface
593 - ip: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
595 get_param: PublicVirtualInterface
603 get_param: PublicVirtualInterface
607 ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
609 get_param: ControlVirtualInterface
611 ip: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
613 get_param: PublicVirtualInterface
618 ip: {get_attr: [controller0, networks, ctlplane, 0]}
619 name: {get_attr: [controller0, show, name]}
621 - ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
623 - name: keystone_admin
625 net_binds: &public_binds
626 - ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
627 - ip: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
628 - name: keystone_public
630 net_binds: *public_binds
633 net_binds: *public_binds
636 net_binds: *public_binds
639 net_binds: *public_binds
642 net_binds: *public_binds
643 - name: glance_registry
645 net_binds: *public_binds
648 net_binds: *public_binds
649 - name: heat_cloudwatch
651 net_binds: *public_binds
654 net_binds: *public_binds
663 net_binds: *public_binds
664 - name: nova_metadata
666 net_binds: *public_binds
669 net_binds: *public_binds
670 - name: swift_proxy_server
672 net_binds: *public_binds
678 controllerPassthrough:
679 type: OS::Heat::StructuredConfig
681 group: os-apply-config
682 config: {get_input: passthrough_config}
684 type: OS::Nova::Server
687 get_param: controllerImage
689 get_param: ImageUpdatePolicy
691 get_param: OvercloudControlFlavor
696 user_data_format: SOFTWARE_CONFIG
698 depends_on: [controller0Deployment,controller0SSLDeployment,controller0Swift,controller0Passthrough]
699 type: OS::Heat::StructuredDeployment
701 config: {get_resource: allNodesConfig}
702 server: {get_resource: controller0}
703 controller0Deployment:
704 type: OS::Heat::StructuredDeployment
706 signal_transport: NO_SIGNAL
707 config: {get_resource: controllerConfig}
708 server: {get_resource: controller0}
710 bootstack_nodeid: {get_attr: [controller0, show, name]}
711 controller_host: {get_attr: [controller0, networks, ctlplane, 0]}
712 controller_virtual_ip:
713 {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
714 heat.watch_server_url:
718 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
720 heat.metadata_server_url:
724 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
726 heat.waitcondition_server_url:
730 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
731 - ':8000/v1/waitcondition'
733 type: OS::Heat::StructuredConfig
736 completion-signal: {get_input: deploy_signal_id}
746 - - {get_attr: [NovaCompute0, networks, ctlplane, 0]}
747 - {get_attr: [NovaCompute0, show, name]}
750 - - {get_attr: [NovaCompute0, show, name]}
758 - - {get_attr: [BlockStorage0, networks, ctlplane, 0]}
759 - {get_attr: [BlockStorage0, show, name]}
762 - - {get_attr: [BlockStorage0, show, name]}
770 - - {get_attr: [SwiftStorage0, networks, ctlplane, 0]}
771 - {get_attr: [SwiftStorage0, show, name]}
774 - - {get_attr: [SwiftStorage0, show, name]}
782 - - {get_attr: [controller0, networks, ctlplane, 0]}
783 - {get_attr: [controller0, show, name]}
786 - - {get_attr: [controller0, show, name]}
788 - {get_param: CloudName}
795 {get_attr: [controller0, show, name]}
796 controller0SSLDeployment:
797 type: OS::Heat::StructuredDeployment
799 config: {get_resource: SSLConfig}
800 server: {get_resource: controller0}
801 signal_transport: NO_SIGNAL
803 controller_host: {get_attr: [controller0, networks, ctlplane, 0]}
804 ssl_certificate: {get_param: SSLCertificate}
805 ssl_key: {get_param: SSLKey}
806 ssl_ca_certificate: {get_param: SSLCACertificate}
807 controller0Passthrough:
808 type: OS::Heat::StructuredDeployment
810 config: {get_resource: controllerPassthrough}
811 server: {get_resource: controller0}
812 signal_transport: NO_SIGNAL
814 passthrough_config: {get_param: ExtraConfig}
817 description: URL for the Overcloud Keystone service
822 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}