Puppet Class: neutron::plugins::ovs
- Defined in:
- manifests/plugins/ovs.pp
Overview
Configure the neutron server to use the OVS plugin. This configures the plugin for the API server, but does nothing about configuring the agents that must also run and share a config file with the OVS plugin if both are on the same machine.
Parameters
8 9 10 11 12 13 14 15 16 17 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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'manifests/plugins/ovs.pp', line 8
class neutron::plugins::ovs (
$package_ensure = 'present',
$sql_connection = false,
$sql_max_retries = false,
$sql_idle_timeout = false,
$reconnect_interval = false,
$tenant_network_type = 'vlan',
# NB: don't need tunnel ID range when using VLANs,
# *but* you do need the network vlan range regardless of type,
# because the list of networks there is still important
# even if the ranges aren't specified
# if type is vlan or flat, a default of physnet1:1000:2000 is used
# otherwise this will not be set by default.
$network_vlan_ranges = undef,
$tunnel_id_ranges = '1:1000',
$vxlan_udp_port = 4789
) {
include neutron::params
Package['neutron'] -> Package['neutron-plugin-ovs']
Package['neutron-plugin-ovs'] -> Neutron_plugin_ovs<||>
Neutron_plugin_ovs<||> ~> Service<| title == 'neutron-server' |>
Package['neutron-plugin-ovs'] -> Service<| title == 'neutron-server' |>
if ! defined(Package['neutron-plugin-ovs']) {
package { 'neutron-plugin-ovs':
ensure => $package_ensure,
name => $::neutron::params::ovs_server_package,
}
}
if $sql_connection {
warning('sql_connection is deprecated for connection in the neutron::server class')
}
if $sql_max_retries {
warning('sql_max_retries is deprecated for max_retries in the neutron::server class')
}
if $sql_idle_timeout {
warning('sql_idle_timeout is deprecated for idle_timeout in the neutron::server class')
}
if $reconnect_interval {
warning('reconnect_interval is deprecated for retry_interval in the neutron::server class')
}
neutron_plugin_ovs {
'OVS/tenant_network_type': value => $tenant_network_type;
}
if $tenant_network_type in ['gre', 'vxlan'] {
validate_tunnel_id_ranges($tunnel_id_ranges)
neutron_plugin_ovs {
# this is set by the plugin and the agent - since the plugin node has the agent installed
# we rely on it setting it.
# TODO(ijw): do something with a virtualised node
# 'OVS/enable_tunneling': value => 'True';
'OVS/tunnel_id_ranges': value => $tunnel_id_ranges;
'OVS/tunnel_type': value => $tenant_network_type;
}
}
validate_vxlan_udp_port($vxlan_udp_port)
neutron_plugin_ovs { 'OVS/vxlan_udp_port': value => $vxlan_udp_port; }
if ! $network_vlan_ranges {
# If the user hasn't specified vlan_ranges, fail for the modes where
# it is required, otherwise keep it absent
if $tenant_network_type in ['vlan', 'flat'] {
fail('When using the vlan network type, network_vlan_ranges is required')
} else {
neutron_plugin_ovs { 'OVS/network_vlan_ranges': ensure => absent }
}
} else {
# This might be set by the user for the gre or vxlan case where
# provider networks are in use
if !is_array($network_vlan_ranges) {
$arr_network_vlan_ranges = strip(split($network_vlan_ranges, ','))
} else {
$arr_network_vlan_ranges = $network_vlan_ranges
}
validate_network_vlan_ranges($arr_network_vlan_ranges)
neutron_plugin_ovs {
'OVS/network_vlan_ranges': value => join($arr_network_vlan_ranges, ',');
}
}
# In RH, this link is used to start Neutron process but in Debian, it's used only
# to manage database synchronization.
file {'/etc/neutron/plugin.ini':
ensure => link,
target => '/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini',
require => Package['neutron-plugin-ovs']
}
}
|