From 3de4adbe19bf79e46b4ffc8fa3aafda08684f951 Mon Sep 17 00:00:00 2001 From: Carlos Goncalves Date: Fri, 11 Oct 2019 10:16:03 +0200 Subject: [PATCH] Add keepalivd vrrp parameters Change-Id: I26ad5d41239b6e770e975dc6f78fc46a87803220 (cherry picked from commit 8fd7b2e0ff231a602167af98f8fe7729c872b319) (cherry picked from commit b659647dbd21a48560750e611a9b7646f39f48be) --- manifests/controller.pp | 111 ++++++++++++------ ...rp-keepalived-params-81f235f8cc411c42.yaml | 3 + spec/classes/octavia_controller_spec.rb | 20 +++- 3 files changed, 95 insertions(+), 39 deletions(-) create mode 100644 releasenotes/notes/add-vrrp-keepalived-params-81f235f8cc411c42.yaml diff --git a/manifests/controller.pp b/manifests/controller.pp index f6f4ed89..52211537 100644 --- a/manifests/controller.pp +++ b/manifests/controller.pp @@ -92,27 +92,56 @@ # (optional) Seconds to wait for a port to detach from an amphora. # Defaults to $::os_service_default # +# [*vrrp_advert_int*] +# (optional) Amphora role and priority advertisement internal in seconds. +# Defaults to $::os_service_default +# +# [*vrrp_check_interval*] +# (optional) VRRP health check script run interval in seconds. +# Defaults to $::os_service_default +# +# [*vrrp_fail_count*] +# (optional) Number of successive failures before transition to a fail rate. +# Defaults to $::os_service_default +# +# [*vrrp_success_count*] +# (optional) Number of consecutive successes before transition to a success rate. +# Defaults to $::os_service_default +# +# [*vrrp_garp_refresh_interval*] +# (optional) Time in seconds between gratuitous ARP announcements from the MASTER. +# Defaults to $::os_service_default +# +# [*vrrp_garp_refresh_count*] +# (optional) Number of gratuitous ARP announcements to make on each refresh interval. +# Defaults to $::os_service_default class octavia::controller ( - $amp_flavor_id = '65', - $amp_image_tag = $::os_service_default, - $amp_secgroup_list = $::os_service_default, - $amp_boot_network_list = [], - $loadbalancer_topology = $::os_service_default, - $amphora_driver = 'amphora_haproxy_rest_driver', - $compute_driver = 'compute_nova_driver', - $network_driver = 'allowed_address_pairs_driver', - $enable_ssh_access = true, - $amp_ssh_key_name = 'octavia-ssh-key', - $timeout_client_data = $::os_service_default, - $timeout_member_connect = $::os_service_default, - $timeout_member_data = $::os_service_default, - $timeout_tcp_inspect = $::os_service_default, - $controller_ip_port_list = $::os_service_default, - $connection_max_retries = $::os_service_default, - $connection_retry_interval = $::os_service_default, - $connection_logging = $::os_service_default, - $build_active_retries = $::os_service_default, - $port_detach_timeout = $::os_service_default, + $amp_flavor_id = '65', + $amp_image_tag = $::os_service_default, + $amp_secgroup_list = $::os_service_default, + $amp_boot_network_list = [], + $loadbalancer_topology = $::os_service_default, + $amphora_driver = 'amphora_haproxy_rest_driver', + $compute_driver = 'compute_nova_driver', + $network_driver = 'allowed_address_pairs_driver', + $enable_ssh_access = true, + $amp_ssh_key_name = 'octavia-ssh-key', + $timeout_client_data = $::os_service_default, + $timeout_member_connect = $::os_service_default, + $timeout_member_data = $::os_service_default, + $timeout_tcp_inspect = $::os_service_default, + $controller_ip_port_list = $::os_service_default, + $connection_max_retries = $::os_service_default, + $connection_retry_interval = $::os_service_default, + $connection_logging = $::os_service_default, + $build_active_retries = $::os_service_default, + $port_detach_timeout = $::os_service_default, + $vrrp_advert_int = $::os_service_default, + $vrrp_check_interval = $::os_service_default, + $vrrp_fail_count = $::os_service_default, + $vrrp_success_count = $::os_service_default, + $vrrp_garp_refresh_interval = $::os_service_default, + $vrrp_garp_refresh_count = $::os_service_default, ) inherits octavia::params { include ::octavia::deps @@ -147,23 +176,29 @@ class octavia::controller ( } octavia_config { - 'controller_worker/amp_flavor_id' : value => $amp_flavor_id_real; - 'controller_worker/amp_image_tag' : value => $amp_image_tag_real; - 'controller_worker/amp_secgroup_list' : value => $amp_secgroup_list_real; - 'controller_worker/amp_boot_network_list' : value => $amp_boot_network_list_real; - 'controller_worker/loadbalancer_topology' : value => $loadbalancer_topology_real; - 'controller_worker/amphora_driver' : value => $amphora_driver_real; - 'controller_worker/compute_driver' : value => $compute_driver_real; - 'controller_worker/network_driver' : value => $network_driver_real; - 'haproxy_amphora/timeout_client_data' : value => $timeout_client_data_real; - 'haproxy_amphora/timeout_member_connect' : value => $timeout_member_connect_real; - 'haproxy_amphora/timeout_member_data' : value => $timeout_member_data_real; - 'haproxy_amphora/timeout_tcp_inspect' : value => $timeout_tcp_inspect_real; - 'health_manager/controller_ip_port_list' : value => $controller_ip_port_list; - 'haproxy_amphora/connection_max_retries' : value => $connection_max_retries; - 'haproxy_amphora/connection_retry_interval' : value => $connection_retry_interval; - 'haproxy_amphora/connection_logging' : value => $connection_logging; - 'haproxy_amphora/build_active_retries' : value => $build_active_retries; - 'networking/port_detach_timeout' : value => $port_detach_timeout; + 'controller_worker/amp_flavor_id' : value => $amp_flavor_id_real; + 'controller_worker/amp_image_tag' : value => $amp_image_tag_real; + 'controller_worker/amp_secgroup_list' : value => $amp_secgroup_list_real; + 'controller_worker/amp_boot_network_list' : value => $amp_boot_network_list_real; + 'controller_worker/loadbalancer_topology' : value => $loadbalancer_topology_real; + 'controller_worker/amphora_driver' : value => $amphora_driver_real; + 'controller_worker/compute_driver' : value => $compute_driver_real; + 'controller_worker/network_driver' : value => $network_driver_real; + 'haproxy_amphora/timeout_client_data' : value => $timeout_client_data_real; + 'haproxy_amphora/timeout_member_connect' : value => $timeout_member_connect_real; + 'haproxy_amphora/timeout_member_data' : value => $timeout_member_data_real; + 'haproxy_amphora/timeout_tcp_inspect' : value => $timeout_tcp_inspect_real; + 'health_manager/controller_ip_port_list' : value => $controller_ip_port_list; + 'haproxy_amphora/connection_max_retries' : value => $connection_max_retries; + 'haproxy_amphora/connection_retry_interval' : value => $connection_retry_interval; + 'haproxy_amphora/connection_logging' : value => $connection_logging; + 'haproxy_amphora/build_active_retries' : value => $build_active_retries; + 'networking/port_detach_timeout' : value => $port_detach_timeout; + 'keepalived_vrrp/vrrp_advert_int' : value => $vrrp_advert_int; + 'keepalived_vrrp/vrrp_check_interval' : value => $vrrp_check_interval; + 'keepalived_vrrp/vrrp_fail_count' : value => $vrrp_fail_count; + 'keepalived_vrrp/vrrp_success_count' : value => $vrrp_success_count; + 'keepalived_vrrp/vrrp_garp_refresh_interval' : value => $vrrp_garp_refresh_interval; + 'keepalived_vrrp/vrrp_garp_refresh_count' : value => $vrrp_garp_refresh_count; } } diff --git a/releasenotes/notes/add-vrrp-keepalived-params-81f235f8cc411c42.yaml b/releasenotes/notes/add-vrrp-keepalived-params-81f235f8cc411c42.yaml new file mode 100644 index 00000000..b69eed1b --- /dev/null +++ b/releasenotes/notes/add-vrrp-keepalived-params-81f235f8cc411c42.yaml @@ -0,0 +1,3 @@ +--- +features: + - Added Keepalived VRRP parameters. diff --git a/spec/classes/octavia_controller_spec.rb b/spec/classes/octavia_controller_spec.rb index e6d673cf..59fb51e7 100644 --- a/spec/classes/octavia_controller_spec.rb +++ b/spec/classes/octavia_controller_spec.rb @@ -24,7 +24,13 @@ describe 'octavia::controller' do :connection_retry_interval => 10, :connection_logging => false, :build_active_retries => 5, - :port_detach_timeout => 15 + :port_detach_timeout => 15, + :vrrp_advert_int => 1, + :vrrp_check_interval => 5, + :vrrp_fail_count => 2, + :vrrp_success_count => 2, + :vrrp_garp_refresh_interval => 5, + :vrrp_garp_refresh_count => 2 } end @@ -40,6 +46,12 @@ describe 'octavia::controller' do it { is_expected.to contain_octavia_config('haproxy_amphora/connection_logging').with_value(false) } it { is_expected.to contain_octavia_config('haproxy_amphora/build_active_retries').with_value(5) } it { is_expected.to contain_octavia_config('networking/port_detach_timeout').with_value(15) } + it { is_expected.to contain_octavia_config('keepalived_vrrp/vrrp_advert_int').with_value(1) } + it { is_expected.to contain_octavia_config('keepalived_vrrp/vrrp_check_interval').with_value(5) } + it { is_expected.to contain_octavia_config('keepalived_vrrp/vrrp_fail_count').with_value(2) } + it { is_expected.to contain_octavia_config('keepalived_vrrp/vrrp_success_count').with_value(2) } + it { is_expected.to contain_octavia_config('keepalived_vrrp/vrrp_garp_refresh_interval').with_value(5) } + it { is_expected.to contain_octavia_config('keepalived_vrrp/vrrp_garp_refresh_count').with_value(2) } end it 'configures worker parameters' do @@ -57,6 +69,12 @@ describe 'octavia::controller' do is_expected.to contain_octavia_config('haproxy_amphora/connection_logging').with_value('') is_expected.to contain_octavia_config('haproxy_amphora/build_active_retries').with_value('') is_expected.to contain_octavia_config('networking/port_detach_timeout').with_value('') + is_expected.to contain_octavia_config('keepalived_vrrp/vrrp_advert_int').with_value('') + is_expected.to contain_octavia_config('keepalived_vrrp/vrrp_check_interval').with_value('') + is_expected.to contain_octavia_config('keepalived_vrrp/vrrp_fail_count').with_value('') + is_expected.to contain_octavia_config('keepalived_vrrp/vrrp_success_count').with_value('') + is_expected.to contain_octavia_config('keepalived_vrrp/vrrp_garp_refresh_interval').with_value('') + is_expected.to contain_octavia_config('keepalived_vrrp/vrrp_garp_refresh_count').with_value('') end context 'with ssh key access disabled' do