044a5c111e
To balance load over the rabbit cluster we want to route access to it via haproxy. This also helps workaround bug #856764 as an additional benefit. This change sets rabbit.host to the ControlVirtualIP (to be used by the elements) and adds an haproxy listener for the rabbit nodes. Related to blueprint tripleo-icehouse-ha-production-configuration Depends on I3ff37ec18b9191ca8e861519bed142cbdbd5faa2 Change-Id: I49b622a604542f456bd9a37da8dae3353218e640 Related-Bug: 856764
246 lines
7.9 KiB
YAML
246 lines
7.9 KiB
YAML
heat_template_version: 2014-10-16
|
|
description: 'Nova Compute'
|
|
parameters:
|
|
AdminPassword:
|
|
default: unset
|
|
description: The password for the keystone admin account, used for monitoring, querying neutron etc.
|
|
type: string
|
|
hidden: true
|
|
ExtraConfig:
|
|
description: |
|
|
Additional configuration to inject into the cluster. The JSON should have
|
|
the following structure:
|
|
{"FILEKEY":
|
|
{"config":
|
|
[{"section": "SECTIONNAME",
|
|
"values":
|
|
[{"option": "OPTIONNAME",
|
|
"value": "VALUENAME"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
For instance:
|
|
{"nova":
|
|
{"config":
|
|
[{"section": "default",
|
|
"values":
|
|
[{"option": "compute_manager",
|
|
"value": "ironic.nova.compute.manager.ClusterComputeManager"
|
|
}
|
|
]
|
|
},
|
|
{"section": "cells",
|
|
"values":
|
|
[{"option": "driver",
|
|
"value": "nova.cells.rpc_driver.CellsRPCDriver"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
type: json
|
|
KeyName:
|
|
description: Name of an existing EC2 KeyPair to enable SSH access to the instances
|
|
type: string
|
|
default: default
|
|
OvercloudComputeFlavor:
|
|
description: Use this flavor
|
|
type: string
|
|
default: baremetal
|
|
ImageUpdatePolicy:
|
|
default: 'REBUILD_PRESERVE_EPHEMERAL'
|
|
description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
|
|
type: string
|
|
NovaImage:
|
|
type: string
|
|
default: overcloud-compute
|
|
NtpServer:
|
|
type: string
|
|
default: ''
|
|
KeystoneHost:
|
|
type: string
|
|
NeutronFlatNetworks:
|
|
type: string
|
|
default: ''
|
|
description: If set, flat networks to configure in neutron plugins.
|
|
NeutronHost:
|
|
type: string
|
|
NeutronPhysicalBridge:
|
|
default: ''
|
|
description: An OVS bridge to create for accessing external networks.
|
|
type: string
|
|
NeutronPublicInterface:
|
|
default: ''
|
|
description: A port to add to the NeutronPhysicalBridge.
|
|
type: string
|
|
RabbitHost:
|
|
type: string
|
|
RabbitUserName:
|
|
type: string
|
|
RabbitPassword:
|
|
type: string
|
|
hidden: true
|
|
CeilometerComputeAgent:
|
|
description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
|
|
type: string
|
|
default: ''
|
|
constraints:
|
|
- allowed_values: ['', Present]
|
|
CeilometerMeteringSecret:
|
|
default: unset
|
|
description: Secret shared by the ceilometer services.
|
|
type: string
|
|
hidden: true
|
|
CeilometerPassword:
|
|
default: unset
|
|
description: The password for the ceilometer service account.
|
|
type: string
|
|
hidden: 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
|
|
hidden: true
|
|
NovaComputeDriver:
|
|
type: string
|
|
default: libvirt.LibvirtDriver
|
|
NovaComputeLibvirtType:
|
|
type: string
|
|
default: ''
|
|
NovaApiHost:
|
|
type: string
|
|
NovaPassword:
|
|
default: unset
|
|
description: The password for the nova service account, used by nova-api.
|
|
type: string
|
|
hidden: true
|
|
GlanceHost:
|
|
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
|
|
CeilometerDSN:
|
|
type: string
|
|
NovaDSN:
|
|
type: string
|
|
NeutronDSN:
|
|
type: string
|
|
NeutronBridgeMappings:
|
|
type: string
|
|
NeutronNetworkVLANRanges:
|
|
type: string
|
|
NeutronNetworkType:
|
|
type: string
|
|
NeutronEnableTunnelling:
|
|
type: string
|
|
AllNodesConfig:
|
|
type: string
|
|
description: OS::Heat::Config to use for all nodes deployment
|
|
LiveUpdateUserName:
|
|
type: string
|
|
description: The live-update username for the undercloud Glance API.
|
|
default: ''
|
|
LiveUpdateTenantName:
|
|
type: string
|
|
description: The live-update tenant name for the undercloud Glance API.
|
|
default: ''
|
|
LiveUpdateHost:
|
|
type: string
|
|
description: The IP address for the undercloud Glance API.
|
|
default: ''
|
|
LiveUpdatePassword:
|
|
type: string
|
|
default: ''
|
|
description: The live-update password for the undercloud Glance API.
|
|
hidden: true
|
|
LiveUpdateComputeImage:
|
|
type: string
|
|
description: The image ID for live-updates to the overcloud compute nodes.
|
|
default: ''
|
|
resources:
|
|
NovaCompute0:
|
|
type: OS::Nova::Server
|
|
properties:
|
|
image:
|
|
{get_param: NovaImage}
|
|
image_update_policy:
|
|
get_param: ImageUpdatePolicy
|
|
flavor: {get_param: OvercloudComputeFlavor}
|
|
key_name: {get_param: KeyName}
|
|
networks:
|
|
- network: ctlplane
|
|
user_data_format: SOFTWARE_CONFIG
|
|
NovaCompute0Deploy:
|
|
depends_on: [controller0AllNodes]
|
|
type: OS::Heat::StructuredDeployment
|
|
properties:
|
|
signal_transport: NO_SIGNAL
|
|
config: {get_resource: NovaComputeConfig}
|
|
server: {get_resource: NovaCompute0}
|
|
input_values:
|
|
nova_compute_driver: {get_param: NovaComputeDriver}
|
|
nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
|
|
nova_dsn: {get_param: NovaDSN}
|
|
nova_api_host: {get_param: NovaApiHost}
|
|
nova_password: {get_param: NovaPassword}
|
|
ceilometer_dsn: {get_param: CeilometerDSN}
|
|
ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
|
|
ceilometer_password: {get_param: CeilometerPassword}
|
|
ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
|
|
snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
|
|
snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
|
|
glance_host: {get_param: GlanceHost}
|
|
glance_port: {get_param: GlancePort}
|
|
glance_protocol: {get_param: GlanceProtocol}
|
|
keystone_host: {get_param: KeystoneHost}
|
|
neutron_flat_networks: {get_param: NeutronFlatNetworks}
|
|
neutron_host: {get_param: NeutronHost}
|
|
neutron_dsn: {get_param: NeutronDSN}
|
|
neutron_local_ip: {get_attr: [NovaCompute0, networks, ctlplane, 0]}
|
|
neutron_tenant_network_type: {get_param: NeutronNetworkType}
|
|
neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
|
|
neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
|
|
neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
|
|
neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
|
|
neutron_public_interface: {get_param: NeutronPublicInterface}
|
|
neutron_password: {get_param: NeutronPassword}
|
|
admin_password: {get_param: AdminPassword}
|
|
rabbit_host: {get_param: RabbitHost}
|
|
rabbit_username: {get_param: RabbitUserName}
|
|
rabbit_password: {get_param: RabbitPassword}
|
|
live_update_host: {get_param: LiveUpdateHost}
|
|
live_update_username: {get_param: LiveUpdateUserName}
|
|
live_update_password: {get_param: LiveUpdatePassword}
|
|
live_update_tenant_name: {get_param: LiveUpdateTenantName}
|
|
nova_image: {get_param: NovaImage}
|
|
live_update_image_id: {get_param: LiveUpdateComputeImage}
|
|
ntp_server: {get_param: NtpServer}
|
|
NovaCompute0AllNodesDeploy:
|
|
depends_on: [NovaCompute0Passthrough]
|
|
type: OS::Heat::StructuredDeployment
|
|
properties:
|
|
config: {get_param: AllNodesConfig}
|
|
server: {get_resource: NovaCompute0}
|
|
NovaCompute0Passthrough:
|
|
depends_on: [NovaCompute0Deploy]
|
|
type: OS::Heat::StructuredDeployment
|
|
properties:
|
|
config: {get_resource: NovaComputePassthrough}
|
|
server: {get_resource: NovaCompute0}
|
|
signal_transport: NO_SIGNAL
|
|
input_values:
|
|
passthrough_config: {get_param: ExtraConfig}
|