From 280af2381dfe3899f6b0cf00f692091444f9b575 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 (cherry picked from commit 4bd67a42d0d812553db2caba2b56e01e90beaadb) (cherry picked from commit 0eaf41481bbd962853d5aba54d9f7973d292c7e5) (cherry picked from commit c10b3cf2c5c77cb3b9be61ac248df940357139ef) (cherry picked from commit 27c80b158260be74ce7b5cf6d511d40b27a5f881) --- 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 124a80d8..56a32b8f 100644 --- a/manifests/controller.pp +++ b/manifests/controller.pp @@ -99,6 +99,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', $amp_image_tag = $::os_service_default, @@ -122,6 +131,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 @@ -172,5 +183,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 dc851449..d5c02b1c 100644 --- a/spec/classes/octavia_controller_spec.rb +++ b/spec/classes/octavia_controller_spec.rb @@ -30,7 +30,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 @@ -52,6 +54,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 @@ -71,6 +75,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