Puppet Class: base::kernel

Defined in:
modules/base/manifests/kernel.pp

Overview

Parameters:

  • overlayfs (Any)


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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'modules/base/manifests/kernel.pp', line 8

class base::kernel(
    $overlayfs,
    ) {
    if ! $overlayfs {
        kmod::blacklist { 'wmf_overlay':
            modules => [
                'overlayfs',
                'overlay',
            ],
        }
    } else {
        kmod::blacklist { 'wmf_overlay':
            ensure => absent,
        }

        # On a fresh node overlay may be unloaded automatically by the OS
        # if no fs needs it. In this case the kern.log should look like:
        # kernel: request_module fs-overlay succeeded, but still no fs?
        # This may lead to unwanted side effects, like Docker not finding
        # the overlay kernel module loaded and falling back to
        # the device-mapper storage driver.
        # Therefore we explicitly load the overlay module when the overlayfs
        # option is true.
        kmod::module { 'overlay':
            ensure => 'present',
        }
    }

    kmod::blacklist { 'wmf':
        modules => [
            'asn1_decoder',
            'aufs',
            'usbip-core',
            'usbip-host',
            'vhci-hcd',
            'dccp',
            'dccp_ipv6',
            'dccp_ipv4',
            'dccp_probe',
            'dccp_diag',
            'n_hdlc',
            'intel_cstate',
            'intel_rapl_perf',
            'intel_uncore',
            'macsec',
            'parport',
            'parport_pc',
            'ppdev',
            'acpi_power_meter',
            'bluetooth',
            'v4l2-common',
            'floppy',
            'cdrom',
            'binder_linux',
            'n_gsm',
            'algif_aead',
            'appletalk',
            'rxrpc',
            'nfc',
            'esp4',
            'esp6',
            'tipc',
            'atm',
            'slip',
            'slhc',
            'sctp',
            'rds',
            'rds_rdma',
            'rds_tcp',
            'mpls_iptunnel',
            'mpls_router',
            'ah6',
            'ah4',
            'pppoe',
            'kcm',
            'phonet',
        ],
    }

    # File systems not in use, blacklist as additional bandaid
    kmod::blacklist { 'wmf-filesystems':
        modules => [
            'btrfs',
            'erofs',
            'exfat',
            'f2fs',
            'hfs',
            'hfsplus',
            'jfs',
            'jffs2',
            'nilfs2',
            'orangefs',
            'squashfs',
        ],
    }

    # Network schedulers/packet mangling module we don't use or need
    kmod::blacklist { 'wmf-network-schedulers':
        modules => [
            'act_connmark',
            'act_pedit',
            'sch_red',
            'sch_taprio',
        ],
    }

    file { '/usr/local/bin/kernel-purge':
        ensure => file,
        mode   => '0755',
        source => 'puppet:///modules/base/kernel/kernel-purge.sh',
    }

    systemd::timer::job { 'kernel-purge':
        ensure      => present,
        description => 'Purge unused kernels',
        user        => 'root',
        command     => '/usr/local/bin/kernel-purge -p',
        interval    => {'start' => 'OnCalendar', 'interval' => 'monthly'},
    }
}