keepalived: create internal VRRP session only if needed
Instead of defining an empty hash by default, let's use false to disable the feature like it was documented in puppet-doc manifest. Also add a new unit test to validate the keepalived_internal_ipvs VRRP session is disabled by default. Also, validate the internal & public VIP are not the same and create a unit test for this case.
This commit is contained in:
@@ -211,7 +211,7 @@ class cloud::loadbalancer(
|
|||||||
$keepalived_public_interface = 'eth0',
|
$keepalived_public_interface = 'eth0',
|
||||||
$keepalived_public_ipvs = ['127.0.0.1'],
|
$keepalived_public_ipvs = ['127.0.0.1'],
|
||||||
$keepalived_internal_interface = 'eth1',
|
$keepalived_internal_interface = 'eth1',
|
||||||
$keepalived_internal_ipvs = [],
|
$keepalived_internal_ipvs = false,
|
||||||
$keepalived_auth_type = undef,
|
$keepalived_auth_type = undef,
|
||||||
$keepalived_auth_pass = undef,
|
$keepalived_auth_pass = undef,
|
||||||
$ceilometer_bind_options = [],
|
$ceilometer_bind_options = [],
|
||||||
@@ -317,7 +317,8 @@ class cloud::loadbalancer(
|
|||||||
notify_backup => $::cloud::params::stop_haproxy_service,
|
notify_backup => $::cloud::params::stop_haproxy_service,
|
||||||
}
|
}
|
||||||
|
|
||||||
if !empty($keepalived_internal_ipvs) {
|
|
||||||
|
if $keepalived_internal_ipvs and !empty(difference($keepalived_internal_ipvs, $keepalived_public_ipvs)) {
|
||||||
if ! $keepalived_vrrp_interface {
|
if ! $keepalived_vrrp_interface {
|
||||||
$keepalived_vrrp_interface_internal = $keepalived_internal_interface
|
$keepalived_vrrp_interface_internal = $keepalived_internal_interface
|
||||||
} else {
|
} else {
|
||||||
|
@@ -62,6 +62,7 @@ describe 'cloud::loadbalancer' do
|
|||||||
:keepalived_vrrp_interface => false,
|
:keepalived_vrrp_interface => false,
|
||||||
:keepalived_public_interface => 'eth0',
|
:keepalived_public_interface => 'eth0',
|
||||||
:keepalived_public_ipvs => ['10.0.0.1', '10.0.0.2'],
|
:keepalived_public_ipvs => ['10.0.0.1', '10.0.0.2'],
|
||||||
|
:keepalived_internal_ipvs => false,
|
||||||
:keepalived_auth_type => 'PASS',
|
:keepalived_auth_type => 'PASS',
|
||||||
:keepalived_auth_pass => 'secret',
|
:keepalived_auth_pass => 'secret',
|
||||||
:horizon_port => '80',
|
:horizon_port => '80',
|
||||||
@@ -102,6 +103,19 @@ describe 'cloud::loadbalancer' do
|
|||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'do not configure an internal VRRP instance by default' do
|
||||||
|
is_expected.not_to contain_keepalived__instance('2')
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'configure an internal VIP with the same VIP as public network' do
|
||||||
|
before do
|
||||||
|
params.merge!(:keepalived_internal_ipvs => ['10.0.0.1', '10.0.0.2'])
|
||||||
|
end
|
||||||
|
it 'shoult not configure an internal VRRP instance' do
|
||||||
|
is_expected.not_to contain_keepalived__instance('2')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'configure an internal VIP' do
|
context 'configure an internal VIP' do
|
||||||
before do
|
before do
|
||||||
params.merge!(:keepalived_internal_ipvs => ['192.168.0.1'])
|
params.merge!(:keepalived_internal_ipvs => ['192.168.0.1'])
|
||||||
|
Reference in New Issue
Block a user