Default: baremetal
Description: Flavor for compute nodes to request when deploying.
Type: String
+ GlancePort:
+ Default: 9292
+ Description: Glance port.
+ Type: String
+ GlanceProtocol:
+ Default: http
+ Description: Protocol to use when connecting to glance, set to https for SSL.
+ Type: String
GlancePassword:
Default: unset
Description: The password for the glance service account, used by the glance services.
Description: The password for the ceilometer service account.
Type: String
NoEcho: true
+ SnmpdReadonlyUserName:
+ Default: ro_snmp_user
+ Description: The user name for SNMPd with readonly rights running on all Overcloud nodes
+ Type: String
+ SnmpdReadonlyUserPassword:
+ Default: unset
+ Description: The user password for SNMPd with readonly rights running on all Overcloud nodes
+ Type: String
+ NoEcho: true
CloudName:
Default: ''
Description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
Default: ''
Description: If set, the public interface is a vlan with this device as the raw device.
Type: String
+ NeutronControlPlaneID:
+ Default: ''
+ Type: String
+ Description: Neutron ID for ctlplane network.
+ NeutronDnsmasqOptions:
+ Default: 'dhcp-option-force=26,1400'
+ 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.
+ Type: String
controllerImage:
Type: String
Default: overcloud-control
Description: The image ID for live-updates to the overcloud compute nodes.
Default: ''
MysqlInnodbBufferPoolSize:
- Description: Specifies the size of the buffer pool in megabytes.
+ Description: >
+ Specifies the size of the buffer pool in megabytes. Setting to
+ zero should be interpreted as "no value" and will defer to the
+ lower level default.
Type: Number
- Default: 100
+ Default: 0
+ ControlVirtualInterface:
+ Default: 'br-ex'
+ Description: Interface where virtual ip will be assigned.
+ Type: String
+ ControlFixedIPs:
+ Default: []
+ Description: Should be used for arbitrary ips.
+ Type: Json
+ KeystoneCACertificate:
+ Default: ''
+ Description: Keystone self-signed certificate authority certificate.
+ Type: String
+ KeystoneSigningCertificate:
+ Default: ''
+ Description: Keystone certificate for verifying token validity.
+ Type: String
+ KeystoneSigningKey:
+ Default: ''
+ Description: Keystone key for signing tokens.
+ Type: String
+ NoEcho: true
Resources:
+ ControlVirtualIP:
+ Type: OS::Neutron::Port
+ Properties:
+ name: control_virtual_ip
+ network_id: {Ref: NeutronControlPlaneID}
+ fixed_ips:
+ Ref: ControlFixedIPs
RabbitCookie:
Type: OS::Heat::RandomString
Properties:
Path: nova-compute-instance.yaml
SubKey: Resources.NovaCompute0Deploy
Parameters:
- NovaApiHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
- KeystoneHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
- RabbitHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
- NeutronHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
- GlanceHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
- NovaDSN: {"Fn::Join": ['', ['mysql://nova:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ]}, '/nova']]}
- CeilometerDSN: {"Fn::Join": ['', ['mysql://ceilometer:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ]}, '/ceilometer']]}
- NeutronDSN: {"Fn::Join": ['', ['mysql://neutron:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ]}, '/neutron']]}
+ NovaApiHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ KeystoneHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ RabbitHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ NeutronHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ GlanceHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ NovaDSN: {"Fn::Join": ['', ['mysql://nova:unset@', {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}, '/nova']]}
+ CeilometerDSN: {"Fn::Join": ['', ['mysql://ceilometer:unset@', {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}, '/ceilometer']]}
+ NeutronDSN: {"Fn::Join": ['', ['mysql://neutron:unset@', {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}, '/neutron']]}
NeutronNetworkType: "gre"
NeutronEnableTunnelling: "True"
NeutronFlatNetworks:
- show
- 'novalocal'
- Fn::Join:
- - ' '
- - - Fn::Select:
- - 0
- - Fn::Select:
- - ctlplane
- - Fn::GetAtt:
- - controller0
- - networks
- - {Ref: CloudName}
- # If CloudName is unset, make the hosts line still valid
- - unused
+ - "\n"
+ - Merge::Map:
+ controller0:
+ Fn::Join:
+ - ' '
+ - - Fn::Select:
+ - 0
+ - Fn::Select:
+ - ctlplane
+ - Fn::GetAtt:
+ - controller0
+ - networks
+ - Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - controller0
+ - show
+ - Fn::Join:
+ - '.'
+ - - Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - controller0
+ - show
+ - 'novalocal'
+ - {Ref: CloudName}
NovaCompute0Passthrough:
Type: OS::Heat::StructuredDeployment
Properties:
controllerConfig:
Type: OS::Heat::StructuredConfig
Properties:
+ group: os-apply-config
config:
completion-signal: {get_input: deploy_signal_id}
admin-password:
bootstack:
public_interface_ip:
Ref: NeutronPublicInterfaceIP
+ bootstrap_host:
+ bootstrap_nodeid:
+ Fn::Select:
+ - 0
+ - Fn::Select:
+ - 0
+ - Merge::Map:
+ controller0:
+ - Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - controller0
+ - show
+ nodeid: {get_input: bootstack_nodeid}
cinder:
db: mysql://cinder:unset@localhost/cinder
volume_size_mb:
get_input: controller_host
db-password: unset
glance:
+ registry:
+ host: {get_input: controller_virtual_ip}
backend: swift
db: mysql://glance:unset@localhost/glance
host:
get_input: controller_host
+ port:
+ Ref: GlancePort
+ protocol:
+ Ref: GlanceProtocol
service-password:
Ref: GlancePassword
swift-store-user: service:glance
db: mysql://keystone:unset@localhost/keystone
host:
get_input: controller_host
+ ca_certificate: {Ref: KeystoneCACertificate}
+ signing_key: {Ref: KeystoneSigningKey}
+ signing_certificate: {Ref: KeystoneSigningCertificate}
mysql:
innodb_buffer_pool_size: {Ref: MysqlInnodbBufferPoolSize}
neutron:
flat-networks: {Ref: NeutronFlatNetworks}
- host:
- get_input: controller_host
+ host: {get_input: controller_virtual_ip}
metadata_proxy_shared_secret: unset
ovs:
enable_tunneling: 'True'
ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8
service-password:
Ref: NeutronPassword
+ dnsmasq-options:
+ Ref: NeutronDnsmasqOptions
ceilometer:
db: mysql://ceilometer:unset@localhost/ceilometer
metering_secret: {Ref: CeilometerMeteringSecret}
service-password:
Ref: CeilometerPassword
+ snmpd:
+ export_MIB: UCD-SNMP-MIB
+ readonly_user_name:
+ Ref: SnmpdReadonlyUserName
+ readonly_user_password:
+ Ref: SnmpdReadonlyUserPassword
nova:
compute_driver: libvirt.LibvirtDriver
db: mysql://nova:unset@localhost/nova
default_floating_pool:
ext-net
- host:
- get_input: controller_host
+ host: {get_input: controller_virtual_ip}
metadata-proxy: true
service-password:
Ref: NovaPassword
ntp:
servers:
- {server: {Ref: NtpServer}, fudge: "stratum 0"}
+ keepalived:
+ keepalive_interface:
+ Ref: NeutronPublicInterface
+ priority: 101
+ virtual_ips:
+ -
+ ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ interface:
+ Ref: ControlVirtualInterface
+ haproxy:
+ nodes:
+ Merge::Map:
+ controller0:
+ ip: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
+ name: {"Fn::Select": [ name, {"Fn::GetAtt": [controller0, show]} ] }
+ net_binds:
+ - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ services:
+ - name: keystone_admin
+ port: 35357
+ - name: keystone_public
+ port: 5000
+ - name: horizon
+ port: 80
+ - name: neutron
+ port: 9696
+ - name: cinder
+ port: 8776
+ - name: glance_api
+ port: 9292
+ - name: glance_registry
+ port: 9191
+ - name: heat_api
+ port: 8004
+ - name: heat_cloudwatch
+ port: 8003
+ - name: heat_cfn
+ port: 8000
+ - name: nova_ec2
+ port: 8773
+ - name: nova_osapi
+ port: 8774
+ - name: nova_metadata
+ port: 8775
+ - name: ceilometer
+ port: 8777
+ - name: swift_proxy_server
+ port: 8080
controllerPassthrough:
Type: OS::Heat::StructuredConfig
Properties:
+ group: os-apply-config
config: {get_input: passthrough_config}
controller0:
Type: OS::Nova::Server
config: {Ref: controllerConfig}
server: {Ref: controller0}
input_values:
- controller_host:
+ bootstack_nodeid:
+ Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - controller0
+ - show
+ controller_host:
Fn::Select:
- 0
- Fn::Select:
Fn::Join:
- ''
- - 'http://'
- - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ controller0, networks ]}]]}
+ - {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
- ':8003'
heat.metadata_server_url:
Fn::Join:
- ''
- - 'http://'
- - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ controller0, networks ]}]]}
+ - {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
- ':8000'
heat.waitcondition_server_url:
Fn::Join:
- ''
- - 'http://'
- - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ controller0, networks ]}]]}
+ - {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
- ':8000/v1/waitcondition'
hosts:
Fn::Join:
- - ' '
- - - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ controller0, networks ]}]]}
- - {Ref: CloudName}
+ - "\n"
+ - - Fn::Join:
+ - "\n"
+ - Merge::Map:
+ NovaCompute0:
+ Fn::Join:
+ - ' '
+ - - Fn::Select:
+ - 0
+ - Fn::Select:
+ - ctlplane
+ - Fn::GetAtt:
+ - NovaCompute0
+ - networks
+ - Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - NovaCompute0
+ - show
+ - Fn::Join:
+ - '.'
+ - - Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - NovaCompute0
+ - show
+ - 'novalocal'
+ - Fn::Join:
+ - "\n"
+ - Merge::Map:
+ controller0:
+ Fn::Join:
+ - ' '
+ - - Fn::Select:
+ - 0
+ - Fn::Select:
+ - ctlplane
+ - Fn::GetAtt:
+ - controller0
+ - networks
+ - Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - controller0
+ - show
+ - Fn::Join:
+ - '.'
+ - - Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - controller0
+ - show
+ - 'novalocal'
+ - {Ref: CloudName}
+ controller_virtual_ip:
+ {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
controller0SSLDeployment:
Type: OS::Heat::StructuredDeployment
Properties:
input_values:
ssl_certificate: {Ref: SSLCertificate}
ssl_key: {Ref: SSLKey}
+ ssl_ca_certificate: {Ref: SSLCACertificate}
controller0Passthrough:
Type: OS::Heat::StructuredDeployment
Properties:
- ''
- - http://
- Fn::Select:
- - 0
+ - ip_address
- Fn::Select:
- - ctlplane
+ - 0
- Fn::GetAtt:
- - controller0
- - networks
+ - ControlVirtualIP
+ - fixed_ips
- :5000/v2.0/