diff --git a/manifests/controller.pp b/manifests/controller.pp index 52211537..f9b72a27 100644 --- a/manifests/controller.pp +++ b/manifests/controller.pp @@ -115,6 +115,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, @@ -142,6 +151,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 @@ -200,5 +211,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 59fb51e7..a0e6e7f4 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 @@ -75,6 +79,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