ExtraConfig:
default: {}
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": "force_config_drive",
- "value": "always"
- }
- ]
- },
- {"section": "cells",
- "values":
- [{"option": "driver",
- "value": "nova.cells.rpc_driver.CellsRPCDriver"
- }
- ]
- }
- ]
- }
- }
+ Additional hiera configuration to inject into the cluster. Note
+ that NovaComputeExtraConfig takes precedence over ExtraConfig.
type: json
Flavor:
description: Flavor for the nova compute node
The tunnel types for the Neutron tenant network. To specify multiple
values, use a comma separated string, like so: 'gre,vxlan'
default: 'gre'
+ NeutronTunnelIdRanges:
+ description: |
+ Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
+ of GRE tunnel IDs that are available for tenant network allocation
+ default: ["1:1000", ]
+ type: comma_delimited_list
+ NeutronVniRanges:
+ description: |
+ Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
+ of VXLAN VNI IDs that are available for tenant network allocation
+ default: ["1:1000", ]
+ type: comma_delimited_list
NeutronPublicInterfaceRawDevice:
default: ''
type: string
description: >
Setting to a previously unused value during stack-update will trigger
package update on all nodes
+ Hostname:
+ type: string
+ default: '' # Defaults to Heat created hostname
resources:
- network: ctlplane
user_data_format: SOFTWARE_CONFIG
user_data: {get_resource: NodeUserData}
+ name: {get_param: Hostname}
NodeUserData:
type: OS::TripleO::NodeUserData
NetworkDeployment:
type: OS::TripleO::SoftwareDeployment
properties:
- signal_transport: NO_SIGNAL
config: {get_resource: NetworkConfig}
server: {get_resource: NovaCompute}
input_values:
hiera:
hierarchy:
- heat_config_%{::deploy_config_name}
+ - compute_extraconfig
+ - extraconfig
- compute
- ceph_cluster # provided by CephClusterConfig
- ceph
- '"%{::osfamily}"'
- common
datafiles:
+ compute_extraconfig:
+ mapped_data: {get_param: NovaComputeExtraConfig}
+ extraconfig:
+ mapped_data: {get_param: ExtraConfig}
common:
raw_data: {get_file: hieradata/common.yaml}
ceph:
nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
nova_api_host: {get_input: nova_api_host}
nova::compute::vncproxy_host: {get_input: nova_public_ip}
- nova_enable_rbd_backend: {get_input: nova_enable_rbd_backend}
+ nova::compute::rbd::ephemeral_storage: {get_input: nova_enable_rbd_backend}
nova_password: {get_input: nova_password}
nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
ceilometer::debug: {get_input: debug}
neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
neutron_tunnel_types: {get_input: neutron_tunnel_types}
neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
+ neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
+ neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
neutron_physical_bridge: {get_input: neutron_physical_bridge}
NovaComputeDeployment:
type: OS::TripleO::SoftwareDeployment
+ depends_on: NetworkDeployment
properties:
- signal_transport: NO_SIGNAL
config: {get_resource: NovaComputeConfig}
server: {get_resource: NovaCompute}
input_values:
- {get_param: GlancePort}
neutron_flat_networks: {get_param: NeutronFlatNetworks}
neutron_host: {get_param: NeutronHost}
- neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronLocalIp]}]}
+ neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
neutron_tenant_network_type: {get_param: NeutronNetworkType}
neutron_tunnel_types: {get_param: NeutronTunnelTypes}
+ neutron_tunnel_id_ranges:
+ str_replace:
+ template: "['RANGES']"
+ params:
+ RANGES:
+ list_join:
+ - "','"
+ - {get_param: NeutronTunnelIdRanges}
+ neutron_vni_ranges:
+ str_replace:
+ template: "['RANGES']"
+ params:
+ RANGES:
+ list_join:
+ - "','"
+ - {get_param: NeutronVniRanges}
neutron_network_vlan_ranges:
str_replace:
template: "['RANGES']"
str_replace:
template: "IP HOST.localdomain HOST"
params:
- IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
+ IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
HOST: {get_attr: [NovaCompute, name]}
nova_server_resource:
description: Heat resource handle for the Nova compute server
value:
{get_resource: NovaCompute}
+ config_identifier:
+ description: identifier which changes if the node configuration may need re-applying
+ value: {get_attr: [NovaComputeDeployment, deploy_stdout]}