description: Nova API,Keystone,Heat Engine and API,Glance,Neutron,Dedicated MySQL
server,Dedicated RabbitMQ Server,Group of Nova Computes
-heat_template_version: 2014-10-16
+heat_template_version: 2013-05-23
parameters:
AdminPassword:
default: unset
description: Name of an existing EC2 KeyPair to enable SSH access to the instances
type: string
NeutronBridgeMappings:
- description: The OVS logical->physical bridge mappings to use.
+ description: |
+ The OVS logical->physical bridge mappings to use. See the Neutron
+ documentation for details. Defaults to mapping br-ex - the external
+ bridge on hosts - to a physical name 'datacentre' which can be used
+ to create provider networks (and we use this for the default floating
+ network) - if changing this either use different post-install network
+ scripts or be sure to keep 'datacentre' as a mapping network name.
+ type: string
+ default: "datacentre:br-ex"
+ NeutronNetworkVLANRanges:
+ default: 'datacentre'
+ description: |
+ The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
+ Neutron documentation for permitted values. Defaults to permitting any
+ VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
type: string
- default: ''
NeutronPassword:
default: unset
description: The password for the neutron service account, used by neutron agents.
hidden: true
NeutronFlatNetworks:
type: string
- default: ''
- description: If set, flat networks to configure in neutron plugins.
+ default: 'datacentre'
+ description: |
+ If set, flat networks to configure in neutron plugins. Defaults to
+ 'datacentre' to permit external network creation.
HypervisorNeutronPhysicalBridge:
- default: ''
- description: An OVS bridge to create on each hypervisor.
+ default: 'br-ex'
+ description: |
+ An OVS bridge to create on each hypervisor. This defaults to br-ex the
+ same as the control plane nodes, as we have a uniform configuration of
+ the openvswitch agent. Typically should not need to be changed.
type: string
HypervisorNeutronPublicInterface:
- default: ''
+ default: 'eth0'
description: What interface to add to the HypervisorNeutronPhysicalBridge.
type: string
NeutronPublicInterface:
description: Keystone key for signing tokens.
type: string
hidden: true
+ DefaultSignalTransport:
+ default: CFN_SIGNAL
+ description: Transport to use for software-config signals.
+ type: string
+ constraints:
+ - allowed_values: [ CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL ]
resources:
ControlVirtualIP:
type: OS::Neutron::Port
type: OS::Heat::RandomString
properties:
length: 10
+ MysqlRootPassword:
+ type: OS::Heat::RandomString
+ properties:
+ length: 10
PublicVirtualIP:
type: OS::Neutron::Port
properties:
length: 20
salt:
get_param: RabbitCookieSalt
- NovaCompute0Deploy:
+ NovaCompute0Deployment:
type: FileInclude
Path: nova-compute-instance.yaml
- SubKey: resources.NovaCompute0Deploy
+ SubKey: resources.NovaCompute0Deployment
parameters:
+ DefaultSignalTransport:
+ get_param: DefaultSignalTransport
NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
- NovaDSN: {list_join: ['', ['mysql://nova:unset@', {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}, '/nova']]}
- CeilometerDSN: {list_join: ['', ['mysql://ceilometer:unset@', {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}, '/ceilometer']]}
- NeutronDSN: {list_join: ['', ['mysql://neutron:unset@', {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}, '/ovs_neutron']]}
+ RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
+ NovaDSN:
+ Fn::Join:
+ - ''
+ - - mysql://nova:unset@
+ - &compute_database_host {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
+ - /nova
+ NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
+ CeilometerDSN:
+ Fn::Join:
+ - ''
+ - - mysql://ceilometer:unset@
+ - *compute_database_host
+ - /ceilometer
+ NeutronDSN:
+ Fn::Join:
+ - ''
+ - - mysql://neutron:unset@
+ - *compute_database_host
+ - /ovs_neutron
NeutronNetworkType: "gre"
NeutronEnableTunnelling: "True"
NeutronFlatNetworks:
get_param: NeutronFlatNetworks
- NeutronNetworkVLANRanges: ""
+ NeutronNetworkVLANRanges:
+ get_param: NeutronNetworkVLANRanges
NeutronPhysicalBridge:
get_param: HypervisorNeutronPhysicalBridge
NeutronPublicInterface:
get_param: HypervisorNeutronPublicInterface
NeutronBridgeMappings:
get_param: NeutronBridgeMappings
- NovaCompute0AllNodes:
+ NovaCompute0AllNodesDeployment:
type: FileInclude
Path: nova-compute-instance.yaml
- SubKey: resources.NovaCompute0AllNodesDeploy
+ SubKey: resources.NovaCompute0AllNodesDeployment
parameters:
AllNodesConfig: {get_resource: allNodesConfig}
NovaCompute0Passthrough:
- controller0
- show
nodeid: {get_input: bootstack_nodeid}
+ database:
+ host: &database_host
+ {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
cinder:
- db: mysql://cinder:unset@localhost/cinder
+ db:
+ Fn::Join:
+ - ''
+ - - mysql://cinder:unset@
+ - *database_host
+ - /cinder
volume_size_mb:
get_param: CinderLVMLoopDeviceSize
service-password:
registry:
host: {get_input: controller_virtual_ip}
backend: swift
- db: mysql://glance:unset@localhost/glance
+ db:
+ Fn::Join:
+ - ''
+ - - mysql://glance:unset@
+ - *database_host
+ - /glance
host:
get_input: controller_virtual_ip
port:
admin_tenant_name: service
admin_user: heat
auth_encryption_key: unset___________
- db: mysql://heat:unset@localhost/heat
+ db:
+ Fn::Join:
+ - ''
+ - - mysql://heat:unset@
+ - *database_host
+ - /heat
stack_domain_admin_password: {get_param: HeatStackDomainAdminPassword}
watch_server_url: {get_input: heat.watch_server_url}
metadata_server_url: {get_input: heat.metadata_server_url}
controller0:
{get_attr: [controller0, show, name]}
keystone:
- db: mysql://keystone:unset@localhost/keystone
+ db:
+ Fn::Join:
+ - ''
+ - - mysql://keystone:unset@
+ - *database_host
+ - /keystone
host:
get_input: controller_virtual_ip
ca_certificate: {get_param: KeystoneCACertificate}
signing_certificate: {get_param: KeystoneSigningCertificate}
mysql:
innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize}
+ local_bind: true
+ root-password: {get_resource: MysqlRootPassword}
nodes:
Merge::Map:
controller0:
ip: {get_attr: [controller0, networks, ctlplane, 0]}
cluster_name:
- list_join:
+ Fn::Join:
- '-'
- - 'tripleo'
- {get_resource: MysqlClusterUniquePart}
enable_tunneling: 'True'
local_ip:
get_input: controller_host
+ network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
bridge_mappings: {get_param: NeutronBridgeMappings}
public_interface:
get_param: NeutronPublicInterface
get_param: NeutronPublicInterfaceDefaultRoute
physical_bridge: br-ex
tenant_network_type: gre
- ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8
+ ovs_db:
+ Fn::Join:
+ - ''
+ - - mysql://neutron:unset@
+ - *database_host
+ - /ovs_neutron?charset=utf8
service-password:
get_param: NeutronPassword
dnsmasq-options:
get_param: NeutronDnsmasqOptions
ceilometer:
- db: mysql://ceilometer:unset@localhost/ceilometer
+ db:
+ Fn::Join:
+ - ''
+ - - mysql://ceilometer:unset@
+ - *database_host
+ - /ceilometer
metering_secret: {get_param: CeilometerMeteringSecret}
service-password:
get_param: CeilometerPassword
get_param: SnmpdReadonlyUserPassword
nova:
compute_driver: libvirt.LibvirtDriver
- db: mysql://nova:unset@localhost/nova
+ db:
+ Fn::Join:
+ - ''
+ - - mysql://nova:unset@
+ - *database_host
+ - /nova
default_floating_pool:
ext-net
host: {get_input: controller_virtual_ip}
service-password:
get_param: NovaPassword
rabbit:
+ host: {get_input: controller_virtual_ip}
username:
get_param: RabbitUserName
password:
- name: heat_cfn
port: 8000
net_binds: *public_binds
+ - name: mysql
+ port: 3306
+ extra_server_params:
+ - backup
+ options:
+ - timeout client 0
+ - timeout server 0
- name: nova_ec2
port: 8773
- name: nova_osapi
- name: swift_proxy_server
port: 8080
net_binds: *public_binds
+ - name: rabbitmq
+ port: 5672
+ options:
+ - timeout client 0
+ - timeout server 0
controllerPassthrough:
type: OS::Heat::StructuredConfig
properties:
networks:
- network: ctlplane
user_data_format: SOFTWARE_CONFIG
- controller0AllNodes:
+ controller0AllNodesDeployment:
depends_on: [controller0Deployment,controller0SSLDeployment,controller0Swift,controller0Passthrough]
type: OS::Heat::StructuredDeployment
properties:
+ signal_transport: {get_param: DefaultSignalTransport}
config: {get_resource: allNodesConfig}
server: {get_resource: controller0}
controller0Deployment:
controller_virtual_ip:
{get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
heat.watch_server_url:
- list_join:
+ Fn::Join:
- ''
- - 'http://'
- {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
- ':8003'
heat.metadata_server_url:
- list_join:
+ Fn::Join:
- ''
- - 'http://'
- {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
- ':8000'
heat.waitcondition_server_url:
- list_join:
+ Fn::Join:
- ''
- - 'http://'
- {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
config:
completion-signal: {get_input: deploy_signal_id}
hosts:
- list_join:
+ Fn::Join:
- "\n"
- - - list_join:
+ - - Fn::Join:
- "\n"
- Merge::Map:
NovaCompute0:
- list_join:
+ Fn::Join:
- ' '
- - {get_attr: [NovaCompute0, networks, ctlplane, 0]}
- {get_attr: [NovaCompute0, show, name]}
- - list_join:
+ - Fn::Join:
- '.'
- - {get_attr: [NovaCompute0, show, name]}
- 'novalocal'
- - list_join:
+ - Fn::Join:
+ - "\n"
+ - Merge::Map:
+ BlockStorage0:
+ Fn::Join:
+ - ' '
+ - - {get_attr: [BlockStorage0, networks, ctlplane, 0]}
+ - {get_attr: [BlockStorage0, show, name]}
+ - Fn::Join:
+ - '.'
+ - - {get_attr: [BlockStorage0, show, name]}
+ - 'novalocal'
+ - Fn::Join:
+ - "\n"
+ - Merge::Map:
+ SwiftStorage0:
+ Fn::Join:
+ - ' '
+ - - {get_attr: [SwiftStorage0, networks, ctlplane, 0]}
+ - {get_attr: [SwiftStorage0, show, name]}
+ - Fn::Join:
+ - '.'
+ - - {get_attr: [SwiftStorage0, show, name]}
+ - 'novalocal'
+ - Fn::Join:
- "\n"
- Merge::Map:
controller0:
- list_join:
+ Fn::Join:
- ' '
- - {get_attr: [controller0, networks, ctlplane, 0]}
- {get_attr: [controller0, show, name]}
- - list_join:
+ - Fn::Join:
- '.'
- - {get_attr: [controller0, show, name]}
- 'novalocal'
- {get_param: CloudName}
rabbit:
nodes:
- list_join:
+ Fn::Join:
- ','
- Merge::Map:
controller0:
KeystoneURL:
description: URL for the Overcloud Keystone service
value:
- list_join:
+ Fn::Join:
- ''
- - http://
- {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}