From bccc2303522d802f45909707ae34361b4ad2b0f2 Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Sun, 2 Aug 2020 23:32:30 +0900 Subject: [PATCH] Cleanup deprecated controller parameters from octavia::worker Change-Id: I69b5068e4ca3b1a43ab3d267b8a0a47e2bb50480 --- manifests/controller.pp | 48 +++------ manifests/worker.pp | 102 ++---------------- ...from-octavia-workers-f06b45dd705eb875.yaml | 20 ++++ spec/acceptance/octavia_spec.rb | 4 +- spec/classes/octavia_worker_spec.rb | 65 ++++------- 5 files changed, 65 insertions(+), 174 deletions(-) create mode 100644 releasenotes/notes/cleanup-controler-opts-from-octavia-workers-f06b45dd705eb875.yaml diff --git a/manifests/controller.pp b/manifests/controller.pp index 0d79d170..7b3337ae 100644 --- a/manifests/controller.pp +++ b/manifests/controller.pp @@ -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; diff --git a/manifests/worker.pp b/manifests/worker.pp index a43a5463..7fd05b18 100644 --- a/manifests/worker.pp +++ b/manifests/worker.pp @@ -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 { diff --git a/releasenotes/notes/cleanup-controler-opts-from-octavia-workers-f06b45dd705eb875.yaml b/releasenotes/notes/cleanup-controler-opts-from-octavia-workers-f06b45dd705eb875.yaml new file mode 100644 index 00000000..189f3c40 --- /dev/null +++ b/releasenotes/notes/cleanup-controler-opts-from-octavia-workers-f06b45dd705eb875.yaml @@ -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`` diff --git a/spec/acceptance/octavia_spec.rb b/spec/acceptance/octavia_spec.rb index d8f0a81e..e1f04795 100644 --- a/spec/acceptance/octavia_spec.rb +++ b/spec/acceptance/octavia_spec.rb @@ -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', } diff --git a/spec/classes/octavia_worker_spec.rb b/spec/classes/octavia_worker_spec.rb index cbf9de7a..5fc27b34 100644 --- a/spec/classes/octavia_worker_spec.rb +++ b/spec/classes/octavia_worker_spec.rb @@ -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('') - is_expected.to contain_octavia_config('haproxy_amphora/timeout_member_connect').with_value('') - is_expected.to contain_octavia_config('haproxy_amphora/timeout_member_data').with_value('') - is_expected.to contain_octavia_config('haproxy_amphora/timeout_tcp_inspect').with_value('') - 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('') - 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(