Fixes issues with raising mysql file limit
Changes Include: - Adds spec testing - Only raise limits if nonha. puppet-systemd will restart the mariadb service which breaks ha deployments. Hence we only want to do this in noha. - Minor fix to hiera value refrenced not as parameter to mysql.pp Partial-Bug: #1648181 Related-Bug: #1524809 Co-Authored By: Feng Pan <fpan@redhat.com> Change-Id: Id063bf4b4ac229181b01f40965811cb8ac4230d5 Signed-off-by: Tim Rozet <trozet@redhat.com> Signed-off-by: Feng Pan <fpan@redhat.com>
This commit is contained in:
parent
cc3d236ce4
commit
c9acf8a687
@ -40,3 +40,7 @@ mod 'certmonger',
|
||||
mod 'ntp',
|
||||
:git => 'https://github.com/puppetlabs/puppetlabs-ntp',
|
||||
:ref => '4.2.x'
|
||||
|
||||
mod 'systemd',
|
||||
:git => 'https://github.com/camptocamp/puppet-systemd',
|
||||
:ref => 'master'
|
||||
|
@ -62,6 +62,10 @@
|
||||
# Should be an hash.
|
||||
# Defaults to {}
|
||||
#
|
||||
# [*mysql_max_connections*]
|
||||
# (Optional) Maximum number of connections to MySQL.
|
||||
# Defaults to hiera('mysql_max_connections', undef)
|
||||
#
|
||||
# [*remove_default_accounts*]
|
||||
# (Optional) Whether or not remove default MySQL accounts.
|
||||
# Defaults to true
|
||||
@ -81,6 +85,7 @@ class tripleo::profile::base::database::mysql (
|
||||
$generate_service_certificates = hiera('generate_service_certificates', false),
|
||||
$manage_resources = true,
|
||||
$mysql_server_options = {},
|
||||
$mysql_max_connections = hiera('mysql_max_connections', undef),
|
||||
$remove_default_accounts = true,
|
||||
$step = hiera('step'),
|
||||
) {
|
||||
@ -126,7 +131,7 @@ class tripleo::profile::base::database::mysql (
|
||||
$mysql_server_default = {
|
||||
'mysqld' => {
|
||||
'bind-address' => $bind_address,
|
||||
'max_connections' => hiera('mysql_max_connections'),
|
||||
'max_connections' => $mysql_max_connections,
|
||||
'open_files_limit' => '-1',
|
||||
'innodb_file_per_table' => 'ON',
|
||||
'ssl' => $enable_internal_tls,
|
||||
@ -146,11 +151,11 @@ class tripleo::profile::base::database::mysql (
|
||||
remove_default_accounts => $remove_default_accounts,
|
||||
}
|
||||
|
||||
if $generate_dropin_file_limit {
|
||||
if $generate_dropin_file_limit and $manage_resources {
|
||||
# Raise the mysql file limit
|
||||
::systemd::service_limits { 'mariadb.service':
|
||||
limits => {
|
||||
LimitNOFILE => 16384
|
||||
'LimitNOFILE' => 16384
|
||||
}
|
||||
}
|
||||
}
|
||||
|
75
spec/classes/tripleo_profile_base_database_mysql_spec.rb
Normal file
75
spec/classes/tripleo_profile_base_database_mysql_spec.rb
Normal file
@ -0,0 +1,75 @@
|
||||
#
|
||||
# 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::database::mysql' do
|
||||
let :params do
|
||||
{ :step => 2,
|
||||
:mysql_max_connections => 4096,
|
||||
}
|
||||
end
|
||||
shared_examples_for 'tripleo::profile::base::database::mysql' do
|
||||
before :each do
|
||||
facts.merge!({ :step => params[:step] })
|
||||
end
|
||||
|
||||
context 'with noha and raise mariadb limit' do
|
||||
before do
|
||||
params.merge!({
|
||||
:generate_dropin_file_limit => true
|
||||
})
|
||||
end
|
||||
it 'should create limit file' do
|
||||
is_expected.to contain_systemd__service_limits('mariadb.service').with(
|
||||
:limits => { "LimitNOFILE" => 16384 })
|
||||
end
|
||||
end
|
||||
|
||||
context 'with noha and do not raise mariadb limit' do
|
||||
before do
|
||||
params.merge!({
|
||||
:generate_dropin_file_limit => false
|
||||
})
|
||||
end
|
||||
it 'should not create limit file' do
|
||||
is_expected.to_not contain_systemd__service_limits('mariadb.service')
|
||||
end
|
||||
end
|
||||
|
||||
context 'with ha and raise mariadb limit' do
|
||||
before do
|
||||
params.merge!({
|
||||
:generate_dropin_file_limit => true,
|
||||
:manage_resources => false,
|
||||
})
|
||||
end
|
||||
it 'should not create limit file in ha' do
|
||||
is_expected.to_not contain_systemd__service_limits('mariadb.service')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
on_supported_os.each do |os, facts|
|
||||
context "on #{os}" do
|
||||
let(:facts) do
|
||||
facts.merge({ :hostname => 'node.example.com' })
|
||||
end
|
||||
|
||||
it_behaves_like 'tripleo::profile::base::database::mysql'
|
||||
end
|
||||
end
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user