From 4bd67a42d0d812553db2caba2b56e01e90beaadb Mon Sep 17 00:00:00 2001 From: Michael Johnson Date: Mon, 18 Nov 2019 10:59:14 -0800 Subject: [PATCH] Add parameters for amphora anti-affinity This patch adds the Octavia configuration parameters for amphora anti-affinity when using active/standby topology load balancers. Change-Id: I9e636b2d420497f7bf65912fddf7cba72d350a9e --- manifests/controller.pp | 13 +++++++++++++ .../notes/add-anti-affinity-0f80e4ac5fd4bde6.yaml | 5 +++++ spec/classes/octavia_controller_spec.rb | 8 +++++++- 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/add-anti-affinity-0f80e4ac5fd4bde6.yaml diff --git a/manifests/controller.pp b/manifests/controller.pp index 9da8457b..f2407c59 100644 --- a/manifests/controller.pp +++ b/manifests/controller.pp @@ -150,6 +150,15 @@ # [*vrrp_garp_refresh_count*] # (optional) Number of gratuitous ARP announcements to make on each refresh interval. # Defaults to $::os_service_default +# +# [*enable_anti_affinity*] +# (optional) Flag to indicate if octavia anti-affinity feature is turned on. +# Defaults to $::os_service_default +# +# [*anti_affinity_policy*] +# (optional) Sets the nova anti-affinity policy for octavia. +# Defaults to $::os_service_default + # class octavia::controller ( $amp_flavor_id = '65', @@ -185,6 +194,8 @@ class octavia::controller ( $vrrp_success_count = $::os_service_default, $vrrp_garp_refresh_interval = $::os_service_default, $vrrp_garp_refresh_count = $::os_service_default, + $enable_anti_affinity = $::os_service_default, + $anti_affinity_policy = $::os_service_default, ) inherits octavia::params { include ::octavia::deps @@ -250,5 +261,7 @@ class octavia::controller ( '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; + 'nova/enable_anti_affinity' : value => $enable_anti_affinity; + 'nova/anti_affinity_policy' : value => $anti_affinity_policy; } } diff --git a/releasenotes/notes/add-anti-affinity-0f80e4ac5fd4bde6.yaml b/releasenotes/notes/add-anti-affinity-0f80e4ac5fd4bde6.yaml new file mode 100644 index 00000000..9b6a5e92 --- /dev/null +++ b/releasenotes/notes/add-anti-affinity-0f80e4ac5fd4bde6.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + Add parameters to enable and configure nova anti-affinity for + active/standby amphorae. diff --git a/spec/classes/octavia_controller_spec.rb b/spec/classes/octavia_controller_spec.rb index 062294b6..61c72b29 100644 --- a/spec/classes/octavia_controller_spec.rb +++ b/spec/classes/octavia_controller_spec.rb @@ -37,7 +37,9 @@ describe 'octavia::controller' do :vrrp_fail_count => 2, :vrrp_success_count => 2, :vrrp_garp_refresh_interval => 5, - :vrrp_garp_refresh_count => 2 + :vrrp_garp_refresh_count => 2, + :enable_anti_affinity => true, + :anti_affinity_policy => 'anti-affinity' } end @@ -66,6 +68,8 @@ describe 'octavia::controller' do 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) } + it { is_expected.to contain_octavia_config('nova/enable_anti_affinity').with_value(true) } + it { is_expected.to contain_octavia_config('nova/anti_affinity_policy').with_value('anti-affinity') } end it 'configures worker parameters' do @@ -96,6 +100,8 @@ describe 'octavia::controller' do 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('') + is_expected.to contain_octavia_config('nova/enable_anti_affinity').with_value('') + is_expected.to contain_octavia_config('nova/anti_affinity_policy').with_value('') end context 'with ssh key access disabled' do