feat: add mpls ldp to frrouting module

- update frr templates (add ldp/mpls)
- add params to frr class to manage mpls ldp
- add sysctl settings to hieradata for mpls
- load kernel modules for mpls
- add selinux module for frr
This commit is contained in:
2025-04-15 01:01:52 +10:00
parent 278f8001b0
commit 1998a36592
5 changed files with 113 additions and 3 deletions
+25 -1
View File
@@ -10,12 +10,17 @@ class frrouting (
Array[String] $ospfd_redistribute = [],
Array[String] $ospfd_networks = [],
Boolean $ospfd_default_originate_always = false,
Boolean $mpls_te_enabled = false,
Optional[String] $mpls_ldp_router_id = undef,
Optional[String] $mpls_ldp_transport_addr = undef,
Array[String] $mpls_ldp_interfaces = [],
) {
$daemons_defaults = {
'bgpd' => false,
'ospfd' => true,
'ospf6d' => false,
'ldpd' => false,
'ripd' => false,
'ripngd' => false,
'isisd' => false,
@@ -32,7 +37,7 @@ class frrouting (
'staticd' => false,
}
$daemons_merged = merge($daemons, $daemons_defaults)
$daemons_merged = merge($daemons_defaults, $daemons)
if $manage_package {
package { $package_name:
@@ -62,4 +67,23 @@ class frrouting (
hasrestart => true,
}
}
if $mpls_ldp_router_id and $mpls_ldp_transport_addr and !empty($mpls_ldp_interfaces) {
file { '/etc/modules-load.d/mpls_ldp_modules.conf':
ensure => file,
content => @(EOT/L),
# Load MPLS Kernel Modules
mpls_router
mpls_iptunnel
| EOT
}
['mpls_router', 'mpls_iptunnel'].each |$mod| {
exec { "load_${mod}":
command => "/sbin/modprobe ${mod}",
unless => "/sbin/lsmod | /bin/grep -q ^${mod}",
path => ['/sbin', '/bin', '/usr/sbin', '/usr/bin'],
}
}
}
}