Merge "Ignore failures when loading nf_conntrack_proto_sctp kernel module"

This commit is contained in:
Jenkins 2017-06-21 16:21:26 +00:00 committed by Gerrit Code Review
commit 64695c7085
3 changed files with 91 additions and 5 deletions

View File

@ -17,14 +17,32 @@
#
# Load and configure Kernel modules.
#
class tripleo::profile::base::kernel {
# === Parameters
#
# [*module_list*]
# (Optional) List of kernel modules to load.
# Defaults to hiera('kernel_modules')
#
# [*sysctl_settings*]
# (Optional) List of sysctl settings to load.
# Defaults to hiera('sysctl_settings')
#
class tripleo::profile::base::kernel (
$module_list = hiera('kernel_modules', undef),
$sysctl_settings = hiera('sysctl_settings', undef),
) {
if hiera('kernel_modules', undef) {
create_resources(kmod::load, hiera('kernel_modules'), { })
if $module_list {
create_resources(kmod::load, $module_list, { })
}
if hiera('sysctl_settings', undef) {
create_resources(sysctl::value, hiera('sysctl_settings'), { })
if $sysctl_settings {
create_resources(sysctl::value, $sysctl_settings, { })
}
Exec <| tag == 'kmod::load' |> -> Sysctl <| |>
# RHEL 7.4+ workaround where this functionality is built into the
# kernel instead of being built as a module.
# That way, we can support both 7.3 and 7.4 RHEL versions.
# https://bugzilla.redhat.com/show_bug.cgi?id=1387537
Exec <| title == 'modprobe nf_conntrack_proto_sctp' |> { returns => [0,1] }
}

View File

@ -0,0 +1,9 @@
---
issues:
- |
Ignore failures if nf_conntrack_proto_sctp module failed to load.
Since RHEL 7.4, nf_conntrack_proto_sctp module is compiled into the
kernel instead of as a module as the sctp support.
TripleO will still try to load the module to support RHEL 7.3, but
in the future will remove the module management and rely on the kernel
provided in newer versions of RHEL.

View File

@ -0,0 +1,59 @@
#
# Copyright (C) 2017 Red Hat, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
require 'spec_helper'
describe 'tripleo::profile::base::kernel' do
shared_examples_for 'tripleo::profile::base::kernel' do
context 'with kernel modules' do
let :params do
{
:module_list => {
'nf_conntrack' => {},
}
}
end
it 'should load kernel module' do
is_expected.to contain_kmod__load('nf_conntrack')
end
end
context 'with sysctl settings' do
let :params do
{
:sysctl_settings => {
'net.ipv4.tcp_keepalive_intvl' => { 'value' => '1'},
}
}
end
it 'should load kernel module' do
is_expected.to contain_sysctl__value('net.ipv4.tcp_keepalive_intvl')
end
end
end
on_supported_os.each do |os, facts|
context "on #{os}" do
let(:facts) {
facts
}
it_behaves_like 'tripleo::profile::base::kernel'
end
end
end