Puppet Class: nova::compute::neutron

Defined in:
manifests/compute/neutron.pp

Overview

Class: nova::compute::neutron

Manage the network driver to use for compute guests This will use virtio for VM guests and the specified driver for the VIF

Parameters

libvirt_vif_driver

(optional) The libvirt VIF driver to configure the VIFs. Defaults to ‘nova.virt.libvirt.vif.LibvirtGenericVIFDriver’.

force_snat_range

(optional) Force SNAT rule to specified network for nova-network Default to 0.0.0.0/0 Due to architecture constraints in nova_config, it’s not possible to setup more than one SNAT rule though initial parameter is MultiStrOpt

Parameters:

  • libvirt_vif_driver (Any) (defaults to: 'nova.virt.libvirt.vif.LibvirtGenericVIFDriver')
  • force_snat_range (Any) (defaults to: '0.0.0.0/0')


18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'manifests/compute/neutron.pp', line 18

class nova::compute::neutron (
  $libvirt_vif_driver = 'nova.virt.libvirt.vif.LibvirtGenericVIFDriver',
  $force_snat_range   = '0.0.0.0/0',
) {

  if $libvirt_vif_driver == 'nova.virt.libvirt.vif.LibvirtOpenVswitchDriver' {
    fail('nova.virt.libvirt.vif.LibvirtOpenVswitchDriver as vif_driver is removed from Icehouse')
  }

  nova_config {
    'libvirt/vif_driver': value => $libvirt_vif_driver;
  }

  if $libvirt_vif_driver == 'nova.virt.libvirt.vif.LibvirtGenericVIFDriver' and $force_snat_range {
    # Validate ip and mask for force_snat_range
    $force_snat_range_array = split($force_snat_range, '/')
    if is_ip_address($force_snat_range_array[0]) and is_integer($force_snat_range_array[1])  {
      nova_config {
        'DEFAULT/force_snat_range': value => $force_snat_range;
      }
    } else {
      fail('force_snat_range should be IPv4 or IPv6 CIDR notation')
    }
  } else {
    nova_config {
      'DEFAULT/force_snat_range': ensure => absent;
    }
  }

}