-heat_template_version: 2014-10-16
+heat_template_version: 2015-04-30
description: >
OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.
default: ''
constraints:
- allowed_values: ['', Present]
- CeilometerDSN:
- type: string
CeilometerMeteringSecret:
default: unset
description: Secret shared by the ceilometer services.
Flavor:
description: Flavor for the nova compute node
type: string
- default: baremetal
constraints:
- custom_constraint: nova.flavor
GlanceHost:
KeystoneHost:
type: string
default: ''
- LiveUpdateComputeImage:
- type: string
- description: The image ID for live-updates to the overcloud compute nodes.
- 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
- LiveUpdateTenantName:
- type: string
- description: The live-update tenant name for the undercloud Glance API.
- default: ''
- LiveUpdateUserName:
- type: string
- description: The live-update username for the undercloud Glance API.
- default: ''
NeutronBridgeMappings:
description: >
The OVS logical->physical bridge mappings to use. See the Neutron
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: ""
- NeutronDSN:
- type: string
+ default: "datacentre:br-ex"
NeutronEnableTunnelling:
type: string
default: "True"
NeutronFlatNetworks:
type: string
- default: ''
+ default: 'datacentre'
description: >
If set, flat networks to configure in neutron plugins.
NeutronHost:
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
+ type: comma_delimited_list
NeutronPassword:
default: unset
description: The password for the neutron service account, used by neutron agents.
description: An OVS bridge to create for accessing external networks.
type: string
NeutronPublicInterface:
- default: eth0
+ default: nic1
description: A port to add to the NeutronPhysicalBridge.
type: string
NeutronTunnelTypes:
The tunnel types for the Neutron tenant network. To specify multiple
values, use a comma separated string, like so: 'gre,vxlan'
default: 'gre'
+ NeutronPublicInterfaceRawDevice:
+ default: ''
+ type: string
+ NeutronDVR:
+ default: 'False'
+ type: string
+ NeutronMetadataProxySharedSecret:
+ default: 'unset'
+ description: Shared secret to prevent spoofing
+ type: string
+ NeutronMechanismDrivers:
+ default: 'openvswitch'
+ description: |
+ The mechanism drivers for the Neutron tenant network. To specify multiple
+ values, use a comma separated string, like so: 'openvswitch,l2_population'
+ type: string
+ # Not relevant for Computes, should be removed
+ NeutronAllowL3AgentFailover:
+ default: 'True'
+ description: Allow automatic l3-agent failover
+ type: string
+ # Not relevant for Computes, should be removed
+ NeutronL3HA:
+ default: 'False'
+ description: Whether to enable l3-agent HA
+ type: string
+ NeutronAgentMode:
+ default: 'dvr_snat'
+ description: Agent mode for the neutron-l3-agent on the controller hosts
+ type: string
NovaApiHost:
type: string
default: '' # Has to be here because of the ignored empty value bug
NovaComputeLibvirtType:
type: string
default: ''
- NovaDSN:
- type: string
+ NovaEnableRbdBackend:
+ default: false
+ description: Whether to enable or not the Rbd backend for Nova
+ type: boolean
NovaPassword:
default: unset
description: The password for the nova service account, used by nova-api.
default: guest
description: The username for RabbitMQ
type: string
+ RabbitClientUseSSL:
+ default: false
+ description: >
+ Rabbit client subscriber parameter to specify
+ an SSL connection to the RabbitMQ host.
+ type: string
+ RabbitClientPort:
+ default: 5672
+ description: Set rabbit subscriber port, change this if using SSL
+ type: number
SnmpdReadonlyUserName:
default: ro_snmp_user
description: The user name for SNMPd with readonly rights running on all Overcloud nodes
description: The user password for SNMPd with readonly rights running on all Overcloud nodes
type: string
hidden: true
-
+ ServiceNetMap:
+ default: {}
+ description: Mapping of service_name -> network name. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
resources:
networks:
- network: ctlplane
user_data_format: SOFTWARE_CONFIG
+ user_data: {get_resource: NodeUserData}
+
+ NodeUserData:
+ type: OS::TripleO::NodeUserData
+
+ InternalApiPort:
+ type: OS::TripleO::Compute::Ports::InternalApiPort
+ properties:
+ ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
+
+ StoragePort:
+ type: OS::TripleO::Compute::Ports::StoragePort
+ properties:
+ ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
+
+ TenantPort:
+ type: OS::TripleO::Compute::Ports::TenantPort
+ properties:
+ ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
+
+ NetworkConfig:
+ type: OS::TripleO::Compute::Net::SoftwareConfig
+ properties:
+ InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
+ StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
+ TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
+
+ NetworkDeployment:
+ type: OS::TripleO::SoftwareDeployment
+ properties:
+ signal_transport: NO_SIGNAL
+ config: {get_resource: NetworkConfig}
+ server: {get_resource: NovaCompute}
+ input_values:
+ bridge_name: {get_param: NeutronPhysicalBridge}
+ interface_name: {get_param: NeutronPublicInterface}
NovaComputeConfig:
type: OS::Heat::StructuredConfig
nova:
compute_driver: { get_input: nova_compute_driver }
compute_libvirt_type: { get_input: nova_compute_libvirt_type }
- db: {get_input: nova_dsn}
- debug: {get_param: Debug}
+ debug: {get_input: debug}
host: {get_input: nova_api_host}
public_ip: {get_input: nova_public_ip}
service-password: {get_input: nova_password}
ceilometer:
- db: {get_input: ceilometer_dsn}
- debug: {get_param: Debug}
+ debug: {get_input: debug}
metering_secret: {get_input: ceilometer_metering_secret}
service-password: {get_input: ceilometer_password}
compute_agent: {get_input: ceilometer_compute_agent}
readonly_user_name: {get_input: snmpd_readonly_user_name}
readonly_user_password: {get_input: snmpd_readonly_user_password}
glance:
- debug: {get_param: Debug}
+ debug: {get_input: debug}
host: {get_input: glance_host}
port: {get_input: glance_port}
protocol: {get_input: glance_protocol}
keystone:
- debug: {get_param: Debug}
+ debug: {get_input: debug}
host: {get_input: keystone_host}
neutron:
- debug: {get_param: Debug}
+ debug: {get_input: debug}
flat-networks: {get_input: neutron_flat_networks}
host: {get_input: neutron_host}
+ router_distributed: {get_input: neutron_router_distributed}
+ agent_mode: {get_input: neutron_agent_mode}
ovs_db: {get_input: neutron_dsn}
+ metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
+ mechanism_drivers: {get_input: neutron_mechanism_drivers}
+ allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
+ l3_ha: {get_input: neutron_l3_ha}
ovs:
local_ip: {get_input: neutron_local_ip}
tenant_network_type: {get_input: neutron_tenant_network_type}
enable_tunneling: {get_input: neutron_enable_tunneling}
physical_bridge: {get_input: neutron_physical_bridge}
public_interface: {get_input: neutron_public_interface}
+ public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
service-password: {get_input: neutron_password}
admin-password: {get_input: admin_password}
rabbit:
host: {get_input: rabbit_host}
username: {get_input: rabbit_username}
password: {get_input: rabbit_password}
- live-update:
- host: {get_input: live_update_host}
- username: {get_input: live_update_username}
- password: {get_input: live_update_password}
- tenant-name: {get_input: live_update_tenant_name}
- base_image_id: {get_input: nova_image}
- live_update_image_id: {get_input: live_update_compute_image}
ntp:
servers:
- - {server: {get_input: ntp_server}, fudge: "stratum 0"}
+ - {server: {get_input: ntp_server}}
NovaComputeDeployment:
- type: OS::Heat::StructuredDeployment
+ type: OS::TripleO::SoftwareDeployment
properties:
signal_transport: NO_SIGNAL
config: {get_resource: NovaComputeConfig}
server: {get_resource: NovaCompute}
input_values:
+ debug: {get_param: Debug}
nova_compute_driver: {get_param: NovaComputeDriver}
nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
- nova_dsn: {get_param: NovaDSN}
nova_public_ip: {get_param: NovaPublicIP}
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}
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: [NovaCompute, networks, ctlplane, 0]}
neutron_tenant_network_type: {get_param: NeutronNetworkType}
neutron_tunnel_types: {get_param: NeutronTunnelTypes}
neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
neutron_public_interface: {get_param: NeutronPublicInterface}
neutron_password: {get_param: NeutronPassword}
+ neutron_agent_mode: {get_param: NeutronAgentMode}
+ neutron_router_distributed: {get_param: NeutronDVR}
+ neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
+ neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
+ neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
+ neutron_l3_ha: {get_param: NeutronL3HA}
+ neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
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: Image}
- live_update_image_id: {get_param: LiveUpdateComputeImage}
ntp_server: {get_param: NtpServer}
NovaComputePassthrough:
ip_address:
description: IP address of the server in the ctlplane network
value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
+ internal_api_ip_address:
+ description: IP address of the server in the internal_api network
+ value: {get_attr: [InternalApiPort, ip_address]}
+ storage_ip_address:
+ description: IP address of the server in the storage network
+ value: {get_attr: [StoragePort, ip_address]}
+ tenant_ip_address:
+ description: IP address of the server in the tenant network
+ value: {get_attr: [TenantPort, ip_address]}
hostname:
description: Hostname of the server
value: {get_attr: [NovaCompute, name]}
Server's IP address and hostname in the /etc/hosts format
value:
str_replace:
- template: "IP HOST HOST.novalocal"
+ template: "IP HOST"
params:
IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
HOST: {get_attr: [NovaCompute, name]}