Cleanup deprecated controller parameters from octavia::worker

Change-Id: I69b5068e4ca3b1a43ab3d267b8a0a47e2bb50480
This commit is contained in:
Takashi Kajinami 2020-08-02 23:32:30 +09:00
parent a172b1d9dc
commit bccc230352
5 changed files with 65 additions and 174 deletions

View File

@ -207,29 +207,13 @@ class octavia::controller (
include octavia::deps
include octavia::db
# For backward compatibility
$amp_flavor_id_real = pick($::octavia::worker::amp_flavor_id, $amp_flavor_id)
$amp_image_tag_real = pick($::octavia::worker::amp_image_tag, $amp_image_tag)
$amp_secgroup_list_real = pick($::octavia::worker::amp_secgroup_list, $amp_secgroup_list)
$amp_boot_network_list_real = pick($::octavia::worker::amp_boot_network_list, $amp_boot_network_list)
$loadbalancer_topology_real = pick($::octavia::worker::loadbalancer_topology, $loadbalancer_topology)
$amphora_driver_real = pick($::octavia::worker::amphora_driver, $amphora_driver)
$compute_driver_real = pick($::octavia::worker::compute_driver, $compute_driver)
$network_driver_real = pick($::octavia::worker::network_driver, $network_driver)
$amp_ssh_key_name_real = pick($::octavia::worker::amp_ssh_key_name, $amp_ssh_key_name)
$enable_ssh_access_real = pick($::octavia::worker::enable_ssh_access, $enable_ssh_access)
$timeout_client_data_real = pick($::octavia::worker::timeout_client_data, $timeout_client_data)
$timeout_member_connect_real = pick($::octavia::worker::timeout_member_connect, $timeout_member_connect)
$timeout_member_data_real = pick($::octavia::worker::timeout_member_data, $timeout_member_data)
$timeout_tcp_inspect_real = pick($::octavia::worker::timeout_tcp_inspect, $timeout_tcp_inspect)
if ! is_service_default($::octavia::controller::loadbalancer_topology_real) and
! ($::octavia::controller::loadbalancer_topology_real in ['SINGLE', 'ACTIVE_STANDBY']) {
if ! is_service_default($loadbalancer_topology) and
! ($loadbalancer_topology in ['SINGLE', 'ACTIVE_STANDBY']) {
fail('load balancer topology must be one of SINGLE or ACTIVE_STANDBY')
}
if $enable_ssh_access_real {
octavia_config { 'controller_worker/amp_ssh_key_name' : value => $amp_ssh_key_name_real; }
if $enable_ssh_access {
octavia_config { 'controller_worker/amp_ssh_key_name' : value => $amp_ssh_key_name; }
}
else {
octavia_config { 'controller_worker/amp_ssh_key_name' : value => $::os_service_default }
@ -238,19 +222,19 @@ class octavia::controller (
octavia_config {
'controller_worker/amp_active_retries' : value => $amp_active_retries;
'controller_worker/amp_active_wait_sec' : value => $amp_active_wait_sec;
'controller_worker/amp_flavor_id' : value => $amp_flavor_id_real;
'controller_worker/amp_image_tag' : value => $amp_image_tag_real;
'controller_worker/amp_flavor_id' : value => $amp_flavor_id;
'controller_worker/amp_image_tag' : value => $amp_image_tag;
'controller_worker/amp_image_owner_id' : value => $amp_image_owner_id;
'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;
'controller_worker/amp_secgroup_list' : value => $amp_secgroup_list;
'controller_worker/amp_boot_network_list' : value => $amp_boot_network_list;
'controller_worker/loadbalancer_topology' : value => $loadbalancer_topology;
'controller_worker/amphora_driver' : value => $amphora_driver;
'controller_worker/compute_driver' : value => $compute_driver;
'controller_worker/network_driver' : value => $network_driver;
'haproxy_amphora/timeout_client_data' : value => $timeout_client_data;
'haproxy_amphora/timeout_member_connect' : value => $timeout_member_connect;
'haproxy_amphora/timeout_member_data' : value => $timeout_member_data;
'haproxy_amphora/timeout_tcp_inspect' : value => $timeout_tcp_inspect;
'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;

View File

@ -42,70 +42,6 @@
# (optional) Set the project to be used for creating load balancer instances.
# Defaults to undef
#
# DEPRECATED PARAMETERS
#
# [*amp_flavor_id*]
# (optional) Nova instance flavor id for the Amphora.
# Note: since we set manage_nova_flavor to True by default, we need
# to set a valid amp_flavor_id by default, 65 was picked randomly.
# Defaults to undef
#
# [*amp_image_tag*]
# Glance image tag for Amphora image. Allows the Amphora image to be
# referred to by a tag instead of an ID, allowing the Amphora image to
# be updated without requiring reconfiguration of Octavia.
# Defaults to undef
#
# [*amp_secgroup_list*]
# List of security groups to use for Amphorae.
# Defaults to undef
#
# [*amp_boot_network_list*]
# List of networks to attach to Amphorae.
# Defaults to undef
#
# [*loadbalancer_topology*]
# (optional) Load balancer topology configuration
# Defaults to undef
#
# [*amphora_driver*]
# (optional) Name of driver for communicating with amphorae
# Defaults to undef
#
# [*compute_driver*]
# (optional) Name of driver for managing amphorae VMs
# Defaults to undef
#
# [*network_driver*]
# (optional) Name of network driver for configuring networking
# for amphorae.
# Defaults to undef
#
# [*amp_ssh_key_name*]
# (optional) Name of Openstack SSH keypair for communicating with amphora
# Defaults to undef
#
# [*enable_ssh_access*]
# (optional) Enable SSH key configuration for amphorae. Note that setting
# to false disables configuration of SSH key related properties.
# Defaults to undef
#
# [*timeout_client_data*]
# (optional) Frontend client inactivity timeout.
# Defaults to undef
#
# [*timeout_member_connect*]
# (optional) Backend member connection timeout.
# Defaults to undef
#
# [*timeout_member_data*]
# (optional) Backend member inactivity timeout.'
# Defaults to undef
#
# [*timeout_tcp_inspect*]
# (optional) Time to wait for TCP packets for content inspection.
# Defaults to undef
#
class octavia::worker (
$manage_service = true,
$enabled = true,
@ -116,21 +52,6 @@ class octavia::worker (
$key_path = '/etc/octavia/.ssh/octavia_ssh_key',
$manage_keygen = false,
$amp_project_name = undef,
# DEPRECATED PARAMETERS
$amp_flavor_id = undef,
$amp_image_tag = undef,
$amp_secgroup_list = undef,
$amp_boot_network_list = undef,
$loadbalancer_topology = undef,
$amphora_driver = undef,
$compute_driver = undef,
$network_driver = undef,
$amp_ssh_key_name = undef,
$enable_ssh_access = undef,
$timeout_client_data = undef,
$timeout_member_connect = undef,
$timeout_member_data = undef,
$timeout_tcp_inspect = undef,
) inherits octavia::params {
include octavia::deps
@ -139,18 +60,9 @@ class octavia::worker (
include octavia::controller
}
if ($amp_flavor_id or $amp_image_tag or $amp_secgroup_list or $amp_boot_network_list or $loadbalancer_topology or $amphora_driver or
$compute_driver or $network_driver or $amp_ssh_key_name or $enable_ssh_access or $timeout_client_data or $timeout_member_connect or
$timeout_member_data or $timeout_tcp_inspect ) {
warning('The amp_flavor_id, amp_image_tag, amp_secgroup_list, amp_boot_network_list, loadbalancer_topology, amphora_driver,
compute_driver, network_driver, amp_ssh_key_name, enable_ssh_access, timeout_member_connect, timeout_member_data and
timeout_tcp_inspect parameters are deprecated and have been moved to octavia::controller class. Please set them there, you must
set octavia::controller class before octavia::worker!')
}
validate_legacy(Hash, 'validate_hash', $nova_flavor_config)
if ! $::octavia::controller::amp_flavor_id_real {
if ! $::octavia::controller::amp_flavor_id {
if $manage_nova_flavor {
fail('When managing Nova flavor, octavia::controller::amp_flavor_id is required.')
} else {
@ -158,8 +70,8 @@ class octavia::worker (
}
} else {
if $manage_nova_flavor {
$octavia_flavor = { "octavia_${::octavia::controller::amp_flavor_id_real}" =>
{ 'id' => $::octavia::controller::amp_flavor_id_real,
$octavia_flavor = { "octavia_${::octavia::controller::amp_flavor_id}" =>
{ 'id' => $::octavia::controller::amp_flavor_id,
'project' => $amp_project_name
}
}
@ -201,7 +113,7 @@ class octavia::worker (
tag => ['octavia-service'],
}
if $manage_keygen and ! $::octavia::controller::enable_ssh_access_real {
if $manage_keygen and ! $::octavia::controller::enable_ssh_access {
fail('SSH key management cannot be enabled when SSH key access is disabled')
}
@ -220,18 +132,18 @@ class octavia::worker (
owner => 'octavia'
}
ssh_keygen { $::octavia::controller::amp_ssh_key_name_real:
ssh_keygen { $::octavia::controller::amp_ssh_key_name:
user => 'octavia',
type => 'rsa',
bits => 2048,
filename => "${key_path}/${::octavia::controller::amp_ssh_key_name_real}",
filename => "${key_path}/${::octavia::controller::amp_ssh_key_name}",
comment => 'Used for Octavia Service VM'
}
Package<| tag == 'octavia-package' |>
-> Exec['create_amp_key_dir']
-> File['amp_key_dir']
-> Ssh_keygen[$::octavia::controller::amp_ssh_key_name_real]
-> Ssh_keygen[$::octavia::controller::amp_ssh_key_name]
}
octavia_config {

View File

@ -0,0 +1,20 @@
---
upgrade:
- |
The following deprecated parameters of the ``octavia::worker`` class have
been removed. Use the same parameters in the ``octavia::controller`` class.
- ``amp_flavor_id``
- ``amp_image_tag``
- ``amp_secgroup_list``
- ``amp_boot_network_list``
- ``loadbalancer_topology``
- ``amphora_driver``
- ``compute_driver``
- ``network_driver``
- ``amp_ssh_key_name``
- ``enable_ssh_access``
- ``timeout_client_data``
- ``timeout_member_connect``
- ``timeout_member_data``
- ``timeout_tcp_inspect``

View File

@ -55,9 +55,11 @@ describe 'basic octavia' do
class { 'octavia::api':
sync_db => true,
}
class { 'octavia::worker':
class { 'octavia::controller':
amp_flavor_id => '65',
}
class { 'octavia::worker':
}
class { 'octavia::health_manager':
heartbeat_key => 'abcdefghijkl',
}

View File

@ -15,25 +15,17 @@ describe 'octavia::worker' do
shared_examples_for 'octavia-worker' do
context 'with invalid lb topology' do
before do
params.merge!({
:loadbalancer_topology => 'foo'
})
end
it { is_expected.to raise_error(Puppet::Error) }
end
context 'configured with specific parameters' do
let :pre_condition do
"include nova
class { 'octavia::controller' :
amp_flavor_id => '42',
}"
end
before do
params.merge!({
:workers => 8,
:amp_flavor_id => '42',
:amp_image_tag => 'amphorae1',
:amp_secgroup_list => ['lb-mgmt-sec-grp'],
:amp_boot_network_list => ['lbnet1', 'lbnet2'],
:loadbalancer_topology => 'SINGLE',
:amp_ssh_key_name => 'custom-amphora-key',
:key_path => '/opt/octavia/ssh/amphora_key',
:amp_project_name => 'loadbalancers',
:nova_flavor_config => {
@ -45,12 +37,6 @@ describe 'octavia::worker' do
end
it { is_expected.to contain_octavia_config('controller_worker/workers').with_value(8) }
it { is_expected.to contain_octavia_config('controller_worker/amp_flavor_id').with_value('42') }
it { is_expected.to contain_octavia_config('controller_worker/amp_image_tag').with_value('amphorae1') }
it { is_expected.to contain_octavia_config('controller_worker/amp_secgroup_list').with_value(['lb-mgmt-sec-grp']) }
it { is_expected.to contain_octavia_config('controller_worker/amp_boot_network_list').with_value(['lbnet1', 'lbnet2']) }
it { is_expected.to contain_octavia_config('controller_worker/loadbalancer_topology').with_value('SINGLE') }
it { is_expected.to contain_octavia_config('controller_worker/amp_ssh_key_name').with_value('custom-amphora-key') }
it 'deploys a nova flavor for amphora' do
is_expected.to contain_nova_flavor('octavia_42').with(
:ensure => 'present',
@ -65,33 +51,17 @@ describe 'octavia::worker' do
end
end
it 'configures worker parameters' do
is_expected.to contain_octavia_config('controller_worker/workers').with_value(4)
is_expected.to contain_octavia_config('controller_worker/amp_flavor_id').with_value('65')
is_expected.to contain_octavia_config('controller_worker/amphora_driver').with_value('amphora_haproxy_rest_driver')
is_expected.to contain_octavia_config('controller_worker/compute_driver').with_value('compute_nova_driver')
is_expected.to contain_octavia_config('controller_worker/network_driver').with_value('allowed_address_pairs_driver')
is_expected.to contain_octavia_config('controller_worker/amp_ssh_key_name').with_value('octavia-ssh-key')
is_expected.to contain_octavia_config('haproxy_amphora/timeout_client_data').with_value('<SERVICE DEFAULT>')
is_expected.to contain_octavia_config('haproxy_amphora/timeout_member_connect').with_value('<SERVICE DEFAULT>')
is_expected.to contain_octavia_config('haproxy_amphora/timeout_member_data').with_value('<SERVICE DEFAULT>')
is_expected.to contain_octavia_config('haproxy_amphora/timeout_tcp_inspect').with_value('<SERVICE DEFAULT>')
end
context 'with ssh key access disabled' do
before do
params.merge!({ :enable_ssh_access => false }) end
it 'disables configuration of SSH key properties' do
is_expected.to contain_octavia_config('controller_worker/amp_ssh_key_name').with_value('<SERVICE DEFAULT>')
end
end
context 'with ssh key access disabled and key management enabled' do
let :pre_condition do
"include nova
class { 'octavia::controller' :
manage_ssh_access = false,
}"
end
before do
params.merge!({
:enable_ssh_access => false,
:manage_keygen => true,
:manage_keygen => true,
})
end
@ -141,7 +111,10 @@ describe 'octavia::worker' do
context 'with disabled service managing' do
before do
params.merge!({ :manage_service => false, :enabled => false }) end
params.merge!({
:manage_service => false,
:enabled => false })
end
it 'configures octavia-worker service' do
is_expected.to contain_service('octavia-worker').with(