refactor of ovs module
- remove the port and bridge defines b/c they created useless abstraction layers. - add redhat support
This commit is contained in:
parent
2021658617
commit
9ef62597c8
@ -1,15 +0,0 @@
|
||||
define vswitch::bridge (
|
||||
$external_ids = "",
|
||||
$ensure = "present"
|
||||
) {
|
||||
if $external_ids == "" {
|
||||
vs_bridge { $name:
|
||||
ensure => $ensure
|
||||
}
|
||||
} else {
|
||||
vs_bridge { $name:
|
||||
external_ids => $external_ids,
|
||||
ensure => $ensure
|
||||
}
|
||||
}
|
||||
}
|
@ -2,34 +2,43 @@ class vswitch::ovs(
|
||||
$package_ensure = 'present'
|
||||
) {
|
||||
case $::osfamily {
|
||||
Debian: {
|
||||
'Debian': {
|
||||
# OVS doesn't build unless the kernel headers are present.
|
||||
$kernelheaders_pkg = "linux-headers-$::kernelrelease"
|
||||
$kernelheaders_pkg = "linux-headers-$::kernelrelease"
|
||||
if ! defined(Package[$kernelheaders_pkg]) {
|
||||
package { $kernelheaders_pkg: ensure => $package_ensure }
|
||||
}
|
||||
package {["openvswitch-switch", "openvswitch-datapath-dkms"]:
|
||||
ensure => $package_ensure,
|
||||
before => Service['openvswitch-switch'],
|
||||
service {'openvswitch':
|
||||
ensure => true,
|
||||
enable => true,
|
||||
name => $::vswitch::params::ovs_service_name,
|
||||
hasstatus => false, # the supplied command returns true even if it's not running
|
||||
# Not perfect - should spot if either service is not running - but it'll do
|
||||
status => "/etc/init.d/openvswitch-switch status | fgrep 'is running'",
|
||||
}
|
||||
exec { 'rebuild-ovsmod':
|
||||
command => "/usr/sbin/dpkg-reconfigure openvswitch-datapath-dkms > /tmp/reconf-log",
|
||||
creates => "/lib/modules/$::kernelrelease/updates/dkms/openvswitch_mod.ko",
|
||||
require => [Package['openvswitch-datapath-dkms', $kernelheaders_pkg]],
|
||||
creates => "/lib/modules/$::kernelrelease/updates/dkms/openvswitch_mod.ko",
|
||||
require => [Package['openvswitch-datapath-dkms', $kernelheaders_pkg]],
|
||||
before => Package['openvswitch-switch'],
|
||||
refreshonly => true
|
||||
}
|
||||
}
|
||||
'Redhat': {
|
||||
service {'openvswitch':
|
||||
ensure => true,
|
||||
enable => true,
|
||||
name => $::vswitch::params::ovs_service_name,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
service {"openvswitch-switch":
|
||||
ensure => true,
|
||||
enable => true,
|
||||
hasstatus => false, # the supplied command returns true even if it's not running
|
||||
# Not perfect - should spot if either service is not running - but it'll do
|
||||
status => "/etc/init.d/openvswitch-switch status | fgrep 'is running'",
|
||||
package { 'openvswitch':
|
||||
name => $vswitch::params::ovs_package_name,
|
||||
ensure => $package_ensure,
|
||||
before => Service['openvswitch'],
|
||||
}
|
||||
|
||||
Service['openvswitch-switch'] -> Vs_port<||>
|
||||
Service['openvswitch-switch'] -> Vs_bridge<||>
|
||||
Service['openvswitch'] -> Vs_port<||>
|
||||
Service['openvswitch'] -> Vs_bridge<||>
|
||||
}
|
||||
|
11
manifests/params.pp
Normal file
11
manifests/params.pp
Normal file
@ -0,0 +1,11 @@
|
||||
class vswitch::params {
|
||||
if $::osfamily == 'Redhat' {
|
||||
$ovs_package_name = 'openvswitch'
|
||||
$ovs_service_name = 'openvswitch'
|
||||
} elsif $::osfamily == 'Debian' {
|
||||
$ovs_package_name = ['openvswitch-switch', 'openvswitch-datapath-dkms']
|
||||
$ovs_service_name = 'openvswitch-switch'
|
||||
} else {
|
||||
fail("Unsupported osfamily ${$::osfamily}")
|
||||
}
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
define vswitch::port (
|
||||
$bridge,
|
||||
$ensure = present
|
||||
) {
|
||||
vs_port { $name:
|
||||
bridge => $bridge,
|
||||
ensure => $ensure
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user