Puppet Class: vswitch::ovs
- Defined in:
- manifests/ovs.pp
Overview
vswitch: open-vswitch
Class: vswitch::ovs
installs openvswitch
Parameters:
- package_ensure
-
(Optional) State of the openvswitch package Defaults to ‘present’.
- enable_hw_offload
-
(optional) Configure OVS to use Hardware Offload. This feature is supported from ovs 2.8.0. Defaults to false.
- disable_emc
-
(optional) Configure OVS to disable EMC. Defaults to false.
- vlan_limit
-
(optional) Number of vlan layers allowed. Default to undef
- vs_config
-
(optional) allow configuration of arbitrary vswitch configurations. The value is an hash of vs_config resources. Example: { ‘other_config:foo’ => { value => ‘baa’ } } NOTE: that the configuration MUST NOT be already handled by this module or Puppet catalog compilation will fail with duplicate resources.
- skip_restart
-
(optional) Skip restarting the service even when updating some options which require service restart. Setting this parameter to true avoids immedicate network distuption caused by restarting the ovs daemon. Defaults to false.
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 |
# File 'manifests/ovs.pp', line 39
class vswitch::ovs(
String $package_ensure = 'present',
Boolean $enable_hw_offload = false,
Boolean $disable_emc = false,
Optional[Integer[0]] $vlan_limit = undef,
Hash $vs_config = {},
Boolean $skip_restart = false,
) {
include vswitch::params
$restart = !$skip_restart
if $enable_hw_offload {
vs_config { 'other_config:hw-offload':
value => true,
restart => $restart,
wait => true,
}
} else {
vs_config { 'other_config:hw-offload':
ensure => absent,
restart => $restart,
wait => true,
}
}
if $disable_emc {
vs_config { 'other_config:emc-insert-inv-prob':
value => 0,
wait => false,
}
} else {
vs_config { 'other_config:emc-insert-inv-prob':
ensure => absent,
wait => false,
}
}
vs_config { 'other_config:vlan-limit':
value => $vlan_limit,
wait => true,
}
create_resources('vs_config', $vs_config)
service { 'openvswitch':
ensure => true,
enable => true,
name => $::vswitch::params::ovs_service_name,
}
# NOTE(tkajinam): This resource is defined to restart the openvswitch service
# when any vs_config resource with restart => true is enabled.
exec { 'restart openvswitch':
path => ['/sbin', '/usr/sbin', '/bin', '/usr/bin'],
command => "systemctl -q restart ${::vswitch::params::ovs_service_name}.service",
refreshonly => true,
}
package { $::vswitch::params::ovs_package_name:
ensure => $package_ensure,
before => Service['openvswitch'],
tag => 'openvswitch',
}
}
|