Bug 1946254 - [OSP 16.1]puppet-neutron does not support multiple l3 agent extensions as defined in the OOO templates
Summary: [OSP 16.1]puppet-neutron does not support multiple l3 agent extensions as def...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: puppet-neutron
Version: 16.1 (Train)
Hardware: x86_64
OS: Linux
medium
high
Target Milestone: ---
: ---
Assignee: Slawek Kaplonski
QA Contact: Eran Kuris
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-04-05 14:57 UTC by Matt Flusche
Modified: 2021-12-09 20:18 UTC (History)
6 users (show)

Fixed In Version: puppet-neutron-15.5.1-1.20210614113305.7d0406b.el8ost
Doc Type: No Doc Update
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-12-09 20:18:25 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
OpenStack gerrit 786055 0 None NEW Fix L3 agent's extensions list 2021-04-13 13:54:26 UTC
Red Hat Issue Tracker OSP-1794 0 None None None 2021-11-18 11:35:44 UTC
Red Hat Product Errata RHBA-2021:3762 0 None None None 2021-12-09 20:18:54 UTC

Description Matt Flusche 2021-04-05 14:57:55 UTC
Description of problem:

For this OOO config:

parameter_defaults:
  NeutronL3AgentExtensions: 'conntrack_helper,port_forwarding'

As defined in THT:

From openstack-tripleo-heat-templates/deployment/neutron/neutron-l3-container-puppet.yaml 

  NeutronL3AgentExtensions:
    default: ""
    description: |
        Comma-separated list of extensions enabled for the Neutron L3 agent.
    type: comma_delimited_list

Results in this hiera data:

# hiera -c /etc/puppet/hiera.yaml neutron::agents::l3::extensions
["conntrack_helper", "port_forwarding"]

However, the resulting config via puppet is:

[root@overcloud-controller-0 ~]# crudini --get /var/lib/config-data/puppet-generated/neutron/etc/neutron/l3_agent.ini agent extensions
conntrack_helper


From the puppet module:

/etc/puppet/modules/neutron/manifests/agents/l3.pp

# [*extensions*]
#   (optional) L3 agent extensions to enable.
#   Defaults to $::os_service_default
#

...

  neutron_l3_agent_config {
    'DEFAULT/debug':                            value => $debug;
    'DEFAULT/interface_driver':                 value => $interface_driver;
    'DEFAULT/gateway_external_network_id':      value => $gateway_external_network_id;
    'DEFAULT/handle_internal_only_routers':     value => $handle_internal_only_routers;
    'DEFAULT/metadata_port':                    value => $metadata_port;
    'DEFAULT/periodic_interval':                value => $periodic_interval;
    'DEFAULT/periodic_fuzzy_delay':             value => $periodic_fuzzy_delay;
    'DEFAULT/enable_metadata_proxy':            value => $enable_metadata_proxy;
    'DEFAULT/agent_mode':                       value => $agent_mode;
    'DEFAULT/radvd_user':                       value => $radvd_user;
    'agent/availability_zone':                  value => $availability_zone;
    'agent/extensions':                         value => $extensions;
  }


It seems the puppet module need to handle the array and join it before setting the agent/extensions value.

Version-Release number of selected component (if applicable):
16.1 current
 rpm -q puppet-neutron
puppet-neutron-15.5.1-1.20201113235652.el8ost.noarch


How reproducible:
100%

Steps to Reproduce:
1. see above example

Actual results:
puppet-neutron only sets l3 agent/extensions to first element in list.

Expected results:
Comma-separated list of extensions enabled for the Neutron L3 agent

Comment 1 Takashi Kajinami 2021-04-16 14:47:25 UTC
Since there is a mismatch between interface in tht and one in puppet-neutron, we can not use
the NeutronL3AgentExtensions parameter when we pass multiple extensions, until the fix is merged
into puppet-neutron.

One workaround is to set the parameter directly using ExtraConfig
~~~
parameter_defaults:
    ExtraConfig:
        neutron::agents::l3::extensions: conntrack_helper,port_forwarding
~~~

Then the value is passed as a raw string and handled correctly by puppet-neutron
~~~
[heat-admin@controller-0 ~]$ cat /etc/rhosp-release 
Red Hat OpenStack Platform release 13.0.14 (Queens)
[heat-admin@controller-0 ~]$ sudo crudini --get /var/lib/config-data/puppet-generated/neutron/etc/neutron/l3_agent.ini agent extensions
conntrack_helper,port_forwarding
~~~

Comment 21 errata-xmlrpc 2021-12-09 20:18:25 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Red Hat OpenStack Platform 16.1.7 (Train) bug fix and enhancement advisory), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2021:3762


Note You need to log in before you can comment on or make changes to this bug.